@studyportals/campaign-management-api-interface 16.1.3 → 16.2.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 +5 -1
- package/index.js +8 -1
- package/index.js.map +1 -1
- package/package.json +52 -52
- package/src/auditor-campaign-management-api.client.d.ts +4 -0
- package/src/auditor-campaign-management-api.client.js +4 -0
- package/src/auditor-campaign-management-api.client.js.map +1 -1
- package/src/domain/campaign/enriched-organisation-geotargeting.dto.d.ts +2 -2
- package/src/domain/campaign/enriched-study-geotargeting.dto.d.ts +2 -2
- package/src/domain/campaign/entity-geotargeting.dto.d.ts +5 -5
- package/src/domain/campaign/targeted-countries.dto.d.ts +3 -0
- package/src/domain/campaign/targeted-countries.dto.js +3 -0
- package/src/domain/campaign/targeted-countries.dto.js.map +1 -1
- package/src/domain/types/geotarginator/entity-configs-group.d.ts +5 -0
- package/src/domain/types/geotarginator/entity-configs-group.js +3 -0
- package/src/domain/types/geotarginator/entity-configs-group.js.map +1 -0
- package/src/domain/types/geotarginator/flat-entity-config.d.ts +5 -0
- package/src/domain/types/geotarginator/flat-entity-config.js +3 -0
- package/src/domain/types/geotarginator/flat-entity-config.js.map +1 -0
- package/src/domain/types/geotarginator/geotargeting-entity.d.ts +5 -0
- package/src/domain/types/geotarginator/geotargeting-entity.js +3 -0
- package/src/domain/types/geotarginator/geotargeting-entity.js.map +1 -0
- package/src/domain/types/geotarginator/index.d.ts +5 -0
- package/src/domain/types/geotarginator/index.js +3 -0
- package/src/domain/types/geotarginator/index.js.map +1 -0
- package/src/domain/types/geotarginator/save-campaign-geotargeting-request.d.ts +7 -0
- package/src/domain/types/geotarginator/save-campaign-geotargeting-request.js +3 -0
- package/src/domain/types/geotarginator/save-campaign-geotargeting-request.js.map +1 -0
- package/src/domain/types/geotarginator/targeted-countries.d.ts +5 -0
- package/src/domain/types/geotarginator/targeted-countries.js +3 -0
- package/src/domain/types/geotarginator/targeted-countries.js.map +1 -0
- package/src/geotarginator-front-cma-client.d.ts +16 -0
- package/src/geotarginator-front-cma-client.js +33 -0
- package/src/geotarginator-front-cma-client.js.map +1 -0
- package/src/helper/aws-request-method.d.ts +1 -0
- package/src/helper/aws-request-method.js +3 -0
- package/src/helper/aws-request-method.js.map +1 -0
- package/src/helper/aws-request-signer-props.d.ts +8 -0
- package/src/helper/aws-request-signer-props.js +3 -0
- package/src/helper/aws-request-signer-props.js.map +1 -0
- package/src/helper/aws-request-signer.d.ts +5 -0
- package/src/helper/aws-request-signer.js +31 -0
- package/src/helper/aws-request-signer.js.map +1 -0
- package/src/private-user-campaign-management-api.client.d.ts +1 -0
- package/src/private-user-campaign-management-api.client.js +21 -54
- package/src/private-user-campaign-management-api.client.js.map +1 -1
- package/src/utils/entity-configs.d.ts +17 -0
- package/src/utils/entity-configs.js +37 -0
- package/src/utils/entity-configs.js.map +1 -0
package/index.d.ts
CHANGED
|
@@ -20,6 +20,10 @@ import { ProductsCampaignManagementAPIClient } from "./src/products-campaign-man
|
|
|
20
20
|
import { PublicStatusClient } from "./src/public-status-client";
|
|
21
21
|
import { CampaignEditorFrontendStatusDto, StatusHealthy, StatusBlocked } from "./src/domain/types/campaign-editor-frontend-status.dto";
|
|
22
22
|
import { PrivateUserCampaignManagementAPIClient } from "./src/private-user-campaign-management-api.client";
|
|
23
|
+
import { IdDto } from "./src/domain/id.dto";
|
|
24
|
+
import { GeotarginatorFrontCMAClient } from "./src/geotarginator-front-cma-client";
|
|
25
|
+
import { groupEntityConfigs, flattenEntityConfigs } from "./src/utils/entity-configs";
|
|
26
|
+
import { SaveCampaignGeotargetingRequest, GeotargetingEntity, TargetedCountries, EntityConfigsGroup, FlatEntityConfig } from "./src/domain/types/geotarginator";
|
|
23
27
|
export * from "./src/domain/campaign";
|
|
24
28
|
export * from "./src/domain/users";
|
|
25
29
|
export * from "./src/validation";
|
|
@@ -27,4 +31,4 @@ export * from "./src/domain/organisations";
|
|
|
27
31
|
export * from "./src/domain/products";
|
|
28
32
|
export * from "./src/domain/degrees";
|
|
29
33
|
export * from "./src/campaign-saving";
|
|
30
|
-
export { AuditorCampaignManagementAPIClient, OrganisationsCampaignManagementAPIClient, CampaignManagementAPIClient, PrivateCampaignManagementAPIClient, PrivateUserCampaignManagementAPIClient, UserCampaignManagementAPIClient, StudyCampaignManagementAPIClient, LinksCampaignManagementAPIClient, ProductsCampaignManagementAPIClient, PublicStatusClient, AuditorEntityType, AuditorOperation, LinkType, LinkEntityType, SwappingEnabledLinkTypes, GetAuditorDto, PersistGoogleLinkerResultDto, CampaignsEntitiesConfigDto, MinimalOrganisationDto, CampaignEditorFrontendStatusDto, StatusHealthy, StatusBlocked, NumberMap, Pricing, ICampaignAuditorData, SuperAgentResponseCover };
|
|
34
|
+
export { AuditorCampaignManagementAPIClient, OrganisationsCampaignManagementAPIClient, CampaignManagementAPIClient, PrivateCampaignManagementAPIClient, PrivateUserCampaignManagementAPIClient, UserCampaignManagementAPIClient, StudyCampaignManagementAPIClient, LinksCampaignManagementAPIClient, ProductsCampaignManagementAPIClient, PublicStatusClient, GeotarginatorFrontCMAClient, AuditorEntityType, AuditorOperation, LinkType, LinkEntityType, SwappingEnabledLinkTypes, GetAuditorDto, PersistGoogleLinkerResultDto, IdDto, CampaignsEntitiesConfigDto, MinimalOrganisationDto, CampaignEditorFrontendStatusDto, StatusHealthy, StatusBlocked, SaveCampaignGeotargetingRequest, GeotargetingEntity, TargetedCountries, EntityConfigsGroup, FlatEntityConfig, groupEntityConfigs, flattenEntityConfigs, NumberMap, Pricing, ICampaignAuditorData, SuperAgentResponseCover };
|
package/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.Pricing = exports.MinimalOrganisationDto = exports.CampaignsEntitiesConfigDto = exports.PersistGoogleLinkerResultDto = exports.GetAuditorDto = exports.SwappingEnabledLinkTypes = exports.LinkEntityType = exports.LinkType = exports.AuditorOperation = exports.AuditorEntityType = exports.PublicStatusClient = exports.ProductsCampaignManagementAPIClient = exports.LinksCampaignManagementAPIClient = exports.StudyCampaignManagementAPIClient = exports.UserCampaignManagementAPIClient = exports.PrivateUserCampaignManagementAPIClient = exports.PrivateCampaignManagementAPIClient = exports.CampaignManagementAPIClient = exports.OrganisationsCampaignManagementAPIClient = exports.AuditorCampaignManagementAPIClient = void 0;
|
|
17
|
+
exports.Pricing = exports.flattenEntityConfigs = exports.groupEntityConfigs = exports.MinimalOrganisationDto = exports.CampaignsEntitiesConfigDto = exports.IdDto = exports.PersistGoogleLinkerResultDto = exports.GetAuditorDto = exports.SwappingEnabledLinkTypes = exports.LinkEntityType = exports.LinkType = exports.AuditorOperation = exports.AuditorEntityType = exports.GeotarginatorFrontCMAClient = exports.PublicStatusClient = exports.ProductsCampaignManagementAPIClient = exports.LinksCampaignManagementAPIClient = exports.StudyCampaignManagementAPIClient = exports.UserCampaignManagementAPIClient = exports.PrivateUserCampaignManagementAPIClient = exports.PrivateCampaignManagementAPIClient = exports.CampaignManagementAPIClient = exports.OrganisationsCampaignManagementAPIClient = exports.AuditorCampaignManagementAPIClient = void 0;
|
|
18
18
|
const auditor_campaign_management_api_client_1 = require("./src/auditor-campaign-management-api.client");
|
|
19
19
|
Object.defineProperty(exports, "AuditorCampaignManagementAPIClient", { enumerable: true, get: function () { return auditor_campaign_management_api_client_1.AuditorCampaignManagementAPIClient; } });
|
|
20
20
|
const organisations_campaign_management_api_client_1 = require("./src/organisations-campaign-management-api.client");
|
|
@@ -55,6 +55,13 @@ const public_status_client_1 = require("./src/public-status-client");
|
|
|
55
55
|
Object.defineProperty(exports, "PublicStatusClient", { enumerable: true, get: function () { return public_status_client_1.PublicStatusClient; } });
|
|
56
56
|
const private_user_campaign_management_api_client_1 = require("./src/private-user-campaign-management-api.client");
|
|
57
57
|
Object.defineProperty(exports, "PrivateUserCampaignManagementAPIClient", { enumerable: true, get: function () { return private_user_campaign_management_api_client_1.PrivateUserCampaignManagementAPIClient; } });
|
|
58
|
+
const id_dto_1 = require("./src/domain/id.dto");
|
|
59
|
+
Object.defineProperty(exports, "IdDto", { enumerable: true, get: function () { return id_dto_1.IdDto; } });
|
|
60
|
+
const geotarginator_front_cma_client_1 = require("./src/geotarginator-front-cma-client");
|
|
61
|
+
Object.defineProperty(exports, "GeotarginatorFrontCMAClient", { enumerable: true, get: function () { return geotarginator_front_cma_client_1.GeotarginatorFrontCMAClient; } });
|
|
62
|
+
const entity_configs_1 = require("./src/utils/entity-configs");
|
|
63
|
+
Object.defineProperty(exports, "groupEntityConfigs", { enumerable: true, get: function () { return entity_configs_1.groupEntityConfigs; } });
|
|
64
|
+
Object.defineProperty(exports, "flattenEntityConfigs", { enumerable: true, get: function () { return entity_configs_1.flattenEntityConfigs; } });
|
|
58
65
|
__exportStar(require("./src/domain/campaign"), exports);
|
|
59
66
|
__exportStar(require("./src/domain/users"), exports);
|
|
60
67
|
__exportStar(require("./src/validation"), exports);
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yGAAkG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yGAAkG;AA2CjG,mHA3CQ,2EAAkC,OA2CR;AA1CnC,qHAA8G;AA2C7G,yHA3CQ,uFAAwC,OA2CR;AA1CzC,yFAAmF;AA2ClF,4GA3CQ,4DAA2B,OA2CR;AA1C5B,kGAAwF;AAqDvF,kGArDQ,4CAAiB,OAqDR;AApDlB,8FAAqF;AAqDpF,iGArDQ,yCAAgB,OAqDR;AApDjB,0EAAqE;AA0DpE,8FA1DQ,+BAAa,OA0DR;AAzDd,qGAAgG;AA8D/F,2GA9DQ,yDAA0B,OA8DR;AA7D3B,gGAAgH;AAmF/G,wFAnFmB,+BAAO,OAmFnB;AAlFR,yGAAkG;AAsCjG,mHAtCQ,2EAAkC,OAsCR;AArCnC,mGAA4F;AAuC3F,gHAvCQ,qEAA+B,OAuCR;AAtChC,qGAA8F;AAuC7F,iHAvCQ,uEAAgC,OAuCR;AAtCjC,oGAA8F;AA4D7F,uGA5DQ,kDAAsB,OA4DR;AA3DvB,8EAAqE;AA8CpE,yFA9CQ,yBAAQ,OA8CR;AA7CT,6GAAsG;AAmDrG,6GAnDQ,+DAA4B,OAmDR;AAlD7B,oFAA0E;AA6CzE,+FA7CQ,sCAAc,OA6CR;AA5Cf,qGAA8F;AAmC7F,iHAnCQ,uEAAgC,OAmCR;AAlCjC,0GAA+F;AA4C9F,yGA5CQ,2DAAwB,OA4CR;AA1CzB,2GAAoG;AAiCnG,oHAjCQ,6EAAmC,OAiCR;AAhCpC,qEAAgE;AAiC/D,mGAjCQ,yCAAkB,OAiCR;AA/BnB,mHAA2G;AA0B1G,uHA1BQ,oFAAsC,OA0BR;AAzBvC,gDAA4C;AA2C3C,sFA3CQ,cAAK,OA2CR;AA1CN,yFAAmF;AA8BlF,4GA9BQ,4DAA2B,OA8BR;AA7B5B,+DAAsF;AA8DrF,mGA9DQ,mCAAkB,OA8DR;AAClB,qGA/D4B,qCAAoB,OA+D5B;AAtDrB,wDAAsC;AACtC,qDAAmC;AACnC,mDAAiC;AACjC,6DAA2C;AAC3C,wDAAsC;AACtC,uDAAqC;AACrC,wDAAsC"}
|
package/package.json
CHANGED
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@studyportals/campaign-management-api-interface",
|
|
3
|
-
"version": "16.
|
|
4
|
-
"scripts": {
|
|
5
|
-
"compile": "rm -fR bin && npx tsc",
|
|
6
|
-
"test-u": "jest -c jest.config.unit.json --maxWorkers=1",
|
|
7
|
-
"test-i": "nyc mocha src tests-i",
|
|
8
|
-
"prepare-deployment": "npm run test-u && npm run compile && cp package.json bin/package.json && rm -fR bin/tests-u",
|
|
9
|
-
"predeploy": "npm run prepare-deployment",
|
|
10
|
-
"deploy": "npm publish ./bin --access=public",
|
|
11
|
-
"deploy-patch": "npm version patch && npm run deploy",
|
|
12
|
-
"deploy-minor": "npm version minor && npm run deploy",
|
|
13
|
-
"deploy-major": "npm version major && npm run deploy",
|
|
14
|
-
"deploy-beta": "npm version prerelease && npm run deploy -- --tag beta"
|
|
15
|
-
},
|
|
16
|
-
"author": "SPNightsWatch",
|
|
17
|
-
"license": "ISC",
|
|
18
|
-
"types": "bin/index.d.ts",
|
|
19
|
-
"devDependencies": {
|
|
20
|
-
"@studyportals/code-style": "^2.2.1",
|
|
21
|
-
"@testdeck/jest": "^0.3.3",
|
|
22
|
-
"@types/chai": "^4.3.20",
|
|
23
|
-
"@types/jest": "^29.5.14",
|
|
24
|
-
"@types/node": "^22.19.7",
|
|
25
|
-
"@types/superagent": "^8.1.9",
|
|
26
|
-
"chai": "^4.5.0",
|
|
27
|
-
"eslint": "^8.57.1",
|
|
28
|
-
"jest": "^29.7.0",
|
|
29
|
-
"jest-mock-extended": "^3.0.7",
|
|
30
|
-
"superagent-mocker": "^0.5.2",
|
|
31
|
-
"ts-jest": "^29.4.6",
|
|
32
|
-
"ts-node": "^10.9.2",
|
|
33
|
-
"typescript": "^5.9.3"
|
|
34
|
-
},
|
|
35
|
-
"dependencies": {
|
|
36
|
-
"@aws-crypto/sha256-js": "^5.2.0",
|
|
37
|
-
"@aws-sdk/credential-provider-node": "^3.972.2",
|
|
38
|
-
"@smithy/signature-v4": "^5.3.8",
|
|
39
|
-
"@studyportals/mb-platform-date-time": "^1.3.1",
|
|
40
|
-
"@studyportals/mb-platform-http-requests": "^2.8.0",
|
|
41
|
-
"@studyportals/university-scheduler-interface": "^0.7.0",
|
|
42
|
-
"class-transformer": "^0.5.1",
|
|
43
|
-
"class-validator": "^0.14.3",
|
|
44
|
-
"inversify": "^6.2.2",
|
|
45
|
-
"reflect-metadata": "^0.2.2",
|
|
46
|
-
"superagent": "^8.1.2"
|
|
47
|
-
},
|
|
48
|
-
"engines": {
|
|
49
|
-
"node": ">=18.x <=22.x",
|
|
50
|
-
"npm ": ">=10.x <=11.x"
|
|
51
|
-
}
|
|
52
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@studyportals/campaign-management-api-interface",
|
|
3
|
+
"version": "16.2.0",
|
|
4
|
+
"scripts": {
|
|
5
|
+
"compile": "rm -fR bin && npx tsc",
|
|
6
|
+
"test-u": "jest -c jest.config.unit.json --maxWorkers=1",
|
|
7
|
+
"test-i": "nyc mocha src tests-i",
|
|
8
|
+
"prepare-deployment": "npm run test-u && npm run compile && cp package.json bin/package.json && rm -fR bin/tests-u",
|
|
9
|
+
"predeploy": "npm run prepare-deployment",
|
|
10
|
+
"deploy": "npm publish ./bin --access=public",
|
|
11
|
+
"deploy-patch": "npm version patch && npm run deploy",
|
|
12
|
+
"deploy-minor": "npm version minor && npm run deploy",
|
|
13
|
+
"deploy-major": "npm version major && npm run deploy",
|
|
14
|
+
"deploy-beta": "npm version prerelease && npm run deploy -- --tag beta"
|
|
15
|
+
},
|
|
16
|
+
"author": "SPNightsWatch",
|
|
17
|
+
"license": "ISC",
|
|
18
|
+
"types": "bin/index.d.ts",
|
|
19
|
+
"devDependencies": {
|
|
20
|
+
"@studyportals/code-style": "^2.2.1",
|
|
21
|
+
"@testdeck/jest": "^0.3.3",
|
|
22
|
+
"@types/chai": "^4.3.20",
|
|
23
|
+
"@types/jest": "^29.5.14",
|
|
24
|
+
"@types/node": "^22.19.7",
|
|
25
|
+
"@types/superagent": "^8.1.9",
|
|
26
|
+
"chai": "^4.5.0",
|
|
27
|
+
"eslint": "^8.57.1",
|
|
28
|
+
"jest": "^29.7.0",
|
|
29
|
+
"jest-mock-extended": "^3.0.7",
|
|
30
|
+
"superagent-mocker": "^0.5.2",
|
|
31
|
+
"ts-jest": "^29.4.6",
|
|
32
|
+
"ts-node": "^10.9.2",
|
|
33
|
+
"typescript": "^5.9.3"
|
|
34
|
+
},
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"@aws-crypto/sha256-js": "^5.2.0",
|
|
37
|
+
"@aws-sdk/credential-provider-node": "^3.972.2",
|
|
38
|
+
"@smithy/signature-v4": "^5.3.8",
|
|
39
|
+
"@studyportals/mb-platform-date-time": "^1.3.1",
|
|
40
|
+
"@studyportals/mb-platform-http-requests": "^2.8.0",
|
|
41
|
+
"@studyportals/university-scheduler-interface": "^0.7.0",
|
|
42
|
+
"class-transformer": "^0.5.1",
|
|
43
|
+
"class-validator": "^0.14.3",
|
|
44
|
+
"inversify": "^6.2.2",
|
|
45
|
+
"reflect-metadata": "^0.2.2",
|
|
46
|
+
"superagent": "^8.1.2"
|
|
47
|
+
},
|
|
48
|
+
"engines": {
|
|
49
|
+
"node": ">=18.x <=22.x",
|
|
50
|
+
"npm ": ">=10.x <=11.x"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -6,6 +6,10 @@ export declare class AuditorCampaignManagementAPIClient {
|
|
|
6
6
|
constructor(baseUrl: string);
|
|
7
7
|
getCampaignAuditorData(campaignID: number, jwt?: string): Promise<GetAuditorDto[]>;
|
|
8
8
|
getStudyAuditorData(studyID: number, jwt?: string): Promise<GetAuditorDto[]>;
|
|
9
|
+
/**
|
|
10
|
+
* @deprecated Auditing is now handled internally by CMA as part of write operations.
|
|
11
|
+
* Use GeotarginatorFrontCMAClient.saveCampaignGeotargeting() instead—auditing is automatic.
|
|
12
|
+
*/
|
|
9
13
|
storeCampaignAuditorData(operation: AuditorOperation, campaignID: number, username: string, isUserAction: boolean, data: any, jwt?: string): Promise<GetAuditorDto>;
|
|
10
14
|
storeStudyAuditorData(operation: AuditorOperation, studyID: number, username: string, isUserAction: boolean, messageType: string, message: any, jwt?: string): Promise<GetAuditorDto>;
|
|
11
15
|
storeStudiesAuditorData(operation: AuditorOperation, studyIDs: number[], username: string, isUserAction: boolean, messageType: string, message: any, jwt?: string): Promise<GetAuditorDto[]>;
|
|
@@ -27,6 +27,10 @@ let AuditorCampaignManagementAPIClient = class AuditorCampaignManagementAPIClien
|
|
|
27
27
|
const getAuditorDtos = result.body;
|
|
28
28
|
return getAuditorDtos;
|
|
29
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* @deprecated Auditing is now handled internally by CMA as part of write operations.
|
|
32
|
+
* Use GeotarginatorFrontCMAClient.saveCampaignGeotargeting() instead—auditing is automatic.
|
|
33
|
+
*/
|
|
30
34
|
async storeCampaignAuditorData(operation, campaignID, username, isUserAction, data, jwt = "") {
|
|
31
35
|
const sendData = {
|
|
32
36
|
"operation": operation,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auditor-campaign-management-api.client.js","sourceRoot":"","sources":["../../src/auditor-campaign-management-api.client.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4BAA0B;AAK1B,yCAAuC;AAEvC,yCAAyC;AAGlC,IAAM,kCAAkC,GAAxC,MAAM,kCAAkC;IAC3C,YACqB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;IAChC,CAAC;IAEE,KAAK,CAAC,sBAAsB,CAAC,UAAkB,EAAE,GAAG,GAAG,EAAE;QAC5D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,qBAAqB,UAAU,EAAE,EAAE,GAAG,CAAC,CAAC;QAC7E,MAAM,cAAc,GAAG,MAAM,CAAC,IAAuB,CAAC;QAEtD,OAAO,cAAc,CAAC;IAC1B,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,OAAe,EAAE,GAAG,GAAG,EAAE;QACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,mBAAmB,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;QACxE,MAAM,cAAc,GAAG,MAAM,CAAC,IAAuB,CAAC;QAEtD,OAAO,cAAc,CAAC;IAC1B,CAAC;
|
|
1
|
+
{"version":3,"file":"auditor-campaign-management-api.client.js","sourceRoot":"","sources":["../../src/auditor-campaign-management-api.client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { GeotargetingEntity } from "../types/geotarginator/geotargeting-entity";
|
|
2
2
|
import { GeotarginatorEntityType } from "./enums";
|
|
3
|
-
export type EnrichedOrganisationGeotargetingDto =
|
|
3
|
+
export type EnrichedOrganisationGeotargetingDto = GeotargetingEntity & {
|
|
4
4
|
name: string;
|
|
5
5
|
entityType: GeotarginatorEntityType.ORGANISATION;
|
|
6
6
|
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { GeotargetingEntity } from "../types/geotarginator/geotargeting-entity";
|
|
2
2
|
import { BachelorDegrees, MasterDegrees, PHDDegrees, PreparationDegrees, ShortDegrees } from "../degrees/enums";
|
|
3
3
|
import { GeotarginatorEntityType, StudyTypes } from "./enums";
|
|
4
4
|
export type StudyDegrees = BachelorDegrees | MasterDegrees | PHDDegrees | PreparationDegrees | ShortDegrees;
|
|
5
|
-
export type EnrichedStudyGeotargetingDto =
|
|
5
|
+
export type EnrichedStudyGeotargetingDto = GeotargetingEntity & {
|
|
6
6
|
name: string;
|
|
7
7
|
degree: StudyDegrees | null;
|
|
8
8
|
level: StudyTypes;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { GeotargetingEntity } from "../types/geotarginator/geotargeting-entity";
|
|
2
|
+
/**
|
|
3
|
+
* @deprecated Use GeotargetingEntity instead.
|
|
4
|
+
*/
|
|
5
|
+
export type EntityGeotargetingDto = GeotargetingEntity;
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TargetedCountriesDto = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @deprecated Use TargetedCountries instead.
|
|
6
|
+
*/
|
|
4
7
|
class TargetedCountriesDto {
|
|
5
8
|
}
|
|
6
9
|
exports.TargetedCountriesDto = TargetedCountriesDto;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"targeted-countries.dto.js","sourceRoot":"","sources":["../../../../src/domain/campaign/targeted-countries.dto.ts"],"names":[],"mappings":";;;AAAA,MAAa,oBAAoB;CAIhC;AAJD,oDAIC"}
|
|
1
|
+
{"version":3,"file":"targeted-countries.dto.js","sourceRoot":"","sources":["../../../../src/domain/campaign/targeted-countries.dto.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,oBAAoB;CAIhC;AAJD,oDAIC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-configs-group.js","sourceRoot":"","sources":["../../../../../src/domain/types/geotarginator/entity-configs-group.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flat-entity-config.js","sourceRoot":"","sources":["../../../../../src/domain/types/geotarginator/flat-entity-config.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geotargeting-entity.js","sourceRoot":"","sources":["../../../../../src/domain/types/geotarginator/geotargeting-entity.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { TargetedCountries } from "./targeted-countries";
|
|
2
|
+
export { GeotargetingEntity } from "./geotargeting-entity";
|
|
3
|
+
export { EntityConfigsGroup } from "./entity-configs-group";
|
|
4
|
+
export { SaveCampaignGeotargetingRequest } from "./save-campaign-geotargeting-request";
|
|
5
|
+
export { FlatEntityConfig } from "./flat-entity-config";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/domain/types/geotarginator/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { GeotargetingEntity } from "./geotargeting-entity";
|
|
2
|
+
import { EntityConfigsGroup } from "./entity-configs-group";
|
|
3
|
+
export type SaveCampaignGeotargetingRequest = {
|
|
4
|
+
studies: GeotargetingEntity[];
|
|
5
|
+
organisations: GeotargetingEntity[];
|
|
6
|
+
changedEntityConfigGroups: EntityConfigsGroup[];
|
|
7
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"save-campaign-geotargeting-request.js","sourceRoot":"","sources":["../../../../../src/domain/types/geotarginator/save-campaign-geotargeting-request.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"targeted-countries.js","sourceRoot":"","sources":["../../../../../src/domain/types/geotarginator/targeted-countries.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { SaveCampaignGeotargetingRequest } from "./domain/types/geotarginator";
|
|
2
|
+
export declare class GeotarginatorFrontCMAClient {
|
|
3
|
+
private readonly baseUrl;
|
|
4
|
+
constructor(baseUrl: string);
|
|
5
|
+
/**
|
|
6
|
+
* Save campaign geotargeting and pricing configuration.
|
|
7
|
+
*
|
|
8
|
+
* CMA handles routing (active vs future campaign) and auditing internally.
|
|
9
|
+
* The front-end does not need to make separate audit calls.
|
|
10
|
+
*
|
|
11
|
+
* @param campaignId - The campaign ID (used in URL path).
|
|
12
|
+
* @param data - The full save payload (geotargeting + pricing).
|
|
13
|
+
* @param tokenId - JWT token ID from the hs-sso-token-id cookie.
|
|
14
|
+
*/
|
|
15
|
+
saveCampaignGeotargeting(campaignId: number, data: SaveCampaignGeotargetingRequest, tokenId: string): Promise<void>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GeotarginatorFrontCMAClient = void 0;
|
|
4
|
+
class GeotarginatorFrontCMAClient {
|
|
5
|
+
constructor(baseUrl) {
|
|
6
|
+
this.baseUrl = baseUrl;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Save campaign geotargeting and pricing configuration.
|
|
10
|
+
*
|
|
11
|
+
* CMA handles routing (active vs future campaign) and auditing internally.
|
|
12
|
+
* The front-end does not need to make separate audit calls.
|
|
13
|
+
*
|
|
14
|
+
* @param campaignId - The campaign ID (used in URL path).
|
|
15
|
+
* @param data - The full save payload (geotargeting + pricing).
|
|
16
|
+
* @param tokenId - JWT token ID from the hs-sso-token-id cookie.
|
|
17
|
+
*/
|
|
18
|
+
async saveCampaignGeotargeting(campaignId, data, tokenId) {
|
|
19
|
+
const response = await fetch(`${this.baseUrl}/campaigns/${campaignId}/geotargeting`, {
|
|
20
|
+
method: 'POST',
|
|
21
|
+
headers: {
|
|
22
|
+
'Content-Type': 'application/json',
|
|
23
|
+
'Authorization': tokenId
|
|
24
|
+
},
|
|
25
|
+
body: JSON.stringify(data)
|
|
26
|
+
});
|
|
27
|
+
if (!response.ok) {
|
|
28
|
+
throw new Error(`Failed to save campaign geotargeting: ${response.status} ${response.statusText}`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.GeotarginatorFrontCMAClient = GeotarginatorFrontCMAClient;
|
|
33
|
+
//# sourceMappingURL=geotarginator-front-cma-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geotarginator-front-cma-client.js","sourceRoot":"","sources":["../../src/geotarginator-front-cma-client.ts"],"names":[],"mappings":";;;AAEA,MAAa,2BAA2B;IACvC,YACkB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;IAC9B,CAAC;IAEJ;;;;;;;;;OASG;IACI,KAAK,CAAC,wBAAwB,CACpC,UAAkB,EAClB,IAAqC,EACrC,OAAe;QAEf,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC3B,GAAG,IAAI,CAAC,OAAO,cAAc,UAAU,eAAe,EACtD;YACC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACR,cAAc,EAAE,kBAAkB;gBAClC,eAAe,EAAE,OAAO;aACxB;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC1B,CACD,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,yCAAyC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACpG,CAAC;IACF,CAAC;CACD;AApCD,kEAoCC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type AwsRequestMethod = 'GET' | 'POST' | 'PUT' | 'DELETE';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aws-request-method.js","sourceRoot":"","sources":["../../../src/helper/aws-request-method.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aws-request-signer-props.js","sourceRoot":"","sources":["../../../src/helper/aws-request-signer-props.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AwsRequestSigner = void 0;
|
|
4
|
+
const sha256_js_1 = require("@aws-crypto/sha256-js");
|
|
5
|
+
const credential_provider_node_1 = require("@aws-sdk/credential-provider-node");
|
|
6
|
+
const signature_v4_1 = require("@smithy/signature-v4");
|
|
7
|
+
class AwsRequestSigner {
|
|
8
|
+
static async sign(props) {
|
|
9
|
+
const requestHeaders = Object.assign({ 'Content-Type': 'application/json', 'Host': props.url.hostname }, (props.headers || {}));
|
|
10
|
+
const requestBody = props.body ? JSON.stringify(props.body) : undefined;
|
|
11
|
+
const signer = new signature_v4_1.SignatureV4({
|
|
12
|
+
service: "execute-api",
|
|
13
|
+
region: props.region,
|
|
14
|
+
credentials: (0, credential_provider_node_1.defaultProvider)(),
|
|
15
|
+
sha256: sha256_js_1.Sha256
|
|
16
|
+
});
|
|
17
|
+
const signedRequest = await signer.sign({
|
|
18
|
+
method: props.method,
|
|
19
|
+
headers: requestHeaders,
|
|
20
|
+
body: requestBody,
|
|
21
|
+
protocol: props.url.protocol,
|
|
22
|
+
hostname: props.url.hostname,
|
|
23
|
+
port: props.url.port ? parseInt(props.url.port) : undefined,
|
|
24
|
+
path: props.url.pathname,
|
|
25
|
+
query: Object.fromEntries(props.url.searchParams.entries())
|
|
26
|
+
});
|
|
27
|
+
return signedRequest;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.AwsRequestSigner = AwsRequestSigner;
|
|
31
|
+
//# sourceMappingURL=aws-request-signer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aws-request-signer.js","sourceRoot":"","sources":["../../../src/helper/aws-request-signer.ts"],"names":[],"mappings":";;;AAAA,qDAA+C;AAC/C,gFAAoE;AACpE,uDAAmD;AAInD,MAAa,gBAAgB;IAErB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAA4B;QACpD,MAAM,cAAc,mBACnB,cAAc,EAAE,kBAAkB,EAClC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,IACvB,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CACxB,CAAC;QACF,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAExE,MAAM,MAAM,GAAG,IAAI,0BAAW,CAAC;YAC9B,OAAO,EAAE,aAAa;YACtB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,WAAW,EAAE,IAAA,0CAAe,GAAE;YAC9B,MAAM,EAAE,kBAAM;SACd,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YACvC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,cAAc;YACvB,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ;YAC5B,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ;YAC5B,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;YAC3D,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ;YACxB,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;SAC3D,CAAC,CAAC;QAEH,OAAO,aAAa,CAAC;IACtB,CAAC;CACD;AA9BD,4CA8BC"}
|
|
@@ -12,86 +12,53 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.PrivateUserCampaignManagementAPIClient = void 0;
|
|
13
13
|
require("reflect-metadata");
|
|
14
14
|
const inversify_1 = require("inversify");
|
|
15
|
-
const
|
|
16
|
-
const credential_provider_node_1 = require("@aws-sdk/credential-provider-node");
|
|
17
|
-
const sha256_js_1 = require("@aws-crypto/sha256-js");
|
|
15
|
+
const aws_request_signer_1 = require("./helper/aws-request-signer");
|
|
18
16
|
let PrivateUserCampaignManagementAPIClient = class PrivateUserCampaignManagementAPIClient {
|
|
19
17
|
constructor(baseUrl) {
|
|
20
18
|
this.baseUrl = baseUrl;
|
|
21
19
|
}
|
|
22
20
|
async getUserById(id) {
|
|
23
|
-
const url = this.buildBaseUrl(`private/users
|
|
21
|
+
const url = this.buildBaseUrl(`private/users?id=${id}`);
|
|
24
22
|
return await this.signedGetRequest(url);
|
|
25
23
|
}
|
|
26
24
|
async getUserByEmail(email) {
|
|
27
|
-
const url = this.buildBaseUrl(`private/users
|
|
25
|
+
const url = this.buildBaseUrl(`private/users?email=${encodeURIComponent(email)}`);
|
|
28
26
|
return await this.signedGetRequest(url);
|
|
29
27
|
}
|
|
30
28
|
async createClient(user) {
|
|
31
|
-
const url = this.buildBaseUrl('private/users/
|
|
29
|
+
const url = this.buildBaseUrl('private/users/clients');
|
|
32
30
|
return await this.signedPostRequest(url, user);
|
|
33
31
|
}
|
|
34
32
|
buildBaseUrl(relative) {
|
|
35
33
|
return new URL(`${this.baseUrl}/${relative}`);
|
|
36
34
|
}
|
|
37
35
|
async signedGetRequest(endpointUrl, headers = {}) {
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
const request = {
|
|
41
|
-
method: requestMethod,
|
|
42
|
-
headers: requestHeaders,
|
|
43
|
-
protocol: endpointUrl.protocol,
|
|
44
|
-
hostname: endpointUrl.hostname,
|
|
45
|
-
path: endpointUrl.pathname,
|
|
46
|
-
query: Object.fromEntries(endpointUrl.searchParams.entries()),
|
|
47
|
-
};
|
|
48
|
-
const signer = new signature_v4_1.SignatureV4({
|
|
49
|
-
service: "execute-api",
|
|
36
|
+
const signedRequest = await aws_request_signer_1.AwsRequestSigner.sign({
|
|
37
|
+
url: endpointUrl,
|
|
50
38
|
region: process.env.region || process.env.REGION || "eu-central-1",
|
|
51
|
-
|
|
52
|
-
|
|
39
|
+
method: 'GET',
|
|
40
|
+
headers: headers
|
|
53
41
|
});
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
method: signedRequest.method,
|
|
57
|
-
headers: signedRequest.headers
|
|
58
|
-
});
|
|
59
|
-
if (!response.ok) {
|
|
60
|
-
const errorResponse = await response.text().catch(() => 'Unable to read response body');
|
|
61
|
-
throw new Error(`Request to ${endpointUrl.toString()} failed with status ${response.status} ${response.statusText}: ${errorResponse}`);
|
|
62
|
-
}
|
|
63
|
-
return await response.json();
|
|
42
|
+
const response = await fetch(endpointUrl, signedRequest);
|
|
43
|
+
return await this.extractBody(response, endpointUrl);
|
|
64
44
|
}
|
|
65
45
|
async signedPostRequest(endpointUrl, payload, headers = {}) {
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
const requestBody = payload ? JSON.stringify(payload) : {};
|
|
69
|
-
const request = {
|
|
70
|
-
method: requestMethod,
|
|
71
|
-
headers: requestHeaders,
|
|
72
|
-
body: requestBody,
|
|
73
|
-
protocol: endpointUrl.protocol,
|
|
74
|
-
hostname: endpointUrl.hostname,
|
|
75
|
-
path: endpointUrl.pathname,
|
|
76
|
-
query: Object.fromEntries(endpointUrl.searchParams.entries()),
|
|
77
|
-
};
|
|
78
|
-
const signer = new signature_v4_1.SignatureV4({
|
|
79
|
-
service: "execute-api",
|
|
46
|
+
const signedRequest = await aws_request_signer_1.AwsRequestSigner.sign({
|
|
47
|
+
url: endpointUrl,
|
|
80
48
|
region: process.env.region || process.env.REGION || "eu-central-1",
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
const signedRequest = await signer.sign(request);
|
|
85
|
-
const response = await fetch(endpointUrl, {
|
|
86
|
-
method: signedRequest.method,
|
|
87
|
-
headers: signedRequest.headers,
|
|
88
|
-
body: signedRequest.body
|
|
49
|
+
method: 'POST',
|
|
50
|
+
headers: headers,
|
|
51
|
+
body: payload
|
|
89
52
|
});
|
|
53
|
+
const response = await fetch(endpointUrl, signedRequest);
|
|
54
|
+
return await this.extractBody(response, endpointUrl);
|
|
55
|
+
}
|
|
56
|
+
async extractBody(response, url) {
|
|
90
57
|
if (!response.ok) {
|
|
91
58
|
const errorResponse = await response.text().catch(() => 'Unable to read response body');
|
|
92
|
-
throw new Error(`Request to ${
|
|
59
|
+
throw new Error(`Request to ${url ? url.toString() : 'Unknown URL'} failed with status ${response.status} ${response.statusText}: ${errorResponse}`);
|
|
93
60
|
}
|
|
94
|
-
return
|
|
61
|
+
return response.json();
|
|
95
62
|
}
|
|
96
63
|
};
|
|
97
64
|
exports.PrivateUserCampaignManagementAPIClient = PrivateUserCampaignManagementAPIClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private-user-campaign-management-api.client.js","sourceRoot":"","sources":["../../src/private-user-campaign-management-api.client.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4BAA0B;AAC1B,yCAAuC;
|
|
1
|
+
{"version":3,"file":"private-user-campaign-management-api.client.js","sourceRoot":"","sources":["../../src/private-user-campaign-management-api.client.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4BAA0B;AAC1B,yCAAuC;AAGvC,oEAA+D;AAGxD,IAAM,sCAAsC,GAA5C,MAAM,sCAAsC;IAElD,YACkB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;IAC7B,CAAC;IAEE,KAAK,CAAC,WAAW,CAAC,EAAU;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;QACxD,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAU,GAAG,CAAC,CAAC;IAClD,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,KAAa;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,uBAAuB,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClF,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAU,GAAG,CAAC,CAAC;IAClD,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,IAAqB;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,CAAC;QACvD,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAQ,GAAG,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAGO,YAAY,CAAC,QAAgB;QACpC,OAAO,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,IAAI,QAAQ,EAAE,CAAC,CAAC;IAC/C,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAI,WAAgB,EAAE,UAAkC,EAAE;QACvF,MAAM,aAAa,GAAG,MAAM,qCAAgB,CAAC,IAAI,CAAC;YACjD,GAAG,EAAE,WAAW;YAChB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,cAAc;YAClE,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,OAAO;SAChB,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QACzD,OAAO,MAAM,IAAI,CAAC,WAAW,CAAI,QAAQ,EAAE,WAAW,CAAC,CAAC;IACzD,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAI,WAAgB,EAAE,OAAY,EAAE,UAAkC,EAAE;QACtG,MAAM,aAAa,GAAG,MAAM,qCAAgB,CAAC,IAAI,CAAC;YACjD,GAAG,EAAE,WAAW;YAChB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,cAAc;YAClE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,OAAO;SACb,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QACzD,OAAO,MAAM,IAAI,CAAC,WAAW,CAAI,QAAQ,EAAE,WAAW,CAAC,CAAC;IACzD,CAAC;IAEO,KAAK,CAAC,WAAW,CAAI,QAAkB,EAAE,GAAS;QACzD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YAClB,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,8BAA8B,CAAC,CAAC;YACxF,MAAM,IAAI,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,aAAa,uBAAuB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,aAAa,EAAE,CAAC,CAAC;QACtJ,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAO,CAAC;IAC7B,CAAC;CACD,CAAA;AAzDY,wFAAsC;iDAAtC,sCAAsC;IADlD,IAAA,sBAAU,GAAE;;GACA,sCAAsC,CAyDlD"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { EntityConfigsGroup, FlatEntityConfig } from "../domain/types/geotarginator";
|
|
2
|
+
/**
|
|
3
|
+
* Converts a flat list of entity-product assignments into grouped form
|
|
4
|
+
* for use in SaveCampaignGeotargetingRequest.
|
|
5
|
+
*
|
|
6
|
+
* @param flatConfigs - Flat list of entity-product assignments
|
|
7
|
+
* @returns Grouped entity configs
|
|
8
|
+
*/
|
|
9
|
+
export declare function groupEntityConfigs(flatConfigs: FlatEntityConfig[]): EntityConfigsGroup[];
|
|
10
|
+
/**
|
|
11
|
+
* Converts EntityConfigsGroup[] back into a flat list of FlatEntityConfig.
|
|
12
|
+
* Useful for consumers that need to iterate over individual (entity, product) pairs.
|
|
13
|
+
*
|
|
14
|
+
* @param groups - Grouped entity configs
|
|
15
|
+
* @returns Flat list of entity-product assignments
|
|
16
|
+
*/
|
|
17
|
+
export declare function flattenEntityConfigs(groups: EntityConfigsGroup[]): FlatEntityConfig[];
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.groupEntityConfigs = groupEntityConfigs;
|
|
4
|
+
exports.flattenEntityConfigs = flattenEntityConfigs;
|
|
5
|
+
/**
|
|
6
|
+
* Converts a flat list of entity-product assignments into grouped form
|
|
7
|
+
* for use in SaveCampaignGeotargetingRequest.
|
|
8
|
+
*
|
|
9
|
+
* @param flatConfigs - Flat list of entity-product assignments
|
|
10
|
+
* @returns Grouped entity configs
|
|
11
|
+
*/
|
|
12
|
+
function groupEntityConfigs(flatConfigs) {
|
|
13
|
+
const map = new Map();
|
|
14
|
+
for (const config of flatConfigs) {
|
|
15
|
+
const key = `${config.entityType}-${config.entityID}`;
|
|
16
|
+
if (!map.has(key)) {
|
|
17
|
+
map.set(key, { entityID: config.entityID, entityType: config.entityType, productIDs: [] });
|
|
18
|
+
}
|
|
19
|
+
map.get(key).productIDs.push(config.productID);
|
|
20
|
+
}
|
|
21
|
+
return [...map.values()];
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Converts EntityConfigsGroup[] back into a flat list of FlatEntityConfig.
|
|
25
|
+
* Useful for consumers that need to iterate over individual (entity, product) pairs.
|
|
26
|
+
*
|
|
27
|
+
* @param groups - Grouped entity configs
|
|
28
|
+
* @returns Flat list of entity-product assignments
|
|
29
|
+
*/
|
|
30
|
+
function flattenEntityConfigs(groups) {
|
|
31
|
+
return groups.flatMap(group => group.productIDs.map(productID => ({
|
|
32
|
+
entityID: group.entityID,
|
|
33
|
+
productID,
|
|
34
|
+
entityType: group.entityType
|
|
35
|
+
})));
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=entity-configs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-configs.js","sourceRoot":"","sources":["../../../src/utils/entity-configs.ts"],"names":[],"mappings":";;AASA,gDAUC;AASD,oDAQC;AAlCD;;;;;;GAMG;AACH,SAAgB,kBAAkB,CAAC,WAA+B;IACjE,MAAM,GAAG,GAAG,IAAI,GAAG,EAA8B,CAAC;IAClD,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5F,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAAC,MAA4B;IAChE,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAC7B,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAClC,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,SAAS;QACT,UAAU,EAAE,KAAK,CAAC,UAAU;KAC5B,CAAC,CAAC,CACH,CAAC;AACH,CAAC"}
|