@spytecgps/nova-orm 1.0.90 → 1.0.91

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 (72) hide show
  1. package/dist/entities/acumaticaAmazonProduct.js +1 -1
  2. package/dist/entities/acumaticaAmazonProduct.js.map +1 -1
  3. package/dist/entities/acumaticaImeiIccidData.js +1 -1
  4. package/dist/entities/acumaticaImeiIccidData.js.map +1 -1
  5. package/dist/entities/acumaticaOrderShipmentDetails.js +1 -1
  6. package/dist/entities/acumaticaOrderShipmentDetails.js.map +1 -1
  7. package/dist/entities/airflow/airflowAcumaticaExportOrderShipmentDetails.js +1 -1
  8. package/dist/entities/airflow/airflowAcumaticaExportOrderShipmentDetails.js.map +1 -1
  9. package/dist/entities/asinPromotion.js +1 -1
  10. package/dist/entities/asinPromotion.js.map +1 -1
  11. package/dist/entities/devicePromotion.js +1 -1
  12. package/dist/entities/devicePromotion.js.map +1 -1
  13. package/dist/entities/deviceTypePromotion.js +1 -1
  14. package/dist/entities/deviceTypePromotion.js.map +1 -1
  15. package/dist/entities/index.d.ts +5 -1
  16. package/dist/entities/index.js +5 -1
  17. package/dist/entities/index.js.map +1 -1
  18. package/dist/entities/magento2Gps.js +3 -3
  19. package/dist/entities/magento2Gps.js.map +1 -1
  20. package/dist/entities/marketplacePromotion.js +1 -1
  21. package/dist/entities/marketplacePromotion.js.map +1 -1
  22. package/dist/entities/promotion.d.ts +8 -7
  23. package/dist/entities/promotion.js +6 -3
  24. package/dist/entities/promotion.js.map +1 -1
  25. package/dist/entities/promotionHistory.js +1 -1
  26. package/dist/entities/promotionHistory.js.map +1 -1
  27. package/dist/entities/userActivationDevice.js +2 -2
  28. package/dist/entities/userActivationDevice.js.map +1 -1
  29. package/dist/index.js +1 -1
  30. package/dist/repositories/index.d.ts +2 -1
  31. package/dist/repositories/index.js +2 -1
  32. package/dist/repositories/index.js.map +1 -1
  33. package/dist/repositories/promotions/bulkInsertDeviceTypePromotion.d.ts +5 -0
  34. package/dist/repositories/promotions/bulkInsertDeviceTypePromotion.js +15 -0
  35. package/dist/repositories/promotions/bulkInsertDeviceTypePromotion.js.map +1 -0
  36. package/dist/repositories/promotions/bulkInsertMarketplacePromotion.d.ts +5 -0
  37. package/dist/repositories/promotions/bulkInsertMarketplacePromotion.js +15 -0
  38. package/dist/repositories/promotions/bulkInsertMarketplacePromotion.js.map +1 -0
  39. package/dist/repositories/promotions/createPromotion.d.ts +5 -0
  40. package/dist/repositories/promotions/createPromotion.js +30 -0
  41. package/dist/repositories/promotions/createPromotion.js.map +1 -0
  42. package/dist/repositories/promotions/deleteDeviceTypePromotion.d.ts +4 -0
  43. package/dist/repositories/promotions/deleteDeviceTypePromotion.js +22 -0
  44. package/dist/repositories/promotions/deleteDeviceTypePromotion.js.map +1 -0
  45. package/dist/repositories/promotions/deleteMarketplacePromotion.d.ts +4 -0
  46. package/dist/repositories/promotions/deleteMarketplacePromotion.js +24 -0
  47. package/dist/repositories/promotions/deleteMarketplacePromotion.js.map +1 -0
  48. package/dist/repositories/promotions/getDeviceTypePromotion.d.ts +5 -0
  49. package/dist/repositories/promotions/getDeviceTypePromotion.js +28 -0
  50. package/dist/repositories/promotions/getDeviceTypePromotion.js.map +1 -0
  51. package/dist/repositories/promotions/getMarketplacePromotion.d.ts +5 -0
  52. package/dist/repositories/promotions/getMarketplacePromotion.js +28 -0
  53. package/dist/repositories/promotions/getMarketplacePromotion.js.map +1 -0
  54. package/dist/repositories/promotions/getPromotion.d.ts +5 -0
  55. package/dist/repositories/promotions/getPromotion.js +21 -0
  56. package/dist/repositories/promotions/getPromotion.js.map +1 -0
  57. package/dist/repositories/promotions/index.d.ts +56 -0
  58. package/dist/repositories/promotions/index.js +117 -0
  59. package/dist/repositories/promotions/index.js.map +1 -0
  60. package/dist/repositories/promotions/promotionValidator.d.ts +3 -0
  61. package/dist/repositories/promotions/promotionValidator.js +17 -0
  62. package/dist/repositories/promotions/promotionValidator.js.map +1 -0
  63. package/dist/repositories/promotions/updatePromotion.d.ts +4 -0
  64. package/dist/repositories/promotions/updatePromotion.js +36 -0
  65. package/dist/repositories/promotions/updatePromotion.js.map +1 -0
  66. package/dist/types/enums.d.ts +4 -0
  67. package/dist/types/enums.js +5 -0
  68. package/dist/types/enums.js.map +1 -1
  69. package/dist/types/promotion.d.ts +95 -0
  70. package/dist/types/promotion.js +28 -0
  71. package/dist/types/promotion.js.map +1 -0
  72. package/package.json +1 -1
@@ -23,6 +23,7 @@ import { LatestUserAppInfoRepository } from './latestUserAppInfo';
23
23
  import { LiveLinksRepository } from './liveLinks';
24
24
  import { NotificationRecipientsRepository } from './notificationRecipients';
25
25
  import { PositionRepository } from './positions';
26
+ import { PromotionRepository } from './promotions';
26
27
  import { SecurityRepository } from './security';
27
28
  import { TagsRepository } from './tags';
28
29
  import { TasksRepository } from './tasks';
@@ -36,4 +37,4 @@ import { UserInvitationsRepository } from './userInvitations';
36
37
  import { UserRatingRequestsRepository } from './userRatingRequests';
37
38
  import { UserRegistrationAttemptsRepository } from './userRegistrationAttempts';
38
39
  import { UsersRepository } from './users';
