@studyportals/campaign-management-api-interface 3.0.0 → 3.0.1-0

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.
package/index.d.ts CHANGED
@@ -17,4 +17,5 @@ import { LinksCampaignManagementAPIClient } from './src/links-campaign-managemen
17
17
  import { SwappingEnabledLinkTypes } from "./src/domain/links/swapping-enabled-link-types.enum";
18
18
  export * from "./src/domain/campaign";
19
19
  export * from "./src/domain/users";
20
+ export * from "./src/validation";
20
21
  export { AuditorCampaignManagementAPIClient, OrganisationsCampaignManagementAPIClient, CampaignManagementAPIClient, PrivateCampaignManagementAPIClient, UserCampaignManagementAPIClient, StudyCampaignManagementAPIClient, LinksCampaignManagementAPIClient, AuditorEntityType, AuditorOperation, LinkType, LinkEntityType, SwappingEnabledLinkTypes, GetAuditorDto, PersistGoogleLinkerResultDto, CampaignsEntitiesConfigDto, MinimalOrganisationDto, NumberMap, Pricing, ICampaignAuditorData };
package/index.js CHANGED
@@ -51,4 +51,5 @@ const swapping_enabled_link_types_enum_1 = require("./src/domain/links/swapping-
51
51
  Object.defineProperty(exports, "SwappingEnabledLinkTypes", { enumerable: true, get: function () { return swapping_enabled_link_types_enum_1.SwappingEnabledLinkTypes; } });
52
52
  __exportStar(require("./src/domain/campaign"), exports);
53
53
  __exportStar(require("./src/domain/users"), exports);
54
+ __exportStar(require("./src/validation"), exports);
54
55
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yGAAkG;AAuBjG,mHAvBQ,2EAAkC,OAuBR;AAtBnC,qHAA8G;AAuB7G,yHAvBQ,uFAAwC,OAuBR;AAtBzC,yFAAmF;AAuBlF,4GAvBQ,4DAA2B,OAuBR;AAtB5B,kGAAwF;AA6BvF,kGA7BQ,4CAAiB,OA6BR;AA5BlB,8FAAqF;AA6BpF,iGA7BQ,yCAAgB,OA6BR;AA5BjB,0EAAqE;AAkCpE,8FAlCQ,+BAAa,OAkCR;AAjCd,qGAAgG;AAqC/F,2GArCQ,yDAA0B,OAqCR;AApC3B,gGAAgH;AA0C/G,wFA1CmB,+BAAO,OA0CnB;AAzCR,yGAAkG;AAkBjG,mHAlBQ,2EAAkC,OAkBR;AAjBnC,mGAA4F;AAkB3F,gHAlBQ,qEAA+B,OAkBR;AAjBhC,qGAA8F;AAkB7F,iHAlBQ,uEAAgC,OAkBR;AAjBjC,oGAA8F;AAmC7F,uGAnCQ,kDAAsB,OAmCR;AAlCvB,8EAAqE;AAsBpE,yFAtBQ,yBAAQ,OAsBR;AArBT,6GAAsG;AA2BrG,6GA3BQ,+DAA4B,OA2BR;AA1B7B,oFAA0E;AAqBzE,+FArBQ,sCAAc,OAqBR;AApBf,qGAA8F;AAc7F,iHAdQ,uEAAgC,OAcR;AAbjC,0GAA+F;AAoB9F,yGApBQ,2DAAwB,OAoBR;AAlBzB,wDAAsC;AACtC,qDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yGAAkG;AAwBjG,mHAxBQ,2EAAkC,OAwBR;AAvBnC,qHAA8G;AAwB7G,yHAxBQ,uFAAwC,OAwBR;AAvBzC,yFAAmF;AAwBlF,4GAxBQ,4DAA2B,OAwBR;AAvB5B,kGAAwF;AA8BvF,kGA9BQ,4CAAiB,OA8BR;AA7BlB,8FAAqF;AA8BpF,iGA9BQ,yCAAgB,OA8BR;AA7BjB,0EAAqE;AAmCpE,8FAnCQ,+BAAa,OAmCR;AAlCd,qGAAgG;AAsC/F,2GAtCQ,yDAA0B,OAsCR;AArC3B,gGAAgH;AA2C/G,wFA3CmB,+BAAO,OA2CnB;AA1CR,yGAAkG;AAmBjG,mHAnBQ,2EAAkC,OAmBR;AAlBnC,mGAA4F;AAmB3F,gHAnBQ,qEAA+B,OAmBR;AAlBhC,qGAA8F;AAmB7F,iHAnBQ,uEAAgC,OAmBR;AAlBjC,oGAA8F;AAoC7F,uGApCQ,kDAAsB,OAoCR;AAnCvB,8EAAqE;AAuBpE,yFAvBQ,yBAAQ,OAuBR;AAtBT,6GAAsG;AA4BrG,6GA5BQ,+DAA4B,OA4BR;AA3B7B,oFAA0E;AAsBzE,+FAtBQ,sCAAc,OAsBR;AArBf,qGAA8F;AAe7F,iHAfQ,uEAAgC,OAeR;AAdjC,0GAA+F;AAqB9F,yGArBQ,2DAAwB,OAqBR;AAnBzB,wDAAsC;AACtC,qDAAmC;AACnC,mDAAiC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@studyportals/campaign-management-api-interface",
3
- "version": "3.0.0",
3
+ "version": "3.0.1-0",
4
4
  "scripts": {
5
5
  "compile": "rm -fR bin && npx tsc",
6
6
  "test-u": "jest -c jest.config.unit.json --maxWorkers=1",
@@ -0,0 +1,15 @@
1
+ import { SpecificResult } from "../types/SpecificResult";
2
+ import { ValidationResult } from "../types/ValidationResult";
3
+ type DataType = Record<string, any>;
4
+ export declare class CampaignMandatoryFieldsValidator {
5
+ static validate(data: unknown): ValidationResult;
6
+ static checkName(data: DataType): SpecificResult;
7
+ static checkDate(data: DataType, propertyName: string): SpecificResult;
8
+ static checkPartnershipType(data: DataType): SpecificResult;
9
+ static checkDeliveryMode(data: DataType): SpecificResult;
10
+ static checkCampaignType(data: DataType): SpecificResult;
11
+ static checkCurrency(data: DataType): SpecificResult;
12
+ static checkNumber(data: DataType, propertyName: string): SpecificResult;
13
+ static checkRegion(data: DataType): SpecificResult;
14
+ }
15
+ export {};
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CampaignMandatoryFieldsValidator = void 0;
4
+ const campaign_1 = require("../../domain/campaign");
5
+ class CampaignMandatoryFieldsValidator {
6
+ static validate(data) {
7
+ const result = {
8
+ missing: [],
9
+ invalid: [],
10
+ valid: []
11
+ };
12
+ if (typeof data !== 'object' || data === null) {
13
+ result.missing.push('data');
14
+ return result;
15
+ }
16
+ result[this.checkName(data)].push('name');
17
+ result[this.checkDate(data, 'startDate')].push('startDate');
18
+ result[this.checkDate(data, 'endDate')].push('endDate');
19
+ result[this.checkPartnershipType(data)].push('partnershipType');
20
+ result[this.checkDeliveryMode(data)].push('deliveryMode');
21
+ result[this.checkCampaignType(data)].push('campaignType');
22
+ result[this.checkCurrency(data)].push('currency');
23
+ result[this.checkNumber(data, 'budget')].push('budget');
24
+ result[this.checkNumber(data, 'clientServicesPerson')].push('clientServicesPerson');
25
+ result[this.checkNumber(data, 'accountManager')].push('accountManager');
26
+ result[this.checkNumber(data, 'crmId')].push('crmId');
27
+ result[this.checkRegion(data)].push('region');
28
+ return result;
29
+ }
30
+ static checkName(data) {
31
+ if (!data.name) {
32
+ return 'missing';
33
+ }
34
+ if (typeof data.name === 'string') {
35
+ if (data.name.length === 0) {
36
+ return 'missing';
37
+ }
38
+ return 'valid';
39
+ }
40
+ return 'invalid';
41
+ }
42
+ static checkDate(data, propertyName) {
43
+ if (!data[propertyName]) {
44
+ return 'missing';
45
+ }
46
+ if (data[propertyName] instanceof Date) {
47
+ return 'valid';
48
+ }
49
+ return 'invalid';
50
+ }
51
+ static checkPartnershipType(data) {
52
+ if (!data.partnershipType) {
53
+ return 'invalid';
54
+ }
55
+ for (const value of Object.values(campaign_1.PartnershipType)) {
56
+ if (value === data.partnershipType) {
57
+ return 'valid';
58
+ }
59
+ }
60
+ return 'invalid';
61
+ }
62
+ static checkDeliveryMode(data) {
63
+ if (!data.deliveryMode) {
64
+ return 'missing';
65
+ }
66
+ const deliveryMode = data.deliveryMode;
67
+ switch (deliveryMode.type) {
68
+ case campaign_1.DeliveryType.EVENLY: {
69
+ return 'valid';
70
+ }
71
+ case campaign_1.DeliveryType.CUSTOM_OVERPERFORMANCE: {
72
+ if (typeof deliveryMode.overperformanceLimit === 'number' && deliveryMode.overperformanceLimit >= 0) {
73
+ return 'valid';
74
+ }
75
+ return 'invalid';
76
+ }
77
+ default: {
78
+ return 'invalid';
79
+ }
80
+ }
81
+ }
82
+ static checkCampaignType(data) {
83
+ if (!data.campaignType) {
84
+ return 'missing';
85
+ }
86
+ for (const value of Object.values(campaign_1.CampaignType)) {
87
+ if (value === data.campaignType) {
88
+ return 'valid';
89
+ }
90
+ }
91
+ return 'invalid';
92
+ }
93
+ static checkCurrency(data) {
94
+ if (!data.currency) {
95
+ return 'missing';
96
+ }
97
+ for (const value of Object.values(campaign_1.Currency)) {
98
+ if (value === data.currency) {
99
+ return 'valid';
100
+ }
101
+ }
102
+ return 'invalid';
103
+ }
104
+ static checkNumber(data, propertyName) {
105
+ if (!data[propertyName]) {
106
+ return 'missing';
107
+ }
108
+ if (typeof data[propertyName] === 'number' && data[propertyName] >= 0) {
109
+ return 'valid';
110
+ }
111
+ return 'invalid';
112
+ }
113
+ static checkRegion(data) {
114
+ if (!data.region) {
115
+ return 'missing';
116
+ }
117
+ for (const value of Object.values(campaign_1.Region)) {
118
+ if (value === data.region) {
119
+ return 'valid';
120
+ }
121
+ }
122
+ return 'invalid';
123
+ }
124
+ }
125
+ exports.CampaignMandatoryFieldsValidator = CampaignMandatoryFieldsValidator;
126
+ //# sourceMappingURL=mandatory-fields-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mandatory-fields-validator.js","sourceRoot":"","sources":["../../../../src/validation/campaign/mandatory-fields-validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { CampaignMandatoryFieldsValidator } from "./campaign/mandatory-fields-validator";
2
+ import { SpecificResult } from "./types/SpecificResult";
3
+ import { ValidationResult } from "./types/ValidationResult";
4
+ export { ValidationResult, SpecificResult, CampaignMandatoryFieldsValidator };
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CampaignMandatoryFieldsValidator = void 0;
4
+ const mandatory_fields_validator_1 = require("./campaign/mandatory-fields-validator");
5
+ Object.defineProperty(exports, "CampaignMandatoryFieldsValidator", { enumerable: true, get: function () { return mandatory_fields_validator_1.CampaignMandatoryFieldsValidator; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/validation/index.ts"],"names":[],"mappings":";;;AAAA,sFAAyF;AAOxF,iHAPQ,6DAAgC,OAOR"}
@@ -0,0 +1 @@
1
+ export type SpecificResult = 'missing' | 'invalid' | 'valid';
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=SpecificResult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpecificResult.js","sourceRoot":"","sources":["../../../../src/validation/types/SpecificResult.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export type ValidationResult = {
2
+ missing: string[];
3
+ invalid: string[];
4
+ valid: string[];
5
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ValidationResult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ValidationResult.js","sourceRoot":"","sources":["../../../../src/validation/types/ValidationResult.ts"],"names":[],"mappings":""}