@studyportals/campaign-management-api-interface 16.0.0 → 16.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.d.ts CHANGED
@@ -19,6 +19,7 @@ import { SuperAgentResponseCover } from "./src/domain/types/super-agent-response
19
19
  import { ProductsCampaignManagementAPIClient } from "./src/products-campaign-management-api.client";
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
+ import { PrivateUserCampaignManagementAPIClient } from "./src/private-user-campaign-management-api.client";
22
23
  export * from "./src/domain/campaign";
23
24
  export * from "./src/domain/users";
24
25
  export * from "./src/validation";
@@ -26,4 +27,4 @@ export * from "./src/domain/organisations";
26
27
  export * from "./src/domain/products";
27
28
  export * from "./src/domain/degrees";
28
29
  export * from "./src/campaign-saving";
29
- export { AuditorCampaignManagementAPIClient, OrganisationsCampaignManagementAPIClient, CampaignManagementAPIClient, PrivateCampaignManagementAPIClient, UserCampaignManagementAPIClient, StudyCampaignManagementAPIClient, LinksCampaignManagementAPIClient, ProductsCampaignManagementAPIClient, PublicStatusClient, AuditorEntityType, AuditorOperation, LinkType, LinkEntityType, SwappingEnabledLinkTypes, GetAuditorDto, PersistGoogleLinkerResultDto, CampaignsEntitiesConfigDto, MinimalOrganisationDto, CampaignEditorFrontendStatusDto, StatusHealthy, StatusBlocked, NumberMap, Pricing, ICampaignAuditorData, SuperAgentResponseCover };
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 };
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.PrivateCampaignManagementAPIClient = exports.CampaignManagementAPIClient = exports.OrganisationsCampaignManagementAPIClient = exports.AuditorCampaignManagementAPIClient = void 0;
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;
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");
@@ -53,6 +53,8 @@ const products_campaign_management_api_client_1 = require("./src/products-campai
53
53
  Object.defineProperty(exports, "ProductsCampaignManagementAPIClient", { enumerable: true, get: function () { return products_campaign_management_api_client_1.ProductsCampaignManagementAPIClient; } });
54
54
  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
+ const private_user_campaign_management_api_client_1 = require("./src/private-user-campaign-management-api.client");
57
+ Object.defineProperty(exports, "PrivateUserCampaignManagementAPIClient", { enumerable: true, get: function () { return private_user_campaign_management_api_client_1.PrivateUserCampaignManagementAPIClient; } });
56
58
  __exportStar(require("./src/domain/campaign"), exports);
57
59
  __exportStar(require("./src/domain/users"), exports);
58
60
  __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;AAgCjG,mHAhCQ,2EAAkC,OAgCR;AA/BnC,qHAA8G;AAgC7G,yHAhCQ,uFAAwC,OAgCR;AA/BzC,yFAAmF;AAgClF,4GAhCQ,4DAA2B,OAgCR;AA/B5B,kGAAwF;AAwCvF,kGAxCQ,4CAAiB,OAwCR;AAvClB,8FAAqF;AAwCpF,iGAxCQ,yCAAgB,OAwCR;AAvCjB,0EAAqE;AA6CpE,8FA7CQ,+BAAa,OA6CR;AA5Cd,qGAAgG;AAgD/F,2GAhDQ,yDAA0B,OAgDR;AA/C3B,gGAAgH;AA0D/G,wFA1DmB,+BAAO,OA0DnB;AAzDR,yGAAkG;AA2BjG,mHA3BQ,2EAAkC,OA2BR;AA1BnC,mGAA4F;AA2B3F,gHA3BQ,qEAA+B,OA2BR;AA1BhC,qGAA8F;AA2B7F,iHA3BQ,uEAAgC,OA2BR;AA1BjC,oGAA8F;AA8C7F,uGA9CQ,kDAAsB,OA8CR;AA7CvB,8EAAqE;AAiCpE,yFAjCQ,yBAAQ,OAiCR;AAhCT,6GAAsG;AAsCrG,6GAtCQ,+DAA4B,OAsCR;AArC7B,oFAA0E;AAgCzE,+FAhCQ,sCAAc,OAgCR;AA/Bf,qGAA8F;AAuB7F,iHAvBQ,uEAAgC,OAuBR;AAtBjC,0GAA+F;AA+B9F,yGA/BQ,2DAAwB,OA+BR;AA7BzB,2GAAoG;AAqBnG,oHArBQ,6EAAmC,OAqBR;AApBpC,qEAAgE;AAqB/D,mGArBQ,yCAAkB,OAqBR;AAlBnB,wDAAsC;AACtC,qDAAmC;AACnC,mDAAiC;AACjC,6DAA2C;AAC3C,wDAAsC;AACtC,uDAAqC;AACrC,wDAAsC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yGAAkG;AAiCjG,mHAjCQ,2EAAkC,OAiCR;AAhCnC,qHAA8G;AAiC7G,yHAjCQ,uFAAwC,OAiCR;AAhCzC,yFAAmF;AAiClF,4GAjCQ,4DAA2B,OAiCR;AAhC5B,kGAAwF;AA0CvF,kGA1CQ,4CAAiB,OA0CR;AAzClB,8FAAqF;AA0CpF,iGA1CQ,yCAAgB,OA0CR;AAzCjB,0EAAqE;AA+CpE,8FA/CQ,+BAAa,OA+CR;AA9Cd,qGAAgG;AAkD/F,2GAlDQ,yDAA0B,OAkDR;AAjD3B,gGAAgH;AA4D/G,wFA5DmB,+BAAO,OA4DnB;AA3DR,yGAAkG;AA4BjG,mHA5BQ,2EAAkC,OA4BR;AA3BnC,mGAA4F;AA6B3F,gHA7BQ,qEAA+B,OA6BR;AA5BhC,qGAA8F;AA6B7F,iHA7BQ,uEAAgC,OA6BR;AA5BjC,oGAA8F;AAgD7F,uGAhDQ,kDAAsB,OAgDR;AA/CvB,8EAAqE;AAmCpE,yFAnCQ,yBAAQ,OAmCR;AAlCT,6GAAsG;AAwCrG,6GAxCQ,+DAA4B,OAwCR;AAvC7B,oFAA0E;AAkCzE,+FAlCQ,sCAAc,OAkCR;AAjCf,qGAA8F;AAyB7F,iHAzBQ,uEAAgC,OAyBR;AAxBjC,0GAA+F;AAiC9F,yGAjCQ,2DAAwB,OAiCR;AA/BzB,2GAAoG;AAuBnG,oHAvBQ,6EAAmC,OAuBR;AAtBpC,qEAAgE;AAuB/D,mGAvBQ,yCAAkB,OAuBR;AArBnB,mHAA2G;AAgB1G,uHAhBQ,oFAAsC,OAgBR;AAdvC,wDAAsC;AACtC,qDAAmC;AACnC,mDAAiC;AACjC,6DAA2C;AAC3C,wDAAsC;AACtC,uDAAqC;AACrC,wDAAsC"}
package/package.json CHANGED
@@ -1,49 +1,52 @@
1
- {
2
- "name": "@studyportals/campaign-management-api-interface",
3
- "version": "16.0.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.4",
23
- "@types/jest": "^29.4.0",
24
- "@types/node": "^22.18.0",
25
- "@types/superagent": "^8.1.9",
26
- "chai": "^4.3.4",
27
- "eslint": "^8.33.0",
28
- "jest": "^29.4.2",
29
- "jest-mock-extended": "^3.0.1",
30
- "superagent": "^8.1.2",
31
- "superagent-mocker": "^0.5.2",
32
- "ts-jest": "^29.0.5",
33
- "ts-node": "^10.9.2",
34
- "typescript": "^5.5.4"
35
- },
36
- "dependencies": {
37
- "@studyportals/mb-platform-date-time": "^1.3.1",
38
- "@studyportals/mb-platform-http-requests": "^2.8.0",
39
- "@studyportals/university-scheduler-interface": "^0.7.0",
40
- "class-transformer": "^0.5.1",
41
- "class-validator": "^0.14.1",
42
- "inversify": "^6.0.1",
43
- "reflect-metadata": "^0.1.13"
44
- },
45
- "engines": {
46
- "node": ">=18 <=22",
47
- "npm ": "10.x"
48
- }
49
- }
1
+ {
2
+ "name": "@studyportals/campaign-management-api-interface",
3
+ "version": "16.1.1",
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.4",
23
+ "@types/jest": "^29.4.0",
24
+ "@types/node": "^22.18.0",
25
+ "@types/superagent": "^8.1.9",
26
+ "chai": "^4.3.4",
27
+ "eslint": "^8.33.0",
28
+ "jest": "^29.4.2",
29
+ "jest-mock-extended": "^3.0.1",
30
+ "superagent": "^8.1.2",
31
+ "superagent-mocker": "^0.5.2",
32
+ "ts-jest": "^29.0.5",
33
+ "ts-node": "^10.9.2",
34
+ "typescript": "^5.5.4"
35
+ },
36
+ "dependencies": {
37
+ "@aws-crypto/sha256-js": "^5.2.0",
38
+ "@aws-sdk/credential-provider-node": "^3.972.1",
39
+ "@smithy/signature-v4": "^5.3.8",
40
+ "@studyportals/mb-platform-date-time": "^1.3.1",
41
+ "@studyportals/mb-platform-http-requests": "^2.8.0",
42
+ "@studyportals/university-scheduler-interface": "^0.7.0",
43
+ "class-transformer": "^0.5.1",
44
+ "class-validator": "^0.14.1",
45
+ "inversify": "^6.0.1",
46
+ "reflect-metadata": "^0.1.13"
47
+ },
48
+ "engines": {
49
+ "node": ">=18 <=22",
50
+ "npm ": "10.x"
51
+ }
52
+ }
@@ -0,0 +1,4 @@
1
+ export declare class IdDto {
2
+ readonly id: number;
3
+ constructor(id: number);
4
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IdDto = void 0;
4
+ class IdDto {
5
+ constructor(id) {
6
+ this.id = id;
7
+ }
8
+ }
9
+ exports.IdDto = IdDto;
10
+ //# sourceMappingURL=id.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id.dto.js","sourceRoot":"","sources":["../../../src/domain/id.dto.ts"],"names":[],"mappings":";;;AAAA,MAAa,KAAK;IACjB,YACiB,EAAU;QAAV,OAAE,GAAF,EAAE,CAAQ;IACvB,CAAC;CACL;AAJD,sBAIC"}
@@ -0,0 +1,13 @@
1
+ import "reflect-metadata";
2
+ import { CreateClientDto, UserDto } from "./domain/users";
3
+ import { IdDto } from "./domain/id.dto";
4
+ export declare class PrivateUserCampaignManagementAPIClient {
5
+ private readonly baseUrl;
6
+ constructor(baseUrl: string);
7
+ getUserById(id: number): Promise<UserDto>;
8
+ getUserByEmail(email: string): Promise<UserDto>;
9
+ createClient(user: CreateClientDto): Promise<IdDto>;
10
+ private buildBaseUrl;
11
+ private signedGetRequest;
12
+ private signedPostRequest;
13
+ }
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.PrivateUserCampaignManagementAPIClient = void 0;
13
+ require("reflect-metadata");
14
+ const inversify_1 = require("inversify");
15
+ const signature_v4_1 = require("@smithy/signature-v4");
16
+ const credential_provider_node_1 = require("@aws-sdk/credential-provider-node");
17
+ const sha256_js_1 = require("@aws-crypto/sha256-js");
18
+ let PrivateUserCampaignManagementAPIClient = class PrivateUserCampaignManagementAPIClient {
19
+ constructor(baseUrl) {
20
+ this.baseUrl = baseUrl;
21
+ }
22
+ async getUserById(id) {
23
+ const url = this.buildBaseUrl(`private/users/get-user-by-id?id=${id}`);
24
+ return await this.signedGetRequest(url);
25
+ }
26
+ async getUserByEmail(email) {
27
+ const url = this.buildBaseUrl(`private/users/get-user-by-email?email=${encodeURIComponent(email)}`);
28
+ return await this.signedGetRequest(url);
29
+ }
30
+ async createClient(user) {
31
+ const url = this.buildBaseUrl('private/users/create-client');
32
+ return await this.signedPostRequest(url, user);
33
+ }
34
+ buildBaseUrl(relative) {
35
+ return new URL(`${this.baseUrl}/${relative}`);
36
+ }
37
+ async signedGetRequest(endpointUrl, headers = {}) {
38
+ const requestMethod = 'GET';
39
+ const requestHeaders = Object.assign({ 'Content-Type': 'application/json', 'Host': endpointUrl.hostname }, headers);
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",
50
+ region: process.env.region || process.env.REGION || "eu-central-1",
51
+ credentials: (0, credential_provider_node_1.defaultProvider)(),
52
+ sha256: sha256_js_1.Sha256
53
+ });
54
+ const signedRequest = await signer.sign(request);
55
+ const response = await fetch(endpointUrl, {
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();
64
+ }
65
+ async signedPostRequest(endpointUrl, payload, headers = {}) {
66
+ const requestMethod = 'POST';
67
+ const requestHeaders = Object.assign({ 'Content-Type': 'application/json', 'Host': endpointUrl.hostname }, headers);
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",
80
+ region: process.env.region || process.env.REGION || "eu-central-1",
81
+ credentials: (0, credential_provider_node_1.defaultProvider)(),
82
+ sha256: sha256_js_1.Sha256
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
89
+ });
90
+ if (!response.ok) {
91
+ const errorResponse = await response.text().catch(() => 'Unable to read response body');
92
+ throw new Error(`Request to ${endpointUrl.toString()} failed with status ${response.status} ${response.statusText}: ${errorResponse}`);
93
+ }
94
+ return await response.json();
95
+ }
96
+ };
97
+ exports.PrivateUserCampaignManagementAPIClient = PrivateUserCampaignManagementAPIClient;
98
+ exports.PrivateUserCampaignManagementAPIClient = PrivateUserCampaignManagementAPIClient = __decorate([
99
+ (0, inversify_1.injectable)(),
100
+ __metadata("design:paramtypes", [String])
101
+ ], PrivateUserCampaignManagementAPIClient);
102
+ //# sourceMappingURL=private-user-campaign-management-api.client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"private-user-campaign-management-api.client.js","sourceRoot":"","sources":["../../src/private-user-campaign-management-api.client.ts"],"names":[],"mappings":"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"}