39
- export { AcumaticaRepository, AempTokenRepository, AlertRepository, AlertTypesRepository, AppFeaturesRepository, AssetCategoriesRepository, BillingRepository, BlacklistRepository, BLEMeshConfigurationRepository, BoundariesRepository, ClientsRepository, CountriesRepository, DeactivationsRepository, DeviceStatusRepository, DeviceBehaviorsRepository, DevicePairingsRepository, DevicesRepository, DeviceTypeFeatureRepository, EntityTagsRepository, FeatureRepository, FirmwaresRepository, LatestUserAppInfoRepository, LiveLinksRepository, NotificationRecipientsRepository, PositionRepository, SecurityRepository, TagsRepository, TasksRepository, TripRepository, UserActivationsRepository, UserAppFeedbackRepository, UserAppIncidentsRepository, UserConfigurationsRepository, UserDataDeletionRequestsRepository, UserInvitationsRepository, UserRatingRequestsRepository, UserRegistrationAttemptsRepository, UsersRepository, };
40
+ export { AcumaticaRepository, AempTokenRepository, AlertRepository, AlertTypesRepository, AppFeaturesRepository, AssetCategoriesRepository, BillingRepository, BlacklistRepository, BLEMeshConfigurationRepository, BoundariesRepository, ClientsRepository, CountriesRepository, DeactivationsRepository, DeviceStatusRepository, DeviceBehaviorsRepository, DevicePairingsRepository, DevicesRepository, DeviceTypeFeatureRepository, EntityTagsRepository, FeatureRepository, FirmwaresRepository, LatestUserAppInfoRepository, LiveLinksRepository, NotificationRecipientsRepository, PositionRepository, PromotionRepository, SecurityRepository, TagsRepository, TasksRepository, TripRepository, UserActivationsRepository, UserAppFeedbackRepository, UserAppIncidentsRepository, UserConfigurationsRepository, UserDataDeletionRequestsRepository, UserInvitationsRepository, UserRatingRequestsRepository, UserRegistrationAttemptsRepository, UsersRepository, };
@@ -23,6 +23,7 @@ import { LatestUserAppInfoRepository } from './latestUserAppInfo';
23
23
  import { LiveLinksRepository } from './liveLinks';
24
24
  import { NotificationRecipientsRepository } from './notificationRecipients';
25
25
  import { PositionRepository } from './positions';
26
+ import { PromotionRepository } from './promotions';
26
27
  import { SecurityRepository } from './security';
27
28
  import { TagsRepository } from './tags';
28
29
  import { TasksRepository } from './tasks';
@@ -36,5 +37,5 @@ import { UserInvitationsRepository } from './userInvitations';
36
37
  import { UserRatingRequestsRepository } from './userRatingRequests';
37
38
  import { UserRegistrationAttemptsRepository } from './userRegistrationAttempts';
38
39
  import { UsersRepository } from './users';
