@studyportals/crm-data-processor-interface 0.2.7 → 0.2.11

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
@@ -7,4 +7,5 @@ import { ProjectDetailsResponseBody } from "./src/data/project-details-response-
7
7
  import { ProjectProduct } from "./src/data/project-product";
8
8
  import { ProjectProductState } from "./src/data/project-product-state";
9
9
  import { ProjectProductStateType } from "./src/data/project-product-state-type";
10
- export { CrmDataProcessorClient, ProductsResponseBody, ActProduct, ActClientProduct, ActClientFreeProduct, ActClientPaidProduct, ActClientProductType, ProjectDetailsResponseBody, ProjectDetails, ProjectProduct, ProjectProductState, ProjectProductStateType };
10
+ import { GrantAccessPayload } from "./src/data/grant-access-payload";
11
+ export { CrmDataProcessorClient, ProductsResponseBody, ActProduct, ActClientProduct, ActClientFreeProduct, ActClientPaidProduct, ActClientProductType, ProjectDetailsResponseBody, ProjectDetails, ProjectProduct, ProjectProductState, ProjectProductStateType, GrantAccessPayload };
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,uFAAiF;AAWhF,uGAXQ,kDAAsB,OAWR;AATvB,sEAAmI;AAgBlI,qGAhBsE,yCAAoB,OAgBtE;AAXrB,4EAAuE;AAiBtE,oGAjBQ,2CAAmB,OAiBR"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,uFAAiF;AAYhF,uGAZQ,kDAAsB,OAYR;AAVvB,sEAAmI;AAiBlI,qGAjBsE,yCAAoB,OAiBtE;AAZrB,4EAAuE;AAkBtE,oGAlBQ,2CAAmB,OAkBR"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@studyportals/crm-data-processor-interface",
3
- "version": "0.2.7",
3
+ "version": "0.2.11",
4
4
  "scripts": {
5
5
  "compile": "rm -fR dist && npx tsc",
6
6
  "prepare-deployment": "npm run compile && cp package.json dist/package.json && rm -fR dist/tests",
@@ -1,5 +1,6 @@
1
1
  import { ProjectDetailsResponseBody } from "../data/project-details-response-body";
2
2
  import { ProductsResponseBody } from "../data/products-response-body";
3
+ import { GrantAccessPayload } from "../data/grant-access-payload";
3
4
  export declare class CrmDataProcessorClient {
4
5
  private readonly baseUrl;
5
6
  private readonly jwtTokenProvider;
@@ -16,5 +17,12 @@ export declare class CrmDataProcessorClient {
16
17
  * @returns Array of Project Details objects
17
18
  */
18
19
  retrieveProjectDetails(): Promise<ProjectDetailsResponseBody>;
20
+ /**
21
+ * Grants product access to users based on the provided payload.
22
+ *
23
+ * @param payload Data object containing User EmailAddresses and assigned Products
24
+ */
25
+ grantProductAccess(payload: GrantAccessPayload): Promise<void>;
19
26
  private sendGetRequest;
27
+ private sendPostRequest;
20
28
  }
@@ -39,6 +39,17 @@ class CrmDataProcessorClient {
39
39
  }
40
40
  return response;
41
41
  }
42
+ /**
43
+ * Grants product access to users based on the provided payload.
44
+ *
45
+ * @param payload Data object containing User EmailAddresses and assigned Products
46
+ */
47
+ async grantProductAccess(payload) {
48
+ const jwt = await this.jwtTokenProvider();
49
+ const url = new URL(this.baseUrl + `/grant-access`);
50
+ const response = await this.sendPostRequest(url, jwt, payload);
51
+ // TODO: Check response.
52
+ }
42
53
  async sendGetRequest(url, jwt, headers) {
43
54
  const response = await fetch(url, {
44
55
  method: "GET",
@@ -53,6 +64,22 @@ class CrmDataProcessorClient {
53
64
  }
54
65
  return await response.json();
55
66
  }
67
+ async sendPostRequest(url, jwt, payload, headers) {
68
+ const response = await fetch(url, {
69
+ method: "POST",
70
+ headers: {
71
+ "Authorization": jwt,
72
+ "Content-Type": "application/json",
73
+ ...headers
74
+ },
75
+ body: JSON.stringify(payload)
76
+ });
77
+ if (!response.ok) {
78
+ const errorBody = await response.text().catch(() => "");
79
+ throw new Error(`Request failed with status ${response.status}: ${response.statusText}, with body: ${errorBody ? ` - ${errorBody}` : ""}`);
80
+ }
81
+ return await response.json();
82
+ }
56
83
  }
57
84
  exports.CrmDataProcessorClient = CrmDataProcessorClient;
58
85
  //# sourceMappingURL=crm-data-processor-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"crm-data-processor-client.js","sourceRoot":"","sources":["../../../src/clients/crm-data-processor-client.ts"],"names":[],"mappings":";;;AAGA,MAAa,sBAAsB;IAGhB;IACA;IAFlB,YACkB,OAAe,EACf,gBAAuC;QADvC,YAAO,GAAP,OAAO,CAAQ;QACf,qBAAgB,GAAhB,gBAAgB,CAAuB;IACrD,CAAC;IAEL;;;;OAIG;IACI,KAAK,CAAC,sBAAsB;QAClC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,kBAAkB,CAAC,CAAC;QACvD,OAAO,MAAM,IAAI,CAAC,cAAc,CAAuB,GAAG,EAAE,GAAG,CAAC,CAAC;IAClE,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,sBAAsB;QAClC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAA6B,GAAG,EAAE,GAAG,CAAC,CAAC;QAEjF,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC9B,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACtC,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;oBAC9B,OAAO,CAAC,gBAAgB,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;gBAC/D,CAAC;gBACD,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;oBAC5B,OAAO,CAAC,cAAc,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBAC3D,CAAC;YACF,CAAC;QACF,CAAC;QAED,OAAO,QAAQ,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,cAAc,CAAI,GAAQ,EAAE,GAAW,EAAE,OAAgC;QACtF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YACjC,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACR,eAAe,EAAE,GAAG;gBACpB,GAAG,OAAO;aACV;SACD,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YAClB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,gBAAgB,SAAS,CAAC,CAAC,CAAC,MAAM,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5I,CAAC;QAED,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAO,CAAC;IACnC,CAAC;CACD;AA1DD,wDA0DC"}
1
+ {"version":3,"file":"crm-data-processor-client.js","sourceRoot":"","sources":["../../../src/clients/crm-data-processor-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { ProjectProduct } from "./project-product";
2
+ export type GrantAccessPayload = {
3
+ emailAddresses: string[];
4
+ products: ProjectProduct[];
5
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=grant-access-payload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grant-access-payload.js","sourceRoot":"","sources":["../../../src/data/grant-access-payload.ts"],"names":[],"mappings":""}