@flusys/nestjs-event-manager 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/README.md +1328 -0
  2. package/adapters/event-manager.adapter.d.ts +12 -0
  3. package/adapters/index.d.ts +1 -0
  4. package/cjs/adapters/event-manager.adapter.js +71 -0
  5. package/cjs/adapters/index.js +18 -0
  6. package/cjs/config/event-manager.constants.js +13 -0
  7. package/cjs/config/index.js +18 -0
  8. package/cjs/controllers/event-participant.controller.js +271 -0
  9. package/cjs/controllers/event.controller.js +229 -0
  10. package/cjs/controllers/index.js +19 -0
  11. package/cjs/docs/event-manager-swagger.config.js +135 -0
  12. package/cjs/docs/index.js +24 -0
  13. package/cjs/dtos/calendar-query.dto.js +186 -0
  14. package/cjs/dtos/event-participant.dto.js +226 -0
  15. package/cjs/dtos/event.dto.js +291 -0
  16. package/cjs/dtos/index.js +20 -0
  17. package/cjs/entities/event-participant.entity.js +96 -0
  18. package/cjs/entities/event-with-company.entity.js +56 -0
  19. package/cjs/entities/event.entity.js +143 -0
  20. package/cjs/entities/index.js +55 -0
  21. package/cjs/index.js +27 -0
  22. package/cjs/interfaces/event-manager-module.interface.js +4 -0
  23. package/cjs/interfaces/event.interface.js +4 -0
  24. package/cjs/interfaces/index.js +19 -0
  25. package/cjs/modules/event-manager.module.js +133 -0
  26. package/cjs/modules/index.js +18 -0
  27. package/cjs/services/event-manager-config.service.js +76 -0
  28. package/cjs/services/event-manager-datasource.provider.js +181 -0
  29. package/cjs/services/event-manager-helper.service.js +253 -0
  30. package/cjs/services/event-participant.service.js +164 -0
  31. package/cjs/services/event.service.js +421 -0
  32. package/cjs/services/index.js +22 -0
  33. package/config/event-manager.constants.d.ts +1 -0
  34. package/config/index.d.ts +1 -0
  35. package/controllers/event-participant.controller.d.ts +31 -0
  36. package/controllers/event.controller.d.ts +24 -0
  37. package/controllers/index.d.ts +2 -0
  38. package/docs/event-manager-swagger.config.d.ts +3 -0
  39. package/docs/index.d.ts +2 -0
  40. package/dtos/calendar-query.dto.d.ts +23 -0
  41. package/dtos/event-participant.dto.d.ts +31 -0
  42. package/dtos/event.dto.d.ts +37 -0
  43. package/dtos/index.d.ts +3 -0
  44. package/entities/event-participant.entity.d.ts +8 -0
  45. package/entities/event-with-company.entity.d.ts +4 -0
  46. package/entities/event.entity.d.ts +14 -0
  47. package/entities/index.d.ts +11 -0
  48. package/fesm/adapters/event-manager.adapter.js +61 -0
  49. package/fesm/adapters/index.js +1 -0
  50. package/fesm/config/event-manager.constants.js +3 -0
  51. package/fesm/config/index.js +1 -0
  52. package/fesm/controllers/event-participant.controller.js +261 -0
  53. package/fesm/controllers/event.controller.js +219 -0
  54. package/fesm/controllers/index.js +2 -0
  55. package/fesm/docs/event-manager-swagger.config.js +128 -0
  56. package/fesm/docs/index.js +4 -0
  57. package/fesm/dtos/calendar-query.dto.js +168 -0
  58. package/fesm/dtos/event-participant.dto.js +199 -0
  59. package/fesm/dtos/event.dto.js +270 -0
  60. package/fesm/dtos/index.js +3 -0
  61. package/fesm/entities/event-participant.entity.js +86 -0
  62. package/fesm/entities/event-with-company.entity.js +46 -0
  63. package/fesm/entities/event.entity.js +133 -0
  64. package/fesm/entities/index.js +24 -0
  65. package/fesm/index.js +10 -0
  66. package/fesm/interfaces/event-manager-module.interface.js +3 -0
  67. package/fesm/interfaces/event.interface.js +1 -0
  68. package/fesm/interfaces/index.js +2 -0
  69. package/fesm/modules/event-manager.module.js +123 -0
  70. package/fesm/modules/index.js +1 -0
  71. package/fesm/services/event-manager-config.service.js +66 -0
  72. package/fesm/services/event-manager-datasource.provider.js +130 -0
  73. package/fesm/services/event-manager-helper.service.js +243 -0
  74. package/fesm/services/event-participant.service.js +154 -0
  75. package/fesm/services/event.service.js +411 -0
  76. package/fesm/services/index.js +5 -0
  77. package/index.d.ts +9 -0
  78. package/interfaces/event-manager-module.interface.d.ts +20 -0
  79. package/interfaces/event.interface.d.ts +28 -0
  80. package/interfaces/index.d.ts +2 -0
  81. package/modules/event-manager.module.d.ts +8 -0
  82. package/modules/index.d.ts +1 -0
  83. package/package.json +89 -0
  84. package/services/event-manager-config.service.d.ts +13 -0
  85. package/services/event-manager-datasource.provider.d.ts +23 -0
  86. package/services/event-manager-helper.service.d.ts +27 -0
  87. package/services/event-participant.service.d.ts +27 -0
  88. package/services/event.service.d.ts +49 -0
  89. package/services/index.d.ts +5 -0