39
- export { AcumaticaRepository, AempTokenRepository, AlertRepository, AlertTypesRepository, AppFeaturesRepository, AssetCategoriesRepository, BillingRepository, BlacklistRepository, BLEMeshConfigurationRepository, BoundariesRepository, ClientsRepository, CountriesRepository, DeactivationsRepository, DeviceStatusRepository, DeviceBehaviorsRepository, DevicePairingsRepository, DevicesRepository, DeviceTypeFeatureRepository, EntityTagsRepository, FeatureRepository, FirmwaresRepository, LatestUserAppInfoRepository, LiveLinksRepository, NotificationRecipientsRepository, PositionRepository, SecurityRepository, TagsRepository, TasksRepository, TripRepository, UserActivationsRepository, UserAppFeedbackRepository, UserAppIncidentsRepository, UserConfigurationsRepository, UserDataDeletionRequestsRepository, UserInvitationsRepository, UserRatingRequestsRepository, UserRegistrationAttemptsRepository, UsersRepository, };
40
+ export { AcumaticaRepository, AempTokenRepository, AlertRepository, AlertTypesRepository, AppFeaturesRepository, AssetCategoriesRepository, BillingRepository, BlacklistRepository, BLEMeshConfigurationRepository, BoundariesRepository, ClientsRepository, CountriesRepository, DeactivationsRepository, DeviceStatusRepository, DeviceBehaviorsRepository, DevicePairingsRepository, DevicesRepository, DeviceTypeFeatureRepository, EntityTagsRepository, FeatureRepository, FirmwaresRepository, LatestUserAppInfoRepository, LiveLinksRepository, NotificationRecipientsRepository, PositionRepository, PromotionRepository, SecurityRepository, TagsRepository, TasksRepository, TripRepository, UserActivationsRepository, UserAppFeedbackRepository, UserAppIncidentsRepository, UserConfigurationsRepository, UserDataDeletionRequestsRepository, UserInvitationsRepository, UserRatingRequestsRepository, UserRegistrationAttemptsRepository, UsersRepository, };
40
41
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repositories/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repositories/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { DeviceTypePromotion } from '../../entities/deviceTypePromotion';
2
+ import { NovaDataSource } from '../../novaDataSource';
3
+ import { Logger } from '../../types/logger';
4
+ import { CreateDeviceTypePromotionParams } from '../../types/promotion';
5
+ export declare const bulkInsertDeviceTypePromotion: (novaDataSource: NovaDataSource, params: CreateDeviceTypePromotionParams, logger: Logger) => Promise<DeviceTypePromotion[]>;
@@ -0,0 +1,15 @@
1
+ import { DeviceTypePromotion } from '../../entities/deviceTypePromotion';
2
+ import { requiredCreateDeviceTypePromotionParams, } from '../../types/promotion';
3
+ import { anyAttributeInArrayIsNull } from '../../utils/paramsValidators';
4
+ export const bulkInsertDeviceTypePromotion = async (novaDataSource, params, logger) => {
5
+ if (anyAttributeInArrayIsNull(params.items, requiredCreateDeviceTypePromotionParams)) {
6
+ logger.warn({ params }, 'PromotionRepository::createDeviceTypePromotion missing required parameters');
7
+ return [];
8
+ }
9
+ return novaDataSource.safeQuery(async (safeDataSource) => {
10
+ const deviceTypePromotionRepository = safeDataSource.getRepository(DeviceTypePromotion);
11
+ const createdDeviceTypePromotion = await deviceTypePromotionRepository.save(params.items);
12
+ return createdDeviceTypePromotion ?? [];
13
+ }, 'PromotionRepository::createDeviceTypePromotion error');
14
+ };
15
+ //# sourceMappingURL=bulkInsertDeviceTypePromotion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bulkInsertDeviceTypePromotion.js","sourceRoot":"","sources":["../../../src/repositories/promotions/bulkInsertDeviceTypePromotion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAA;AAGxE,OAAO,EAEL,uCAAuC,GACxC,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAA;AAExE,MAAM,CAAC,MAAM,6BAA6B,GAAG,KAAK,EAChD,cAA8B,EAC9B,MAAuC,EACvC,MAAc,EACkB,EAAE;IAClC,IAAI,yBAAyB,CAAC,MAAM,CAAC,KAAK,EAAE,uCAAuC,CAAC,EAAE;QACpF,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,EACV,4EAA4E,CAC7E,CAAA;QACD,OAAO,EAAE,CAAA;KACV;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,cAA8B,EAEnE,EAAE;QACF,MAAM,6BAA6B,GAAG,cAAc,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAA;QAEvF,MAAM,0BAA0B,GAAG,MAAM,6BAA6B,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAEzF,OAAO,0BAA0B,IAAI,EAAE,CAAA;IACzC,CAAC,EAAE,sDAAsD,CAAC,CAAA;AAC5D,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { MarketplacePromotion } from '../../entities/marketplacePromotion';
2
+ import { NovaDataSource } from '../../novaDataSource';
3
+ import { Logger } from '../../types/logger';
4
+ import { CreateMarketplacePromotionParams } from '../../types/promotion';
5
+ export declare const bulkInsertMarketplacePromotion: (novaDataSource: NovaDataSource, params: CreateMarketplacePromotionParams, logger: Logger) => Promise<MarketplacePromotion[]>;
@@ -0,0 +1,15 @@
1
+ import { MarketplacePromotion } from '../../entities/marketplacePromotion';
2
+ import { requiredCreateMarketplacePromotionParams, } from '../../types/promotion';
3
+ import { anyAttributeInArrayIsNull } from '../../utils/paramsValidators';
4
+ export const bulkInsertMarketplacePromotion = async (novaDataSource, params, logger) => {
5
+ if (anyAttributeInArrayIsNull(params.items, requiredCreateMarketplacePromotionParams)) {
6
+ logger.warn({ params }, 'PromotionRepository::createMarketplacePromotion missing required parameters');
7
+ return [];
8
+ }
9
+ return novaDataSource.safeQuery(async (safeDataSource) => {
10
+ const marketplacePromotionRepository = safeDataSource.getRepository(MarketplacePromotion);
11
+ const createdMarketplacePromotion = await marketplacePromotionRepository.save(params.items);
12
+ return createdMarketplacePromotion ?? [];
13
+ }, 'PromotionRepository::createMarketplacePromotion error');
14
+ };
15
+ //# sourceMappingURL=bulkInsertMarketplacePromotion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bulkInsertMarketplacePromotion.js","sourceRoot":"","sources":["../../../src/repositories/promotions/bulkInsertMarketplacePromotion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAA;AAG1E,OAAO,EAEL,wCAAwC,GACzC,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAA;AAExE,MAAM,CAAC,MAAM,8BAA8B,GAAG,KAAK,EACjD,cAA8B,EAC9B,MAAwC,EACxC,MAAc,EACmB,EAAE;IACnC,IAAI,yBAAyB,CAAC,MAAM,CAAC,KAAK,EAAE,wCAAwC,CAAC,EAAE;QACrF,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,EACV,6EAA6E,CAC9E,CAAA;QACD,OAAO,EAAE,CAAA;KACV;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,cAA8B,EAEnE,EAAE;QACF,MAAM,8BAA8B,GAAG,cAAc,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAA;QAEzF,MAAM,2BAA2B,GAAG,MAAM,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAE3F,OAAO,2BAA2B,IAAI,EAAE,CAAA;IAC1C,CAAC,EAAE,uDAAuD,CAAC,CAAA;AAC7D,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { Promotion } from '../../entities';
2
+ import { NovaDataSource } from '../../novaDataSource';
3
+ import { Logger } from '../../types/logger';
4
+ import { CreatePromotionParams } from '../../types/promotion';
5
+ export declare const createPromotion: (novaDataSource: NovaDataSource, params: CreatePromotionParams, logger: Logger) => Promise<Promotion>;
@@ -0,0 +1,30 @@
1
+ import { Promotion } from '../../entities';
2
+ import { requiredCreatePromotionParams } from '../../types/promotion';
3
+ import { anyAttributeIsNull } from '../../utils/paramsValidators';
4
+ import { invalidPromotion } from './promotionValidator';
5
+ export const createPromotion = async (novaDataSource, params, logger) => {
6
+ if (anyAttributeIsNull(params, requiredCreatePromotionParams) ||
7
+ invalidPromotion(params, logger)) {
8
+ logger.warn({ params }, 'PromotionRepository::createPromotion missing required parameters');
9
+ return null;
10
+ }
11
+ return novaDataSource.safeQuery(async (safeDataSource) => {
12
+ const promotionRepository = safeDataSource.getRepository(Promotion);
13
+ const newPromotion = {
14
+ bannerText: params.bannerText,
15
+ description: params.description,
16
+ discount: params.discount,
17
+ discountBillingCycles: params.discountBillingCycles,
18
+ endDate: params.endDate,
19
+ freeServiceMonths: params.freeServiceMonths,
20
+ name: params.name,
21
+ startDate: params.startDate,
22
+ status: params.status,
23
+ trackerText: params.trackerText,
24
+ type: params.type,
25
+ };
26
+ const createdPromotion = await promotionRepository.save(newPromotion);
27
+ return createdPromotion ?? null;
28
+ }, 'PromotionRepository::createPromotion error');
29
+ };
30
+ //# sourceMappingURL=createPromotion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createPromotion.js","sourceRoot":"","sources":["../../../src/repositories/promotions/createPromotion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAG1C,OAAO,EAAyB,6BAA6B,EAAE,MAAM,uBAAuB,CAAA;AAC5F,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEvD,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,cAA8B,EAC9B,MAA6B,EAC7B,MAAc,EACM,EAAE;IACtB,IACE,kBAAkB,CAAwB,MAAM,EAAE,6BAA6B,CAAC;QAChF,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC;QACA,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,kEAAkE,CAAC,CAAA;QAC3F,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,cAA8B,EAAsB,EAAE;QAC3F,MAAM,mBAAmB,GAAG,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;QAEnE,MAAM,YAAY,GAAG;YACnB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;YACnD,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAA;QAED,MAAM,gBAAgB,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAErE,OAAO,gBAAgB,IAAI,IAAI,CAAA;IACjC,CAAC,EAAE,4CAA4C,CAAC,CAAA;AAClD,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { NovaDataSource } from '../../novaDataSource';
2
+ import { Logger } from '../../types/logger';
3
+ import { DeleteDeviceTypePromotionParams } from '../../types/promotion';
4
+ export declare const deleteDeviceTypePromotion: (novaDataSource: NovaDataSource, params: DeleteDeviceTypePromotionParams, logger: Logger) => Promise<boolean>;
@@ -0,0 +1,22 @@
1
+ import { DeviceTypePromotion } from '../../entities/deviceTypePromotion';
2
+ import { oneRequiredDeleteDeviceTypePromotionParams, } from '../../types/promotion';
3
+ import { allAttributesAreNull } from '../../utils/paramsValidators';
4
+ export const deleteDeviceTypePromotion = async (novaDataSource, params, logger) => {
5
+ if (allAttributesAreNull(params, oneRequiredDeleteDeviceTypePromotionParams)) {
6
+ logger.warn({ params }, 'PromotionRepository::deleteDeviceTypePromotion missing required parameters');
7
+ return false;
8
+ }
9
+ return novaDataSource.safeQuery(async (dataSource) => {
10
+ const tagsRepository = dataSource.getRepository(DeviceTypePromotion);
11
+ const queryBuilder = tagsRepository.createQueryBuilder().delete();
12
+ if (params.promotionId) {
13
+ queryBuilder.where('promotionId = :promotionId', { promotionId: params.promotionId });
14
+ }
15
+ if (params.deviceTypeId) {
16
+ queryBuilder.andWhere('deviceTypeId = :deviceTypeId', { deviceTypeId: params.deviceTypeId });
17
+ }
18
+ const result = await queryBuilder.execute();
19
+ return result.affected > 0;
20
+ }, 'PromotionRepository::deleteDeviceTypePromotion');
21
+ };
22
+ //# sourceMappingURL=deleteDeviceTypePromotion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deleteDeviceTypePromotion.js","sourceRoot":"","sources":["../../../src/repositories/promotions/deleteDeviceTypePromotion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAA;AAGxE,OAAO,EAEL,0CAA0C,GAC3C,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAEnE,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,EAC5C,cAA8B,EAC9B,MAAuC,EACvC,MAAc,EACI,EAAE;IACpB,IAAI,oBAAoB,CAAC,MAAM,EAAE,0CAA0C,CAAC,EAAE;QAC5E,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,EACV,4EAA4E,CAC7E,CAAA;QACD,OAAO,KAAK,CAAA;KACb;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,UAA0B,EAAoB,EAAE;QACrF,MAAM,cAAc,GAAG,UAAU,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAA;QAEpE,MAAM,YAAY,GAAG,cAAc,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,CAAA;QAEjE,IAAI,MAAM,CAAC,WAAW,EAAE;YACtB,YAAY,CAAC,KAAK,CAAC,4BAA4B,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;SACtF;QAED,IAAI,MAAM,CAAC,YAAY,EAAE;YACvB,YAAY,CAAC,QAAQ,CAAC,8BAA8B,EAAE,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAA;SAC7F;QACD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAA;QAE3C,OAAO,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAA;IAC5B,CAAC,EAAE,gDAAgD,CAAC,CAAA;AACtD,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { NovaDataSource } from '../../novaDataSource';
2
+ import { Logger } from '../../types/logger';
3
+ import { DeleteMarketplacePromotionParams } from '../../types/promotion';
4
+ export declare const deleteMarketplacePromotion: (novaDataSource: NovaDataSource, params: DeleteMarketplacePromotionParams, logger: Logger) => Promise<boolean>;
@@ -0,0 +1,24 @@
1
+ import { MarketplacePromotion } from '../../entities/marketplacePromotion';
2
+ import { oneRequiredDeleteMarketplacePromotionParams, } from '../../types/promotion';
3
+ import { allAttributesAreNull } from '../../utils/paramsValidators';
4
+ export const deleteMarketplacePromotion = async (novaDataSource, params, logger) => {
5
+ if (allAttributesAreNull(params, oneRequiredDeleteMarketplacePromotionParams)) {
6
+ logger.warn({ params }, 'PromotionRepository::deleteMarketplacePromotion missing required parameters');
7
+ return false;
8
+ }
9
+ return novaDataSource.safeQuery(async (dataSource) => {
10
+ const tagsRepository = dataSource.getRepository(MarketplacePromotion);
11
+ const queryBuilder = tagsRepository.createQueryBuilder().delete();
12
+ if (params.promotionId) {
13
+ queryBuilder.where('promotionId = :promotionId', { promotionId: params.promotionId });
14
+ }
15
+ if (params.marketplaceId) {
16
+ queryBuilder.andWhere('marketplaceId = :marketplaceId', {
17
+ marketplaceId: params.marketplaceId,
18
+ });
19
+ }
20
+ const result = await queryBuilder.execute();
21
+ return result.affected > 0;
22
+ }, 'PromotionRepository::deleteMarketplacePromotion');
23
+ };
24
+ //# sourceMappingURL=deleteMarketplacePromotion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deleteMarketplacePromotion.js","sourceRoot":"","sources":["../../../src/repositories/promotions/deleteMarketplacePromotion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAA;AAG1E,OAAO,EAEL,2CAA2C,GAC5C,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAEnE,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,EAC7C,cAA8B,EAC9B,MAAwC,EACxC,MAAc,EACI,EAAE;IACpB,IAAI,oBAAoB,CAAC,MAAM,EAAE,2CAA2C,CAAC,EAAE;QAC7E,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,EACV,6EAA6E,CAC9E,CAAA;QACD,OAAO,KAAK,CAAA;KACb;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,UAA0B,EAAoB,EAAE;QACrF,MAAM,cAAc,GAAG,UAAU,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAA;QAErE,MAAM,YAAY,GAAG,cAAc,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,CAAA;QAEjE,IAAI,MAAM,CAAC,WAAW,EAAE;YACtB,YAAY,CAAC,KAAK,CAAC,4BAA4B,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;SACtF;QAED,IAAI,MAAM,CAAC,aAAa,EAAE;YACxB,YAAY,CAAC,QAAQ,CAAC,gCAAgC,EAAE;gBACtD,aAAa,EAAE,MAAM,CAAC,aAAa;aACpC,CAAC,CAAA;SACH;QACD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAA;QAE3C,OAAO,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAA;IAC5B,CAAC,EAAE,iDAAiD,CAAC,CAAA;AACvD,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { DeviceTypePromotion } from '../../entities/deviceTypePromotion';
2
+ import { NovaDataSource } from '../../novaDataSource';
3
+ import { Logger } from '../../types/logger';
4
+ import { GetDeviceTypePromotionParams } from '../../types/promotion';
5
+ export declare const getDeviceTypePromotion: (novaDataSource: NovaDataSource, params: GetDeviceTypePromotionParams, logger: Logger) => Promise<DeviceTypePromotion>;
@@ -0,0 +1,28 @@
1
+ import { DeviceTypePromotion } from '../../entities/deviceTypePromotion';
2
+ import { oneRequiredGetDeviceTypePromotionParams, } from '../../types/promotion';
3
+ import { anyAttributeIsNull } from '../../utils/paramsValidators';
4
+ export const getDeviceTypePromotion = async (novaDataSource, params, logger) => {
5
+ if (anyAttributeIsNull(params, oneRequiredGetDeviceTypePromotionParams)) {
6
+ logger.warn({ params }, 'PromotionRepository::getDeviceTypePromotion missing required parameters');
7
+ return null;
8
+ }
9
+ // Force the query to run on master or slave
10
+ const dbQueryRunner = novaDataSource.createQueryRunnerFromParams(params);
11
+ return novaDataSource.safeQuery(async (dataSource, queryRunner) => {
12
+ const deviceTypePromotionRepository = dataSource.getRepository(DeviceTypePromotion);
13
+ const promotionQueryBuilder = deviceTypePromotionRepository.createQueryBuilder('deviceTypePromotion');
14
+ if (queryRunner) {
15
+ promotionQueryBuilder.setQueryRunner(queryRunner);
16
+ }
17
+ const result = await promotionQueryBuilder
18
+ .where('deviceTypePromotion.promotionId = :promotionId', {
19
+ promotionId: params.filters.promotionId,
20
+ })
21
+ .andWhere('deviceTypePromotion.deviceTypeId = :deviceTypeId', {
22
+ deviceTypeId: params.filters.deviceTypeId,
23
+ })
24
+ .getOne();
25
+ return result ?? null;
26
+ }, 'PromotionRepository::getDeviceTypePromotion', dbQueryRunner);
27
+ };
28
+ //# sourceMappingURL=getDeviceTypePromotion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDeviceTypePromotion.js","sourceRoot":"","sources":["../../../src/repositories/promotions/getDeviceTypePromotion.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAA;AAGxE,OAAO,EAEL,uCAAuC,GACxC,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAEjE,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EACzC,cAA8B,EAC9B,MAAoC,EACpC,MAAc,EACgB,EAAE;IAChC,IAAI,kBAAkB,CAAC,MAAM,EAAE,uCAAuC,CAAC,EAAE;QACvE,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,EACV,yEAAyE,CAC1E,CAAA;QACD,OAAO,IAAI,CAAA;KACZ;IAED,4CAA4C;IAC5C,MAAM,aAAa,GAAG,cAAc,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAA;IAExE,OAAO,cAAc,CAAC,SAAS,CAC7B,KAAK,EAAE,UAA0B,EAAE,WAAyB,EAAgC,EAAE;QAC5F,MAAM,6BAA6B,GAAG,UAAU,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAA;QAEnF,MAAM,qBAAqB,GAAG,6BAA6B,CAAC,kBAAkB,CAC5E,qBAAqB,CACtB,CAAA;QAED,IAAI,WAAW,EAAE;YACf,qBAAqB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;SAClD;QAED,MAAM,MAAM,GAAG,MAAM,qBAAqB;aACvC,KAAK,CAAC,gDAAgD,EAAE;YACvD,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW;SACxC,CAAC;aACD,QAAQ,CAAC,kDAAkD,EAAE;YAC5D,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY;SAC1C,CAAC;aACD,MAAM,EAAE,CAAA;QAEX,OAAO,MAAM,IAAI,IAAI,CAAA;IACvB,CAAC,EACD,6CAA6C,EAC7C,aAAa,CACd,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { MarketplacePromotion } from '../../entities/marketplacePromotion';
2
+ import { NovaDataSource } from '../../novaDataSource';
3
+ import { Logger } from '../../types/logger';
4
+ import { GetMarketplacePromotionParams } from '../../types/promotion';
5
+ export declare const getMarketplacePromotion: (novaDataSource: NovaDataSource, params: GetMarketplacePromotionParams, logger: Logger) => Promise<MarketplacePromotion>;
@@ -0,0 +1,28 @@
1
+ import { MarketplacePromotion } from '../../entities/marketplacePromotion';
2
+ import { oneRequiredGetMarketplacePromotionParams, } from '../../types/promotion';
3
+ import { anyAttributeIsNull } from '../../utils/paramsValidators';
4
+ export const getMarketplacePromotion = async (novaDataSource, params, logger) => {
5
+ if (anyAttributeIsNull(params, oneRequiredGetMarketplacePromotionParams)) {
6
+ logger.warn({ params }, 'PromotionRepository::getMarketplacePromotion missing required parameters');
7
+ return null;
8
+ }
9
+ // Force the query to run on master or slave
10
+ const dbQueryRunner = novaDataSource.createQueryRunnerFromParams(params);
11
+ return novaDataSource.safeQuery(async (dataSource, queryRunner) => {
12
+ const marketplacePromotionRepository = dataSource.getRepository(MarketplacePromotion);
13
+ const promotionQueryBuilder = marketplacePromotionRepository.createQueryBuilder('marketplacePromotion');
14
+ if (queryRunner) {
15
+ promotionQueryBuilder.setQueryRunner(queryRunner);
16
+ }
17
+ const result = await promotionQueryBuilder
18
+ .where('marketplacePromotion.promotionId = :promotionId', {
19
+ promotionId: params.filters.promotionId,
20
+ })
21
+ .andWhere('marketplacePromotion.marketplaceId = :marketplaceId', {
22
+ marketplaceId: params.filters.marketplaceId,
23
+ })
24
+ .getOne();
25
+ return result ?? null;
26
+ }, 'PromotionRepository::getMarketplacePromotion', dbQueryRunner);
27
+ };
28
+ //# sourceMappingURL=getMarketplacePromotion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMarketplacePromotion.js","sourceRoot":"","sources":["../../../src/repositories/promotions/getMarketplacePromotion.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAA;AAG1E,OAAO,EAEL,wCAAwC,GACzC,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAEjE,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAC1C,cAA8B,EAC9B,MAAqC,EACrC,MAAc,EACiB,EAAE;IACjC,IAAI,kBAAkB,CAAC,MAAM,EAAE,wCAAwC,CAAC,EAAE;QACxE,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,EACV,0EAA0E,CAC3E,CAAA;QACD,OAAO,IAAI,CAAA;KACZ;IAED,4CAA4C;IAC5C,MAAM,aAAa,GAAG,cAAc,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAA;IAExE,OAAO,cAAc,CAAC,SAAS,CAC7B,KAAK,EACH,UAA0B,EAC1B,WAAyB,EACM,EAAE;QACjC,MAAM,8BAA8B,GAAG,UAAU,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAA;QAErF,MAAM,qBAAqB,GAAG,8BAA8B,CAAC,kBAAkB,CAC7E,sBAAsB,CACvB,CAAA;QAED,IAAI,WAAW,EAAE;YACf,qBAAqB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;SAClD;QAED,MAAM,MAAM,GAAG,MAAM,qBAAqB;aACvC,KAAK,CAAC,iDAAiD,EAAE;YACxD,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW;SACxC,CAAC;aACD,QAAQ,CAAC,qDAAqD,EAAE;YAC/D,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,aAAa;SAC5C,CAAC;aACD,MAAM,EAAE,CAAA;QAEX,OAAO,MAAM,IAAI,IAAI,CAAA;IACvB,CAAC,EACD,8CAA8C,EAC9C,aAAa,CACd,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { Promotion } from '../../entities';
2
+ import { NovaDataSource } from '../../novaDataSource';
3
+ import { Logger } from '../../types/logger';
4
+ import { GetPromotionParams } from '../../types/promotion';
5
+ export declare const getPromotion: (novaDataSource: NovaDataSource, params: GetPromotionParams, logger: Logger) => Promise<Promotion>;
@@ -0,0 +1,21 @@
1
+ import { Promotion } from '../../entities';
2
+ export const getPromotion = async (novaDataSource, params, logger) => {
3
+ if (!params?.filters?.id) {
4
+ logger.warn({ params }, 'PromotionRepository::getPromotion missing required parameters');
5
+ return null;
6
+ }
7
+ // Force the query to run on master or slave
8
+ const dbQueryRunner = novaDataSource.createQueryRunnerFromParams(params);
9
+ return novaDataSource.safeQuery(async (dataSource, queryRunner) => {
10
+ const promotionRepository = dataSource.getRepository(Promotion);
11
+ const promotionQueryBuilder = promotionRepository.createQueryBuilder('promotion');
12
+ if (queryRunner) {
13
+ promotionQueryBuilder.setQueryRunner(queryRunner);
14
+ }
15
+ const result = await promotionQueryBuilder
16
+ .where('promotion.id = :id', { id: params.filters.id })
17
+ .getOne();
18
+ return result ?? null;
19
+ }, 'PromotionRepository::getPromotion', dbQueryRunner);
20
+ };
21
+ //# sourceMappingURL=getPromotion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPromotion.js","sourceRoot":"","sources":["../../../src/repositories/promotions/getPromotion.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAK1C,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,cAA8B,EAC9B,MAA0B,EAC1B,MAAc,EACM,EAAE;IACtB,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;QACxB,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,+DAA+D,CAAC,CAAA;QACxF,OAAO,IAAI,CAAA;KACZ;IAED,4CAA4C;IAC5C,MAAM,aAAa,GAAG,cAAc,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAA;IAExE,OAAO,cAAc,CAAC,SAAS,CAC7B,KAAK,EAAE,UAA0B,EAAE,WAAyB,EAAsB,EAAE;QAClF,MAAM,mBAAmB,GAAG,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;QAE/D,MAAM,qBAAqB,GAAG,mBAAmB,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAA;QAEjF,IAAI,WAAW,EAAE;YACf,qBAAqB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;SAClD;QAED,MAAM,MAAM,GAAG,MAAM,qBAAqB;aACvC,KAAK,CAAC,oBAAoB,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;aACtD,MAAM,EAAE,CAAA;QAEX,OAAO,MAAM,IAAI,IAAI,CAAA;IACvB,CAAC,EACD,mCAAmC,EACnC,aAAa,CACd,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,56 @@
1
+ import { Promotion } from '../../entities';
2
+ import { DeviceTypePromotion } from '../../entities/deviceTypePromotion';
3
+ import { MarketplacePromotion } from '../../entities/marketplacePromotion';
4
+ import { CreateDeviceTypePromotionParams, CreateMarketplacePromotionParams, CreatePromotionParams, DeleteDeviceTypePromotionParams, DeleteMarketplacePromotionParams, GetDeviceTypePromotionParams, GetMarketplacePromotionParams, GetPromotionParams, UpdatePromotionParams } from '../../types/promotion';
5
+ import { BaseRepository } from '../baseRepository';
6
+ export declare class PromotionRepository extends BaseRepository {
7
+ /**
8
+ * Create a promotion
9
+ * @param {CreatePromotionParams} params containing information to create a promotion
10
+ */
11
+ createPromotion(params: CreatePromotionParams): Promise<Promotion>;
12
+ /**
13
+ * Update a promotion
14
+ * @param {UpdatePromotionParams} params containing information to update a promotion
15
+ */
16
+ updatePromotion(params: UpdatePromotionParams): Promise<boolean>;
17
+ /**
18
+ * Get a promotion
19
+ * @param {GetPromotionParams} params containing information to get a promotion
20
+ */
21
+ getPromotion(params: GetPromotionParams): Promise<Promotion>;
22
+ /**
23
+ * Create a marketplace promotion
24
+ * @param {CreateMarketplacePromotionParams} params containing information to create a marketplace promotion
25
+ */
26
+ bulkInsertMarketplacePromotion(params: CreateMarketplacePromotionParams): Promise<MarketplacePromotion[]>;
27
+ /**
28
+ * Create a device type promotion
29
+ * @param {CreateDeviceTypePromotionParams} params containing information to create a device type promotion
30
+ */
31
+ bulkInsertDeviceTypePromotion(params: CreateDeviceTypePromotionParams): Promise<DeviceTypePromotion[]>;
32
+ /**
33
+ * Delete a marketplace promotion
34
+ * @param params containing information to delete a marketplace promotion
35
+ * @returns boolean indicating if the marketplace promotion was deleted
36
+ */
37
+ deleteMarketplacePromotion(params: DeleteMarketplacePromotionParams): Promise<boolean>;
38
+ /**
39
+ * Delete a device type promotion
40
+ * @param params containing information to delete a device type promotion
41
+ * @returns boolean indicating if the device type promotion was deleted
42
+ */
43
+ deleteDeviceTypePromotion(params: DeleteDeviceTypePromotionParams): Promise<boolean>;
44
+ /**
45
+ * Get a device type promotion
46
+ * @param params containing information to get a device type promotion
47
+ * @returns DeviceTypePromotion object
48
+ */
49
+ getDeviceTypePromotion(params: GetDeviceTypePromotionParams): Promise<DeviceTypePromotion>;
50
+ /**
51
+ * Get a marketplace promotion
52
+ * @param params containing information to get a marketplace promotion
53
+ * @returns MarketplacePromotion object
54
+ */
55
+ getMarketplacePromotion(params: GetMarketplacePromotionParams): Promise<MarketplacePromotion>;
56
+ }
@@ -0,0 +1,117 @@
1
+ import { NovaDataSource } from '../../novaDataSource';
2
+ import { BaseRepository } from '../baseRepository';
3
+ import { bulkInsertDeviceTypePromotion } from './bulkInsertDeviceTypePromotion';
4
+ import { bulkInsertMarketplacePromotion } from './bulkInsertMarketplacePromotion';
5
+ import { createPromotion } from './createPromotion';
6
+ import { deleteDeviceTypePromotion } from './deleteDeviceTypePromotion';
7
+ import { deleteMarketplacePromotion } from './deleteMarketplacePromotion';
8
+ import { getDeviceTypePromotion } from './getDeviceTypePromotion';
9
+ import { getMarketplacePromotion } from './getMarketplacePromotion';
10
+ import { getPromotion } from './getPromotion';
11
+ import { updatePromotion } from './updatePromotion';
12
+ export class PromotionRepository extends BaseRepository {
13
+ /**
14
+ * Create a promotion
15
+ * @param {CreatePromotionParams} params containing information to create a promotion
16
+ */
17
+ async createPromotion(params) {
18
+ this.logger.trace(params, `PromotionRepository::this.createPromotion started with params`);
19
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger, this.replicaNovaDataSourceConfig);
20
+ const result = await createPromotion(novaDataSource, params, this.logger);
21
+ this.logger.trace(result, 'PromotionRepository::createPromotion result');
22
+ return result;
23
+ }
24
+ /**
25
+ * Update a promotion
26
+ * @param {UpdatePromotionParams} params containing information to update a promotion
27
+ */
28
+ async updatePromotion(params) {
29
+ this.logger.trace(params, `PromotionRepository::this.updatePromotion started with params`);
30
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger, this.replicaNovaDataSourceConfig);
31
+ const result = await updatePromotion(novaDataSource, params, this.logger);
32
+ this.logger.trace({ result }, 'PromotionRepository::updatePromotion result');
33
+ return result;
34
+ }
35
+ /**
36
+ * Get a promotion
37
+ * @param {GetPromotionParams} params containing information to get a promotion
38
+ */
39
+ async getPromotion(params) {
40
+ this.logger.trace({ params }, `PromotionRepository::getPromotion started with params`);
41
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger, this.replicaNovaDataSourceConfig);
42
+ const promotion = await getPromotion(novaDataSource, params, this.logger);
43
+ this.logger.trace({ promotion }, 'PromotionRepository::getPromotion result');
44
+ return promotion;
45
+ }
46
+ /**
47
+ * Create a marketplace promotion
48
+ * @param {CreateMarketplacePromotionParams} params containing information to create a marketplace promotion
49
+ */
50
+ async bulkInsertMarketplacePromotion(params) {
51
+ this.logger.trace(params, `PromotionRepository.createMarketplacePromotion started with params`);
52
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger, this.replicaNovaDataSourceConfig);
53
+ const result = await bulkInsertMarketplacePromotion(novaDataSource, params, this.logger);
54
+ this.logger.trace(result, 'PromotionRepository::createMarketplacePromotion result');
55
+ return result;
56
+ }
57
+ /**
58
+ * Create a device type promotion
59
+ * @param {CreateDeviceTypePromotionParams} params containing information to create a device type promotion
60
+ */
61
+ async bulkInsertDeviceTypePromotion(params) {
62
+ this.logger.trace(params, `PromotionRepository.createDeviceTypePromotion started with params`);
63
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger, this.replicaNovaDataSourceConfig);
64
+ const result = await bulkInsertDeviceTypePromotion(novaDataSource, params, this.logger);
65
+ this.logger.trace(result, 'PromotionRepository::createDeviceTypePromotion result');
66
+ return result;
67
+ }
68
+ /**
69
+ * Delete a marketplace promotion
70
+ * @param params containing information to delete a marketplace promotion
71
+ * @returns boolean indicating if the marketplace promotion was deleted
72
+ */
73
+ async deleteMarketplacePromotion(params) {
74
+ this.logger.trace(params, `PromotionRepository.deleteMarketplacePromotion started with params`);
75
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger, this.replicaNovaDataSourceConfig);
76
+ const result = await deleteMarketplacePromotion(novaDataSource, params, this.logger);
77
+ this.logger.trace({ result }, 'PromotionRepository::deleteMarketplacePromotion result');
78
+ return result;
79
+ }
80
+ /**
81
+ * Delete a device type promotion
82
+ * @param params containing information to delete a device type promotion
83
+ * @returns boolean indicating if the device type promotion was deleted
84
+ */
85
+ async deleteDeviceTypePromotion(params) {
86
+ this.logger.trace(params, `PromotionRepository.deleteDeviceTypePromotion started with params`);
87
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger, this.replicaNovaDataSourceConfig);
88
+ const result = await deleteDeviceTypePromotion(novaDataSource, params, this.logger);
89
+ this.logger.trace({ result }, 'PromotionRepository::deleteDeviceTypePromotion result');
90
+ return result;
91
+ }
92
+ /**
93
+ * Get a device type promotion
94
+ * @param params containing information to get a device type promotion
95
+ * @returns DeviceTypePromotion object
96
+ */
97
+ async getDeviceTypePromotion(params) {
98
+ this.logger.trace(params, `PromotionRepository.getDeviceTypePromotion started with params`);
99
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger, this.replicaNovaDataSourceConfig);
100
+ const promotion = await getDeviceTypePromotion(novaDataSource, params, this.logger);
101
+ this.logger.trace({ promotion }, 'PromotionRepository::getDeviceTypePromotion result');
102
+ return promotion;
103
+ }
104
+ /**
105
+ * Get a marketplace promotion
106
+ * @param params containing information to get a marketplace promotion
107
+ * @returns MarketplacePromotion object
108
+ */
109
+ async getMarketplacePromotion(params) {
110
+ this.logger.trace(params, `PromotionRepository.getMarketplacePromotion started with params`);
111
+ const novaDataSource = new NovaDataSource(this.novaDataSourceConfig, this.logger, this.replicaNovaDataSourceConfig);
112
+ const promotion = await getMarketplacePromotion(novaDataSource, params, this.logger);
113
+ this.logger.trace({ promotion }, 'PromotionRepository::getMarketplacePromotion result');
114
+ return promotion;
115
+ }
116
+ }
117
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/repositories/promotions/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Logger } from '../../types/logger';
2
+ import { CreatePromotionParams, UpdatePromotionParams } from '../../types/promotion';
3
+ export declare const invalidPromotion: (params: CreatePromotionParams | UpdatePromotionParams, logger: Logger) => boolean;
@@ -0,0 +1,17 @@
1
+ import { PromotionType } from '../../types/enums';
2
+ export const invalidPromotion = (params, logger) => {
3
+ const createParams = params;
4
+ const updateParams = params;
5
+ const type = createParams.type ?? updateParams.values.type;
6
+ if (type === PromotionType.Discount) {
7
+ const discount = createParams.discount ?? updateParams.values.discount;
8
+ return discount <= 0;
9
+ }
10
+ else if (type === PromotionType.FreeService) {
11
+ const freeServiceMonths = createParams.freeServiceMonths ?? updateParams.values.freeServiceMonths;
12
+ return freeServiceMonths <= 0;
13
+ }
14
+ logger.warn({ params }, 'PromotionRepository::invalidPromotion incorrect promotion type');
15
+ return false;
16
+ };
17
+ //# sourceMappingURL=promotionValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promotionValidator.js","sourceRoot":"","sources":["../../../src/repositories/promotions/promotionValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAIjD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,MAAqD,EACrD,MAAc,EACL,EAAE;IACX,MAAM,YAAY,GAAG,MAA+B,CAAA;IACpD,MAAM,YAAY,GAAG,MAA+B,CAAA;IAEpD,MAAM,IAAI,GAAkB,YAAY,CAAC,IAAI,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,CAAA;IAEzE,IAAI,IAAI,KAAK,aAAa,CAAC,QAAQ,EAAE;QACnC,MAAM,QAAQ,GAAW,YAAY,CAAC,QAAQ,IAAI,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAA;QAE9E,OAAO,QAAQ,IAAI,CAAC,CAAA;KACrB;SAAM,IAAI,IAAI,KAAK,aAAa,CAAC,WAAW,EAAE;QAC7C,MAAM,iBAAiB,GACrB,YAAY,CAAC,iBAAiB,IAAI,YAAY,CAAC,MAAM,CAAC,iBAAiB,CAAA;QAEzE,OAAO,iBAAiB,IAAI,CAAC,CAAA;KAC9B;IAED,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,gEAAgE,CAAC,CAAA;IACzF,OAAO,KAAK,CAAA;AACd,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { NovaDataSource } from '../../novaDataSource';
2
+ import { Logger } from '../../types/logger';
3
+ import { UpdatePromotionParams } from '../../types/promotion';
4
+ export declare const updatePromotion: (novaDataSource: NovaDataSource, params: UpdatePromotionParams, logger: Logger) => Promise<boolean>;
@@ -0,0 +1,36 @@
1
+ import { Promotion } from '../../entities';
2
+ import { oneRequiredUpdatePromotionParams, requiredUpdatePromotionParams, } from '../../types/promotion';
3
+ import { allAttributesAreNull, anyAttributeIsNull } from '../../utils/paramsValidators';
4
+ import { invalidPromotion } from './promotionValidator';
5
+ export const updatePromotion = async (novaDataSource, params, logger) => {
6
+ if (anyAttributeIsNull(params, requiredUpdatePromotionParams) ||
7
+ allAttributesAreNull(params, oneRequiredUpdatePromotionParams) ||
8
+ invalidPromotion(params, logger)) {
9
+ logger.warn({ params }, 'PromotionRepository::updatePromotion missing required parameters');
10
+ return false;
11
+ }
12
+ return novaDataSource.safeQuery(async (safeDataSource) => {
13
+ const promotionRepository = safeDataSource.getRepository(Promotion);
14
+ const { filters, values } = params;
15
+ const updateResult = await promotionRepository
16
+ .createQueryBuilder()
17
+ .update(Promotion)
18
+ .set({
19
+ bannerText: values.bannerText,
20
+ description: values.description,
21
+ discount: values.discount,
22
+ discountBillingCycles: values.discountBillingCycles,
23
+ endDate: values.endDate,
24
+ freeServiceMonths: values.freeServiceMonths,
25
+ name: values.name,
26
+ startDate: values.startDate,
27
+ status: values.status,
28
+ trackerText: values.trackerText,
29
+ type: values.type,
30
+ })
31
+ .where('id = :id', { id: filters.id })
32
+ .execute();
33
+ return updateResult.affected > 0;
34
+ }, 'PromotionRepository::updatePromotion error');
35
+ };
36
+ //# sourceMappingURL=updatePromotion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updatePromotion.js","sourceRoot":"","sources":["../../../src/repositories/promotions/updatePromotion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAG1C,OAAO,EACL,gCAAgC,EAChC,6BAA6B,GAE9B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEvD,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,cAA8B,EAC9B,MAA6B,EAC7B,MAAc,EACI,EAAE;IACpB,IACE,kBAAkB,CAAwB,MAAM,EAAE,6BAA6B,CAAC;QAChF,oBAAoB,CAAwB,MAAM,EAAE,gCAAgC,CAAC;QACrF,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC;QACA,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,kEAAkE,CAAC,CAAA;QAC3F,OAAO,KAAK,CAAA;KACb;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,cAA8B,EAAoB,EAAE;QACzF,MAAM,mBAAmB,GAAG,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;QAEnE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;QAClC,MAAM,YAAY,GAAG,MAAM,mBAAmB;aAC3C,kBAAkB,EAAE;aACpB,MAAM,CAAC,SAAS,CAAC;aACjB,GAAG,CAAC;YACH,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;YACnD,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAC;aACD,KAAK,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;aACrC,OAAO,EAAE,CAAA;QAEZ,OAAO,YAAY,CAAC,QAAQ,GAAG,CAAC,CAAA;IAClC,CAAC,EAAE,4CAA4C,CAAC,CAAA;AAClD,CAAC,CAAA"}
@@ -64,3 +64,7 @@ export declare enum BoundaryEventType {
64
64
  Enter = "boundaryEnter",
65
65
  Exit = "boundaryExit"
66
66
  }
67
+ export declare enum PromotionType {
68
+ FreeService = "freeService",
69
+ Discount = "discount"
70
+ }