@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 +2 -1
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/src/clients/crm-data-processor-client.d.ts +8 -0
- package/src/clients/crm-data-processor-client.js +27 -0
- package/src/clients/crm-data-processor-client.js.map +1 -1
- package/src/data/grant-access-payload.d.ts +5 -0
- package/src/data/grant-access-payload.js +3 -0
- package/src/data/grant-access-payload.js.map +1 -0
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
|
-
|
|
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;
|
|
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,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":";;;
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"grant-access-payload.js","sourceRoot":"","sources":["../../../src/data/grant-access-payload.ts"],"names":[],"mappings":""}
|