@mondaydotcomorg/monday-authorization 3.3.1-feature-bashanye-add-membership-create-delete-api-d00c165 → 3.3.1-fix-use-standard-env-var-for-metric-server-host-bd2a88a

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.
Files changed (40) hide show
  1. package/README.md +4 -125
  2. package/dist/authorization-service.js +1 -1
  3. package/dist/esm/authorization-service.mjs +1 -1
  4. package/dist/esm/index.d.ts +9 -7
  5. package/dist/esm/index.d.ts.map +1 -1
  6. package/dist/esm/index.mjs +14 -8
  7. package/dist/esm/metrics-service.d.ts +7 -4
  8. package/dist/esm/metrics-service.d.ts.map +1 -1
  9. package/dist/esm/metrics-service.mjs +32 -16
  10. package/dist/esm/utils/api-error-handler.d.ts +1 -1
  11. package/dist/esm/utils/api-error-handler.d.ts.map +1 -1
  12. package/dist/esm/utils/api-error-handler.mjs +4 -4
  13. package/dist/index.d.ts +9 -7
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +14 -9
  16. package/dist/metrics-service.d.ts +7 -4
  17. package/dist/metrics-service.d.ts.map +1 -1
  18. package/dist/metrics-service.js +32 -16
  19. package/dist/utils/api-error-handler.d.ts +1 -1
  20. package/dist/utils/api-error-handler.d.ts.map +1 -1
  21. package/dist/utils/api-error-handler.js +4 -4
  22. package/package.json +1 -1
  23. package/src/authorization-service.ts +1 -1
  24. package/src/index.ts +24 -16
  25. package/src/metrics-service.ts +43 -21
  26. package/src/utils/api-error-handler.ts +5 -9
  27. package/dist/esm/memberships.d.ts +0 -30
  28. package/dist/esm/memberships.d.ts.map +0 -1
  29. package/dist/esm/memberships.mjs +0 -98
  30. package/dist/esm/types/memberships.d.ts +0 -42
  31. package/dist/esm/types/memberships.d.ts.map +0 -1
  32. package/dist/esm/types/memberships.mjs +0 -1
  33. package/dist/memberships.d.ts +0 -30
  34. package/dist/memberships.d.ts.map +0 -1
  35. package/dist/memberships.js +0 -100
  36. package/dist/types/memberships.d.ts +0 -42
  37. package/dist/types/memberships.d.ts.map +0 -1
  38. package/dist/types/memberships.js +0 -1
  39. package/src/memberships.ts +0 -111
  40. package/src/types/memberships.ts +0 -47
