1
0
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:
Mateusz Kwasniewski 2024-11-05 11:52:15 +01:00 committed by GitHub
parent 1cedc374c1
commit b5a2befec7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 22 additions and 8 deletions

View File

@ -12,3 +12,4 @@ export * from './instance-stats/createInstanceStatsService';
export * from './feature-lifecycle/createFeatureLifecycle';
export * from './playground/createPlaygroundService';
export * from './personal-dashboard/createPersonalDashboardService';
export * from './user-subscriptions/createUserSubscriptionsService';

View File

@ -1,5 +1,5 @@
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 {
createEventsService,
@ -9,11 +9,11 @@ import { FakeUserUnsubscribeStore } from './fake-user-unsubscribe-store';
export const createUserSubscriptionsService =
(config: IUnleashConfig) =>
(db: Db): UserSubscriptionService => {
(db: Db): UserSubscriptionsService => {
const userUnsubscribeStore = new UserUnsubscribeStore(db);
const eventService = createEventsService(db, config);
const userSubscriptionsService = new UserSubscriptionService(
const userSubscriptionsService = new UserSubscriptionsService(
{ userUnsubscribeStore },
config,
eventService,
@ -22,11 +22,13 @@ export const createUserSubscriptionsService =
return userSubscriptionsService;
};
export const createFakeUserSubscriptionsService = (config: IUnleashConfig) => {
export const createFakeUserSubscriptionsService = (
config: IUnleashConfig,
): UserSubscriptionsService => {
const userUnsubscribeStore = new FakeUserUnsubscribeStore();
const eventService = createFakeEventsService(config);
const userSubscriptionsService = new UserSubscriptionService(
const userSubscriptionsService = new UserSubscriptionsService(
{ userUnsubscribeStore },
config,
eventService,

View File

@ -4,7 +4,7 @@ import {
type IUser,
TEST_AUDIT_USER,
} 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 { createTestConfig } from '../../../test/config/test-config';
import getLogger from '../../../test/fixtures/no-logger';
@ -13,7 +13,7 @@ import type { IUserSubscriptionsReadModel } from './user-subscriptions-read-mode
let stores: IUnleashStores;
let db: ITestDb;
let userSubscriptionService: UserSubscriptionService;
let userSubscriptionService: UserSubscriptionsService;
let userSubscriptionsReadModel: IUserSubscriptionsReadModel;
let config: IUnleashConfig;
let user: IUser;

View File

@ -7,7 +7,7 @@ import type {
} from './user-unsubscribe-store-type';
import type EventService from '../events/event-service';
export default class UserSubscriptionService {
export class UserSubscriptionsService {
private userUnsubscribeStore: IUserUnsubscribeStore;
private eventService: EventService;

View File

@ -70,9 +70,11 @@ import {
createFakeEnvironmentService,
createFakeEventsService,
createFakeProjectService,
createFakeUserSubscriptionsService,
createFeatureLifecycleService,
createFeatureToggleService,
createProjectService,
createUserSubscriptionsService,
} from '../features';
import EventAnnouncerService from './event-announcer-service';
import { createGroupService } from '../features/group/createGroupService';
@ -127,6 +129,7 @@ import {
createProjectInsightsService,
} from '../features/project-insights/createProjectInsightsService';
import { JobService } from '../features/scheduler/job-service';
import { UserSubscriptionsService } from '../features/user-subscriptions/user-subscriptions-service';
import { JobStore } from '../features/scheduler/job-store';
import { FeatureLifecycleService } from '../features/feature-lifecycle/feature-lifecycle-service';
import { createFakeFeatureLifecycleService } from '../features/feature-lifecycle/createFeatureLifecycle';
@ -426,6 +429,10 @@ export const createServices = (
? createPersonalDashboardService(db, config, stores)
: createFakePersonalDashboardService(config);
const transactionalUserSubscriptionsService = db
? withTransactional(createUserSubscriptionsService(config), db)
: withFakeTransactional(createFakeUserSubscriptionsService(config));
return {
transactionalAccessService,
accessService,
@ -492,6 +499,7 @@ export const createServices = (
onboardingService,
personalDashboardService,
projectStatusService,
transactionalUserSubscriptionsService,
};
};
@ -544,4 +552,5 @@ export {
OnboardingService,
PersonalDashboardService,
ProjectStatusService,
UserSubscriptionsService,
};

View File

@ -58,6 +58,7 @@ import type { IntegrationEventsService } from '../features/integration-events/in
import type { OnboardingService } from '../features/onboarding/onboarding-service';
import type { PersonalDashboardService } from '../features/personal-dashboard/personal-dashboard-service';
import type { ProjectStatusService } from '../features/project-status/project-status-service';
import type { UserSubscriptionsService } from '../features/user-subscriptions/user-subscriptions-service';
export interface IUnleashServices {
transactionalAccessService: WithTransactional<AccessService>;
@ -128,4 +129,5 @@ export interface IUnleashServices {
onboardingService: OnboardingService;
personalDashboardService: PersonalDashboardService;
projectStatusService: ProjectStatusService;
transactionalUserSubscriptionsService: WithTransactional<UserSubscriptionsService>;
}