mirror of
https://github.com/Unleash/unleash.git
synced 2025-02-04 00:18:01 +01:00
feat: export transactional user subscriptions service (#8651)
This commit is contained in:
parent
1cedc374c1
commit
b5a2befec7
@ -12,3 +12,4 @@ export * from './instance-stats/createInstanceStatsService';
|
|||||||
export * from './feature-lifecycle/createFeatureLifecycle';
|
export * from './feature-lifecycle/createFeatureLifecycle';
|
||||||
export * from './playground/createPlaygroundService';
|
export * from './playground/createPlaygroundService';
|
||||||
export * from './personal-dashboard/createPersonalDashboardService';
|
export * from './personal-dashboard/createPersonalDashboardService';
|
||||||
|
export * from './user-subscriptions/createUserSubscriptionsService';
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import type { Db, IUnleashConfig } from '../../server-impl';
|
import type { Db, IUnleashConfig } from '../../server-impl';
|
||||||
import UserSubscriptionService from './user-subscriptions-service';
|
import { UserSubscriptionsService } from './user-subscriptions-service';
|
||||||
import { UserUnsubscribeStore } from './user-unsubscribe-store';
|
import { UserUnsubscribeStore } from './user-unsubscribe-store';
|
||||||
import {
|
import {
|
||||||
createEventsService,
|
createEventsService,
|
||||||
@ -9,11 +9,11 @@ import { FakeUserUnsubscribeStore } from './fake-user-unsubscribe-store';
|
|||||||
|
|
||||||
export const createUserSubscriptionsService =
|
export const createUserSubscriptionsService =
|
||||||
(config: IUnleashConfig) =>
|
(config: IUnleashConfig) =>
|
||||||
(db: Db): UserSubscriptionService => {
|
(db: Db): UserSubscriptionsService => {
|
||||||
const userUnsubscribeStore = new UserUnsubscribeStore(db);
|
const userUnsubscribeStore = new UserUnsubscribeStore(db);
|
||||||
const eventService = createEventsService(db, config);
|
const eventService = createEventsService(db, config);
|
||||||
|
|
||||||
const userSubscriptionsService = new UserSubscriptionService(
|
const userSubscriptionsService = new UserSubscriptionsService(
|
||||||
{ userUnsubscribeStore },
|
{ userUnsubscribeStore },
|
||||||
config,
|
config,
|
||||||
eventService,
|
eventService,
|
||||||
@ -22,11 +22,13 @@ export const createUserSubscriptionsService =
|
|||||||
return userSubscriptionsService;
|
return userSubscriptionsService;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const createFakeUserSubscriptionsService = (config: IUnleashConfig) => {
|
export const createFakeUserSubscriptionsService = (
|
||||||
|
config: IUnleashConfig,
|
||||||
|
): UserSubscriptionsService => {
|
||||||
const userUnsubscribeStore = new FakeUserUnsubscribeStore();
|
const userUnsubscribeStore = new FakeUserUnsubscribeStore();
|
||||||
const eventService = createFakeEventsService(config);
|
const eventService = createFakeEventsService(config);
|
||||||
|
|
||||||
const userSubscriptionsService = new UserSubscriptionService(
|
const userSubscriptionsService = new UserSubscriptionsService(
|
||||||
{ userUnsubscribeStore },
|
{ userUnsubscribeStore },
|
||||||
config,
|
config,
|
||||||
eventService,
|
eventService,
|
||||||
|
@ -4,7 +4,7 @@ import {
|
|||||||
type IUser,
|
type IUser,
|
||||||
TEST_AUDIT_USER,
|
TEST_AUDIT_USER,
|
||||||
} from '../../types';
|
} from '../../types';
|
||||||
import type UserSubscriptionService from './user-subscriptions-service';
|
import type { UserSubscriptionsService } from './user-subscriptions-service';
|
||||||
import dbInit, { type ITestDb } from '../../../test/e2e/helpers/database-init';
|
import dbInit, { type ITestDb } from '../../../test/e2e/helpers/database-init';
|
||||||
import { createTestConfig } from '../../../test/config/test-config';
|
import { createTestConfig } from '../../../test/config/test-config';
|
||||||
import getLogger from '../../../test/fixtures/no-logger';
|
import getLogger from '../../../test/fixtures/no-logger';
|
||||||
@ -13,7 +13,7 @@ import type { IUserSubscriptionsReadModel } from './user-subscriptions-read-mode
|
|||||||
|
|
||||||
let stores: IUnleashStores;
|
let stores: IUnleashStores;
|
||||||
let db: ITestDb;
|
let db: ITestDb;
|
||||||
let userSubscriptionService: UserSubscriptionService;
|
let userSubscriptionService: UserSubscriptionsService;
|
||||||
let userSubscriptionsReadModel: IUserSubscriptionsReadModel;
|
let userSubscriptionsReadModel: IUserSubscriptionsReadModel;
|
||||||
let config: IUnleashConfig;
|
let config: IUnleashConfig;
|
||||||
let user: IUser;
|
let user: IUser;
|
||||||
|
@ -7,7 +7,7 @@ import type {
|
|||||||
} from './user-unsubscribe-store-type';
|
} from './user-unsubscribe-store-type';
|
||||||
import type EventService from '../events/event-service';
|
import type EventService from '../events/event-service';
|
||||||
|
|
||||||
export default class UserSubscriptionService {
|
export class UserSubscriptionsService {
|
||||||
private userUnsubscribeStore: IUserUnsubscribeStore;
|
private userUnsubscribeStore: IUserUnsubscribeStore;
|
||||||
|
|
||||||
private eventService: EventService;
|
private eventService: EventService;
|
||||||
|
@ -70,9 +70,11 @@ import {
|
|||||||
createFakeEnvironmentService,
|
createFakeEnvironmentService,
|
||||||
createFakeEventsService,
|
createFakeEventsService,
|
||||||
createFakeProjectService,
|
createFakeProjectService,
|
||||||
|
createFakeUserSubscriptionsService,
|
||||||
createFeatureLifecycleService,
|
createFeatureLifecycleService,
|
||||||
createFeatureToggleService,
|
createFeatureToggleService,
|
||||||
createProjectService,
|
createProjectService,
|
||||||
|
createUserSubscriptionsService,
|
||||||
} from '../features';
|
} from '../features';
|
||||||
import EventAnnouncerService from './event-announcer-service';
|
import EventAnnouncerService from './event-announcer-service';
|
||||||
import { createGroupService } from '../features/group/createGroupService';
|
import { createGroupService } from '../features/group/createGroupService';
|
||||||
@ -127,6 +129,7 @@ import {
|
|||||||
createProjectInsightsService,
|
createProjectInsightsService,
|
||||||
} from '../features/project-insights/createProjectInsightsService';
|
} from '../features/project-insights/createProjectInsightsService';
|
||||||
import { JobService } from '../features/scheduler/job-service';
|
import { JobService } from '../features/scheduler/job-service';
|
||||||
|
import { UserSubscriptionsService } from '../features/user-subscriptions/user-subscriptions-service';
|
||||||
import { JobStore } from '../features/scheduler/job-store';
|
import { JobStore } from '../features/scheduler/job-store';
|
||||||
import { FeatureLifecycleService } from '../features/feature-lifecycle/feature-lifecycle-service';
|
import { FeatureLifecycleService } from '../features/feature-lifecycle/feature-lifecycle-service';
|
||||||
import { createFakeFeatureLifecycleService } from '../features/feature-lifecycle/createFeatureLifecycle';
|
import { createFakeFeatureLifecycleService } from '../features/feature-lifecycle/createFeatureLifecycle';
|
||||||
@ -426,6 +429,10 @@ export const createServices = (
|
|||||||
? createPersonalDashboardService(db, config, stores)
|
? createPersonalDashboardService(db, config, stores)
|
||||||
: createFakePersonalDashboardService(config);
|
: createFakePersonalDashboardService(config);
|
||||||
|
|
||||||
|
const transactionalUserSubscriptionsService = db
|
||||||
|
? withTransactional(createUserSubscriptionsService(config), db)
|
||||||
|
: withFakeTransactional(createFakeUserSubscriptionsService(config));
|
||||||
|
|
||||||
return {
|
return {
|
||||||
transactionalAccessService,
|
transactionalAccessService,
|
||||||
accessService,
|
accessService,
|
||||||
@ -492,6 +499,7 @@ export const createServices = (
|
|||||||
onboardingService,
|
onboardingService,
|
||||||
personalDashboardService,
|
personalDashboardService,
|
||||||
projectStatusService,
|
projectStatusService,
|
||||||
|
transactionalUserSubscriptionsService,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -544,4 +552,5 @@ export {
|
|||||||
OnboardingService,
|
OnboardingService,
|
||||||
PersonalDashboardService,
|
PersonalDashboardService,
|
||||||
ProjectStatusService,
|
ProjectStatusService,
|
||||||
|
UserSubscriptionsService,
|
||||||
};
|
};
|
||||||
|
@ -58,6 +58,7 @@ import type { IntegrationEventsService } from '../features/integration-events/in
|
|||||||
import type { OnboardingService } from '../features/onboarding/onboarding-service';
|
import type { OnboardingService } from '../features/onboarding/onboarding-service';
|
||||||
import type { PersonalDashboardService } from '../features/personal-dashboard/personal-dashboard-service';
|
import type { PersonalDashboardService } from '../features/personal-dashboard/personal-dashboard-service';
|
||||||
import type { ProjectStatusService } from '../features/project-status/project-status-service';
|
import type { ProjectStatusService } from '../features/project-status/project-status-service';
|
||||||
|
import type { UserSubscriptionsService } from '../features/user-subscriptions/user-subscriptions-service';
|
||||||
|
|
||||||
export interface IUnleashServices {
|
export interface IUnleashServices {
|
||||||
transactionalAccessService: WithTransactional<AccessService>;
|
transactionalAccessService: WithTransactional<AccessService>;
|
||||||
@ -128,4 +129,5 @@ export interface IUnleashServices {
|
|||||||
onboardingService: OnboardingService;
|
onboardingService: OnboardingService;
|
||||||
personalDashboardService: PersonalDashboardService;
|
personalDashboardService: PersonalDashboardService;
|
||||||
projectStatusService: ProjectStatusService;
|
projectStatusService: ProjectStatusService;
|
||||||
|
transactionalUserSubscriptionsService: WithTransactional<UserSubscriptionsService>;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user