@@ -1,111 +0,0 @@
1
- import { Api, FetcherConfig, HttpClient } from '@mondaydotcomorg/trident-backend-api';
2
- import { RecursivePartial } from '@mondaydotcomorg/monday-fetch-api';
3
- import { getAttributionsFromApi } from './attributions-service';
4
-
5
- import { APP_NAME, DEFAULT_FETCH_OPTIONS, ERROR_MESSAGES } from './constants';
6
- import {
7
- MembershipCreateResponse,
8
- MembershipDeleteResponse,
9
- MembershipForCreate,
10
- MembershipForDelete,
11
- } from 'types/memberships';
12
- import { handleApiError } from 'utils/api-error-handler';
13
-
14
- export class MembershipsService {
15
- private static API_PATHS = {
16
- UPSERT_RESOURCE_ATTRIBUTES: '/memberships/{accountId}',
17
- DELETE_RESOURCE_ATTRIBUTES: '/memberships/{accountId}',
18
- } as const;
19
- private httpClient: HttpClient;
20
- private fetchOptions: RecursivePartial<FetcherConfig>;
21
-
22
- /**
23
- * Public constructor to create the AuthorizationAttributesService instance.
24
- * @param httpClient The HTTP client to use for API requests, if not provided, the default HTTP client from Api will be used.
25
- * @param fetchOptions The fetch options to use for API requests, if not provided, the default fetch options will be used.
26
- */
27
- constructor(httpClient?: HttpClient, fetchOptions?: RecursivePartial<FetcherConfig>) {
28
- if (!httpClient) {
29
- httpClient = Api.getPart('httpClient');
30
- if (!httpClient) {
31
- throw new Error(ERROR_MESSAGES.HTTP_CLIENT_NOT_INITIALIZED);
32
- }
33
- }
34
-
35
- if (!fetchOptions) {
36
- fetchOptions = DEFAULT_FETCH_OPTIONS;
37
- } else {
38
- fetchOptions = {
39
- ...DEFAULT_FETCH_OPTIONS,
40
- ...fetchOptions,
41
- };
42
- }
43
- this.httpClient = httpClient;
44
- this.fetchOptions = fetchOptions;
45
- }
46
-
47
- /**
48
- * Upsert memberships synchronously, performing http call to the authorization MS to assign the given memberships.
49
- * @param accountId
50
- * @param memberships - Array of memberships to upsert
51
- * @returns MembershipCreateResponse - The affected (created and updated) memberships.
52
- */
53
- async upsertMemberships(accountId: number, memberships: MembershipForCreate[]): Promise<MembershipCreateResponse> {
54
- const attributionHeaders = getAttributionsFromApi();
55
- try {
56
- return await this.httpClient.fetch<MembershipCreateResponse>(
57
- {
58
- url: {
59
- appName: APP_NAME,
60
- path: MembershipsService.API_PATHS.UPSERT_RESOURCE_ATTRIBUTES.replace('{accountId}', accountId.toString()),
61
- },
62
- method: 'PUT',
63
- query: {
64
- useAStyleRoleId: 'true',
65
- },
66
- headers: {
67
- 'Content-Type': 'application/json',
68
- ...attributionHeaders,
69
- },
70
- body: JSON.stringify({ memberships }),
71
- },
72
- this.fetchOptions
73
- );
74
- } catch (err) {
75
- return handleApiError(err, 'authorization', 'upsertMemberships');
76
- }
77
- }
78
-
79
- /**
80
- * Delete memberships synchronously, performing http call to the authorization MS to delete the given memberships.
81
- * @param accountId
82
- * @param resource - The resource (resourceType, resourceId) to delete the attributes for.
83
- * @param attributeKeys - Array of attribute keys to delete for the resource.
84
- * @returns ResourceAttributeResponse - The affected (deleted) resource attributes assignments in the `attributes` field.
85
- */
86
- async deleteMemberships(accountId: number, memberships: MembershipForDelete[]): Promise<MembershipDeleteResponse> {
87
- const attributionHeaders = getAttributionsFromApi();
88
- try {
89
- return await this.httpClient.fetch<MembershipDeleteResponse>(
90
- {
91
- url: {
92
- appName: APP_NAME,
93
- path: MembershipsService.API_PATHS.DELETE_RESOURCE_ATTRIBUTES.replace('{accountId}', accountId.toString()),
94
- },
95
- method: 'DELETE',
96
- query: {
97
- useAStyleRoleId: 'true',
98
- },
99
- headers: {
100
- 'Content-Type': 'application/json',
101
- ...attributionHeaders,
102
- },
103
- body: JSON.stringify({ memberships }),
104
- },
105
- this.fetchOptions
106
- );
107
- } catch (err) {
108
- return handleApiError(err, 'authorization', 'deleteMemberships');
109
- }
110
- }
111
- }
@@ -1,47 +0,0 @@
1
- export interface MembershipCreateRequest {
2
- memberships: MembershipForCreate[];
3
- }
4
-
5
- export interface MembershipDeleteRequest {
6
- memberships: MembershipForDelete[];
7
- }
8
-
9
- export interface MembershipForCreate {
10
- entityId: number; // Which entity has the role?
11
- entityType: string; // What type of entity is this?
12
- resourceId: number; // What resource is this membership for?
13
- resourceType: string; // What type of resource is this membership for?
14
- roleId: number; // What role is this membership for?
15
- roleType?: string; // What type of role is this membership for? (basic/custom)
16
- addedById: number; // Who added this membership? for logging purposes
17
- }
18
-
19
- export interface MembershipForDelete {
20
- entityId?: number; // Which entity has the role?
21
- entityType: string; // What type of entity is this?
22
- resourceId?: number; // What resource is this membership for?
23
- resourceType: string; // What type of resource is this membership for?
24
- }
25
-
26
- export interface MembershipCreateResponse {
27
- memberships: Membership[];
28
- }
29
-
30
- export interface MembershipDeleteResponse {
31
- memberships: Membership[];
32
- }
33
-
34
- export interface Membership {
35
- id: number;
36
- entityId: number;
37
- entityType: string;
38
- resourceId: number;
39
- resourceType: string;
40
- roleId: number;
41
- roleType: string;
42
- addedById: null | number | undefined;
43
- hops: number;
44
- isNewRecord: boolean;
45
- previousValues: Partial<Membership>;
46
- walVersion: number | null | undefined;
47
- }