@@ -0,0 +1,27 @@
1
+ import { HybridCache, RequestScopedApiService } from '@flusys/nestjs-shared/classes';
2
+ import { ILoggedUserInfo } from '@flusys/nestjs-shared/interfaces';
3
+ import { UtilsService } from '@flusys/nestjs-shared/modules';
4
+ import { EntityTarget, Repository, SelectQueryBuilder } from 'typeorm';
5
+ import { EventManagerConfigService } from './event-manager-config.service';
6
+ import { CreateEventParticipantDto, UpdateEventParticipantDto, UpdateParticipantStatusDto } from '../dtos';
7
+ import { EventParticipantBase } from '../entities';
8
+ import { IEventParticipant } from '../interfaces';
9
+ import { EventManagerDataSourceProvider } from './event-manager-datasource.provider';
10
+ export declare class EventParticipantService extends RequestScopedApiService<CreateEventParticipantDto, UpdateEventParticipantDto, IEventParticipant, EventParticipantBase, Repository<EventParticipantBase>> {
11
+ protected cacheManager: HybridCache;
12
+ protected utilsService: UtilsService;
13
+ private readonly eventConfig;
14
+ private readonly dataSourceProvider;
15
+ constructor(cacheManager: HybridCache, utilsService: UtilsService, eventConfig: EventManagerConfigService, dataSourceProvider: EventManagerDataSourceProvider);
16
+ protected resolveEntity(): EntityTarget<EventParticipantBase>;
17
+ protected getDataSourceProvider(): EventManagerDataSourceProvider;
18
+ convertSingleDtoToEntity(dto: CreateEventParticipantDto | UpdateEventParticipantDto, _user: ILoggedUserInfo | null): Promise<EventParticipantBase>;
19
+ protected getFilterQuery(query: SelectQueryBuilder<EventParticipantBase>, filter: Record<string, any>, _user: ILoggedUserInfo | null): Promise<{
20
+ query: SelectQueryBuilder<EventParticipantBase>;
21
+ isRaw: boolean;
22
+ }>;
23
+ updateStatus(dto: UpdateParticipantStatusDto, _user: ILoggedUserInfo | null): Promise<EventParticipantBase>;
24
+ getParticipantsByEvent(eventId: string, _user: ILoggedUserInfo | null): Promise<EventParticipantBase[]>;
25
+ getParticipantsByUser(userId: string, _user: ILoggedUserInfo | null): Promise<EventParticipantBase[]>;
26
+ removeParticipant(eventId: string, userId: string, _user: ILoggedUserInfo | null): Promise<void>;
27
+ }
@@ -0,0 +1,49 @@
1
+ import { HybridCache, RequestScopedApiService } from '@flusys/nestjs-shared/classes';
2
+ import { ILoggedUserInfo } from '@flusys/nestjs-shared/interfaces';
3
+ import { UtilsService } from '@flusys/nestjs-shared/modules';
4
+ import { EntityTarget, QueryRunner, Repository, SelectQueryBuilder } from 'typeorm';
5
+ import { EventManagerConfigService } from './event-manager-config.service';
6
+ import { CalendarQueryDto, CreateEventDto, UpdateEventDto } from '../dtos';
7
+ import { EventBase, EventParticipant } from '../entities';
8
+ import { ICalendarEvent, IEvent } from '../interfaces';
9
+ import { EventManagerDataSourceProvider } from './event-manager-datasource.provider';
10
+ type EventWithParticipants = Omit<EventBase, 'participants'> & {
11
+ participants?: EventParticipant[];
12
+ };
13
+ export declare class EventService extends RequestScopedApiService<CreateEventDto, UpdateEventDto, IEvent, EventBase, Repository<EventBase>> {
14
+ protected cacheManager: HybridCache;
15
+ protected utilsService: UtilsService;
16
+ private readonly eventConfig;
17
+ private readonly dataSourceProvider;
18
+ private participantRepository;
19
+ private pendingParticipantsList;
20
+ constructor(cacheManager: HybridCache, utilsService: UtilsService, eventConfig: EventManagerConfigService, dataSourceProvider: EventManagerDataSourceProvider);
21
+ protected resolveEntity(): EntityTarget<EventBase>;
22
+ protected getDataSourceProvider(): EventManagerDataSourceProvider;
23
+ convertSingleDtoToEntity(dto: CreateEventDto | UpdateEventDto, user: ILoggedUserInfo | null): Promise<EventBase>;
24
+ protected getFilterQuery(query: SelectQueryBuilder<EventBase>, filter: Record<string, any>, _user: ILoggedUserInfo | null): Promise<{
25
+ query: SelectQueryBuilder<EventBase>;
26
+ isRaw: boolean;
27
+ }>;
28
+ protected getExtraManipulateQuery(query: SelectQueryBuilder<EventBase>, filterDto: any, user: ILoggedUserInfo | null): Promise<{
29
+ query: SelectQueryBuilder<EventBase>;
30
+ isRaw: boolean;
31
+ }>;
32
+ protected afterInsertOperation(entities: EventBase[], user: ILoggedUserInfo | null, _qr: QueryRunner): Promise<void>;
33
+ getEventsForCalendarRange(queryDto: CalendarQueryDto, user: ILoggedUserInfo | null): Promise<ICalendarEvent[]>;
34
+ getEventWithParticipants(id: string, user: ILoggedUserInfo | null): Promise<EventWithParticipants | null>;
35
+ addParticipants(eventId: string, userIds: string[], _user: ILoggedUserInfo | null): Promise<EventParticipant[]>;
36
+ private addCreatorAndParticipants;
37
+ private expandRecurringEvents;
38
+ private generateOccurrences;
39
+ private ensureParticipantRepositoryInitialized;
40
+ private getParticipantEventIds;
41
+ private loadParticipantsForEvents;
42
+ private applyEventCompanyFilter;
43
+ private shouldStopRecurrence;
44
+ private tryCreateOccurrence;
45
+ private getNextOccurrenceDate;
46
+ private toCalendarEvent;
47
+ private toParticipantInfo;
48
+ }
49
+ export {};
@@ -0,0 +1,5 @@
1
+ export * from './event-manager-config.service';
2
+ export * from './event-manager-datasource.provider';
3
+ export * from './event-manager-helper.service';
4
+ export * from './event.service';
5
+ export * from './event-participant.service';