@forge/teamwork-graph 1.1.0 → 1.2.0-next.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/out/__test__/graph.test.js +0 -43
- package/out/__test__/group-operations.test.d.ts +2 -0
- package/out/__test__/group-operations.test.d.ts.map +1 -0
- package/out/__test__/group-operations.test.js +209 -0
- package/out/graph.d.ts +4 -3
- package/out/graph.d.ts.map +1 -1
- package/out/graph.js +49 -8
- package/out/types/common.d.ts +0 -12
- package/out/types/common.d.ts.map +1 -1
- package/out/types/graph.d.ts +4 -3
- package/out/types/graph.d.ts.map +1 -1
- package/out/types/groups.d.ts +24 -0
- package/out/types/groups.d.ts.map +1 -0
- package/out/types/groups.js +2 -0
- package/out/types/index.d.ts +1 -0
- package/out/types/index.d.ts.map +1 -1
- package/out/types/index.js +1 -0
- package/out/types/requests.d.ts +31 -1
- package/out/types/requests.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -21,20 +21,10 @@ describe('Teamwork Graph Client', () => {
|
|
|
21
21
|
jest.clearAllMocks();
|
|
22
22
|
});
|
|
23
23
|
describe('Context Validation', () => {
|
|
24
|
-
const groupPayload = {
|
|
25
|
-
id: 'group-123',
|
|
26
|
-
name: 'Test Group'
|
|
27
|
-
};
|
|
28
24
|
const errorMessage = 'Please pass the context object in your method. Refer this - https://developer.atlassian.com/platform/forge/function-reference/';
|
|
29
25
|
it('should throw error when context is missing for deleteEntity', async () => {
|
|
30
26
|
await expect(graphClient.deleteEntity(undefined, 'entity-123')).rejects.toThrow(errorMessage);
|
|
31
27
|
});
|
|
32
|
-
it('should throw error when context is missing for setGroup', async () => {
|
|
33
|
-
await expect(graphClient.setGroup(undefined, groupPayload)).rejects.toThrow(errorMessage);
|
|
34
|
-
});
|
|
35
|
-
it('should throw error when context is missing for deleteGroup', async () => {
|
|
36
|
-
await expect(graphClient.deleteGroup(undefined, 'group-123')).rejects.toThrow(errorMessage);
|
|
37
|
-
});
|
|
38
28
|
it('should throw error when context is missing for fetchData', async () => {
|
|
39
29
|
const config = {
|
|
40
30
|
url: '/test',
|
|
@@ -84,37 +74,4 @@ describe('Teamwork Graph Client', () => {
|
|
|
84
74
|
await expect(graphClient.deleteEntity(mockContext, entityId)).rejects.toThrow(errors_1.ForgeGraphAPIError);
|
|
85
75
|
});
|
|
86
76
|
});
|
|
87
|
-
describe('deleteGroup', () => {
|
|
88
|
-
const groupId = 'group-Folder/group-123';
|
|
89
|
-
it('should successfully delete a group', async () => {
|
|
90
|
-
const expectedResponse = { success: true };
|
|
91
|
-
mockFetch.mockResolvedValueOnce({
|
|
92
|
-
ok: true,
|
|
93
|
-
json: () => Promise.resolve(expectedResponse)
|
|
94
|
-
});
|
|
95
|
-
const result = await graphClient.deleteGroup(mockContext, groupId);
|
|
96
|
-
expect(mockFetch).toHaveBeenCalledWith('/graph/connector/api/v1/group/?resourceId=group-Folder/group-123', {
|
|
97
|
-
method: 'DELETE',
|
|
98
|
-
redirect: 'follow',
|
|
99
|
-
headers: { 'Content-Type': 'application/json' }
|
|
100
|
-
});
|
|
101
|
-
expect(result).toEqual(expectedResponse);
|
|
102
|
-
});
|
|
103
|
-
it('should throw ForgeGraphAPIError when delete request fails', async () => {
|
|
104
|
-
const errorResponse = {
|
|
105
|
-
ok: false,
|
|
106
|
-
status: 404,
|
|
107
|
-
statusText: 'Not Found',
|
|
108
|
-
headers: {
|
|
109
|
-
get: () => null
|
|
110
|
-
},
|
|
111
|
-
text: () => Promise.resolve(JSON.stringify({
|
|
112
|
-
code: 'GROUP_NOT_FOUND',
|
|
113
|
-
message: 'Group not found'
|
|
114
|
-
}))
|
|
115
|
-
};
|
|
116
|
-
mockFetch.mockResolvedValueOnce(errorResponse);
|
|
117
|
-
await expect(graphClient.deleteGroup(mockContext, groupId)).rejects.toThrow(errors_1.ForgeGraphAPIError);
|
|
118
|
-
});
|
|
119
|
-
});
|
|
120
77
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group-operations.test.d.ts","sourceRoot":"","sources":["../../src/__test__/group-operations.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const api_1 = require("@forge/api");
|
|
4
|
+
const graph_1 = require("../graph");
|
|
5
|
+
jest.mock('@forge/api');
|
|
6
|
+
describe('TeamWorkGraphClient - Group Operations', () => {
|
|
7
|
+
let graphClient;
|
|
8
|
+
let mockFetch;
|
|
9
|
+
beforeEach(() => {
|
|
10
|
+
graphClient = new graph_1.TeamWorkGraphClient();
|
|
11
|
+
mockFetch = jest.fn();
|
|
12
|
+
api_1.__fetchProduct.mockReturnValue(mockFetch);
|
|
13
|
+
jest.clearAllMocks();
|
|
14
|
+
});
|
|
15
|
+
describe('setGroups', () => {
|
|
16
|
+
const groupPayload = {
|
|
17
|
+
externalId: 'developers',
|
|
18
|
+
displayName: 'Development Team',
|
|
19
|
+
members: [
|
|
20
|
+
{
|
|
21
|
+
externalId: 'user-123',
|
|
22
|
+
type: 'USER'
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
externalId: 'user-456',
|
|
26
|
+
type: 'USER'
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
};
|
|
30
|
+
it('should successfully create groups in bulk', async () => {
|
|
31
|
+
const expectedResponse = {
|
|
32
|
+
success: true,
|
|
33
|
+
results: [
|
|
34
|
+
{
|
|
35
|
+
externalId: 'developers',
|
|
36
|
+
success: true
|
|
37
|
+
}
|
|
38
|
+
]
|
|
39
|
+
};
|
|
40
|
+
mockFetch.mockResolvedValueOnce({
|
|
41
|
+
ok: true,
|
|
42
|
+
json: () => Promise.resolve(expectedResponse)
|
|
43
|
+
});
|
|
44
|
+
const result = await graphClient.setGroups({
|
|
45
|
+
groups: [groupPayload]
|
|
46
|
+
});
|
|
47
|
+
expect(mockFetch).toHaveBeenCalledWith('/graph/connector/api/v1/groups/bulk', {
|
|
48
|
+
method: 'POST',
|
|
49
|
+
body: JSON.stringify({ groups: [groupPayload] }),
|
|
50
|
+
redirect: 'follow',
|
|
51
|
+
headers: { 'Content-Type': 'application/json' }
|
|
52
|
+
});
|
|
53
|
+
expect(result).toEqual(expectedResponse);
|
|
54
|
+
});
|
|
55
|
+
it('should successfully create groups without members', async () => {
|
|
56
|
+
const groupWithoutMembers = {
|
|
57
|
+
externalId: 'admins',
|
|
58
|
+
displayName: 'Administrators'
|
|
59
|
+
};
|
|
60
|
+
const expectedResponse = {
|
|
61
|
+
success: true,
|
|
62
|
+
results: [
|
|
63
|
+
{
|
|
64
|
+
externalId: 'admins',
|
|
65
|
+
success: true
|
|
66
|
+
}
|
|
67
|
+
]
|
|
68
|
+
};
|
|
69
|
+
mockFetch.mockResolvedValueOnce({
|
|
70
|
+
ok: true,
|
|
71
|
+
json: () => Promise.resolve(expectedResponse)
|
|
72
|
+
});
|
|
73
|
+
const result = await graphClient.setGroups({
|
|
74
|
+
groups: [groupWithoutMembers]
|
|
75
|
+
});
|
|
76
|
+
expect(mockFetch).toHaveBeenCalledWith('/graph/connector/api/v1/groups/bulk', {
|
|
77
|
+
method: 'POST',
|
|
78
|
+
body: JSON.stringify({ groups: [groupWithoutMembers] }),
|
|
79
|
+
redirect: 'follow',
|
|
80
|
+
headers: { 'Content-Type': 'application/json' }
|
|
81
|
+
});
|
|
82
|
+
expect(result).toEqual(expectedResponse);
|
|
83
|
+
});
|
|
84
|
+
it('should throw error when groups array is empty', async () => {
|
|
85
|
+
await expect(graphClient.setGroups({
|
|
86
|
+
groups: []
|
|
87
|
+
})).rejects.toThrow('groups array cannot be empty');
|
|
88
|
+
});
|
|
89
|
+
it('should throw error when groups array exceeds limit', async () => {
|
|
90
|
+
const manyGroups = Array(101).fill(groupPayload);
|
|
91
|
+
await expect(graphClient.setGroups({
|
|
92
|
+
groups: manyGroups
|
|
93
|
+
})).rejects.toThrow('Bulk group ingestion supports maximum 100 groups');
|
|
94
|
+
});
|
|
95
|
+
it('should throw error when groups is not an array', async () => {
|
|
96
|
+
await expect(graphClient.setGroups({
|
|
97
|
+
groups: null
|
|
98
|
+
})).rejects.toThrow('groups must be an array');
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
describe('deleteGroupsByExternalId', () => {
|
|
102
|
+
it('should successfully delete groups in bulk', async () => {
|
|
103
|
+
const expectedResponse = {
|
|
104
|
+
success: true,
|
|
105
|
+
results: [
|
|
106
|
+
{ externalId: 'developers', success: true },
|
|
107
|
+
{ externalId: 'admins', success: true }
|
|
108
|
+
]
|
|
109
|
+
};
|
|
110
|
+
mockFetch.mockResolvedValueOnce({
|
|
111
|
+
ok: true,
|
|
112
|
+
json: () => Promise.resolve(expectedResponse)
|
|
113
|
+
});
|
|
114
|
+
const result = await graphClient.deleteGroupsByExternalId({
|
|
115
|
+
externalIds: ['developers', 'admins']
|
|
116
|
+
});
|
|
117
|
+
expect(mockFetch).toHaveBeenCalledWith('/graph/connector/api/v1/groups/bulk/delete', {
|
|
118
|
+
method: 'POST',
|
|
119
|
+
body: JSON.stringify({ externalIds: ['developers', 'admins'] }),
|
|
120
|
+
redirect: 'follow',
|
|
121
|
+
headers: { 'Content-Type': 'application/json' }
|
|
122
|
+
});
|
|
123
|
+
expect(result).toEqual(expectedResponse);
|
|
124
|
+
});
|
|
125
|
+
it('should throw error when externalIds array is empty', async () => {
|
|
126
|
+
await expect(graphClient.deleteGroupsByExternalId({
|
|
127
|
+
externalIds: []
|
|
128
|
+
})).rejects.toThrow('externalIds array cannot be empty');
|
|
129
|
+
});
|
|
130
|
+
it('should throw error when externalIds is not an array', async () => {
|
|
131
|
+
await expect(graphClient.deleteGroupsByExternalId({
|
|
132
|
+
externalIds: null
|
|
133
|
+
})).rejects.toThrow('externalIds must be an array');
|
|
134
|
+
});
|
|
135
|
+
});
|
|
136
|
+
describe('getGroupByExternalId', () => {
|
|
137
|
+
const expectedGroup = {
|
|
138
|
+
id: 'ari:cloud:identity:group/123',
|
|
139
|
+
externalId: 'developers',
|
|
140
|
+
displayName: 'Development Team',
|
|
141
|
+
members: [
|
|
142
|
+
{
|
|
143
|
+
externalId: 'user-123',
|
|
144
|
+
type: 'USER'
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
externalId: 'user-456',
|
|
148
|
+
type: 'USER'
|
|
149
|
+
}
|
|
150
|
+
],
|
|
151
|
+
meta: {
|
|
152
|
+
resourceType: 'Group',
|
|
153
|
+
created: '2024-01-01T00:00:00Z',
|
|
154
|
+
lastModified: '2024-01-01T00:00:00Z',
|
|
155
|
+
location: 'https://example.com/v2/Groups/123'
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
it('should successfully get group by external ID', async () => {
|
|
159
|
+
mockFetch.mockResolvedValueOnce({
|
|
160
|
+
ok: true,
|
|
161
|
+
json: () => Promise.resolve(expectedGroup)
|
|
162
|
+
});
|
|
163
|
+
const result = await graphClient.getGroupByExternalId({
|
|
164
|
+
externalId: 'developers'
|
|
165
|
+
});
|
|
166
|
+
expect(mockFetch).toHaveBeenCalledWith('/graph/connector/api/v1/groups?externalId=developers', {
|
|
167
|
+
method: 'GET',
|
|
168
|
+
redirect: 'follow',
|
|
169
|
+
headers: { 'Content-Type': 'application/json' }
|
|
170
|
+
});
|
|
171
|
+
expect(result).toEqual({
|
|
172
|
+
success: true,
|
|
173
|
+
group: expectedGroup
|
|
174
|
+
});
|
|
175
|
+
});
|
|
176
|
+
it('should handle group not found', async () => {
|
|
177
|
+
const errorResponse = {
|
|
178
|
+
ok: false,
|
|
179
|
+
status: 404,
|
|
180
|
+
statusText: 'Not Found',
|
|
181
|
+
headers: {
|
|
182
|
+
get: () => null
|
|
183
|
+
},
|
|
184
|
+
text: () => Promise.resolve(JSON.stringify({
|
|
185
|
+
code: 'GROUP_NOT_FOUND',
|
|
186
|
+
message: 'Group not found'
|
|
187
|
+
}))
|
|
188
|
+
};
|
|
189
|
+
mockFetch.mockResolvedValueOnce(errorResponse);
|
|
190
|
+
const result = await graphClient.getGroupByExternalId({
|
|
191
|
+
externalId: 'nonexistent-group'
|
|
192
|
+
});
|
|
193
|
+
expect(result).toEqual({
|
|
194
|
+
success: false,
|
|
195
|
+
error: 'Group not found'
|
|
196
|
+
});
|
|
197
|
+
});
|
|
198
|
+
it('should throw error when externalId is missing', async () => {
|
|
199
|
+
await expect(graphClient.getGroupByExternalId({
|
|
200
|
+
externalId: ''
|
|
201
|
+
})).rejects.toThrow('externalId is required');
|
|
202
|
+
});
|
|
203
|
+
it('should throw error when externalId is null', async () => {
|
|
204
|
+
await expect(graphClient.getGroupByExternalId({
|
|
205
|
+
externalId: null
|
|
206
|
+
})).rejects.toThrow('externalId is required');
|
|
207
|
+
});
|
|
208
|
+
});
|
|
209
|
+
});
|
package/out/graph.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { Result } from '@forge/api';
|
|
2
|
-
import { TeamWorkGraph, ForgeExtendedContext,
|
|
2
|
+
import { TeamWorkGraph, ForgeExtendedContext, RequestConfig, BulkEntityRequest, BulkEntityResponse, BulkUsersRequest, BulkUsersResponse, DeleteUsersByExternalIdRequest, DeleteUsersByExternalIdResponse, GetUserByExternalIdRequest, GetUserByExternalIdResponse, MapUsersRequest, MapUsersResponse, BulkGroupsRequest, BulkGroupsResponse, DeleteGroupsByExternalIdRequest, DeleteGroupsByExternalIdResponse, GetGroupByExternalIdRequest, GetGroupByExternalIdResponse } from './types';
|
|
3
3
|
export declare class TeamWorkGraphClient implements TeamWorkGraph {
|
|
4
4
|
setEntities: (request: BulkEntityRequest) => Promise<BulkEntityResponse>;
|
|
5
5
|
deleteEntity: (context: ForgeExtendedContext, entityId: string) => Promise<Result>;
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
setGroups: (request: BulkGroupsRequest) => Promise<BulkGroupsResponse>;
|
|
7
|
+
deleteGroupsByExternalId: (request: DeleteGroupsByExternalIdRequest) => Promise<DeleteGroupsByExternalIdResponse>;
|
|
8
|
+
getGroupByExternalId: (request: GetGroupByExternalIdRequest) => Promise<GetGroupByExternalIdResponse>;
|
|
8
9
|
setUsers: (request: BulkUsersRequest) => Promise<BulkUsersResponse>;
|
|
9
10
|
deleteUsersByExternalId: (request: DeleteUsersByExternalIdRequest) => Promise<DeleteUsersByExternalIdResponse>;
|
|
10
11
|
getUserByExternalId: (request: GetUserByExternalIdRequest) => Promise<GetUserByExternalIdResponse>;
|
package/out/graph.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../src/graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,MAAM,EAAsB,MAAM,YAAY,CAAC;AAErF,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../src/graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,MAAM,EAAsB,MAAM,YAAY,CAAC;AAErF,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,8BAA8B,EAC9B,+BAA+B,EAC/B,0BAA0B,EAC1B,2BAA2B,EAC3B,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,+BAA+B,EAC/B,gCAAgC,EAChC,2BAA2B,EAC3B,4BAA4B,EAC7B,MAAM,SAAS,CAAC;AAQjB,qBAAa,mBAAoB,YAAW,aAAa;IACvD,WAAW,YAAmB,iBAAiB,KAAG,QAAQ,kBAAkB,CAAC,CAe3E;IAEF,YAAY,YAAmB,oBAAoB,YAAY,MAAM,KAAG,QAAQ,MAAM,CAAC,CAIrF;IAKF,SAAS,YAAmB,iBAAiB,KAAG,QAAQ,kBAAkB,CAAC,CAezE;IAKF,wBAAwB,YACb,+BAA+B,KACvC,QAAQ,gCAAgC,CAAC,CAc1C;IAKF,oBAAoB,YAAmB,2BAA2B,KAAG,QAAQ,4BAA4B,CAAC,CAsBxG;IAEF,QAAQ,YAAmB,gBAAgB,KAAG,QAAQ,iBAAiB,CAAC,CAetE;IAEF,uBAAuB,YACZ,8BAA8B,KACtC,QAAQ,+BAA+B,CAAC,CAczC;IAEF,mBAAmB,YAAmB,0BAA0B,KAAG,QAAQ,2BAA2B,CAAC,CAsBrG;IAEF,QAAQ,YAAmB,eAAe,KAAG,QAAQ,gBAAgB,CAAC,CA+BpE;IAEF,SAAS,YAAmB,oBAAoB,iBAAiB,aAAa,mBAAmB,GAAG,KAAK,GAAG,kBAuB1G;IAEF,aAAa,YAAmB,oBAAoB,QAAQ,GAAG,0BAA0B,GAAG,KAAK,GAAG,kBAIlG;YAEY,WAAW;YAIX,YAAY;IAI1B,OAAO,CAAC,eAAe;YAQT,eAAe;YAaf,iBAAiB;YAajB,cAAc;YAYd,WAAW;CAY1B;AAED,eAAO,MAAM,aAAa,qBAA4B,CAAC"}
|
package/out/graph.js
CHANGED
|
@@ -6,6 +6,7 @@ const error_handling_1 = require("./error-handling");
|
|
|
6
6
|
const STARGATE_BASE = '/graph/connector';
|
|
7
7
|
const MAX_BULK_ENTITIES = 100;
|
|
8
8
|
const MAX_BULK_USERS = 100;
|
|
9
|
+
const MAX_BULK_GROUPS = 100;
|
|
9
10
|
const MAX_USER_MAPPINGS = 100;
|
|
10
11
|
class TeamWorkGraphClient {
|
|
11
12
|
setEntities = async (request) => {
|
|
@@ -27,14 +28,54 @@ class TeamWorkGraphClient {
|
|
|
27
28
|
const path = '/api/v1/entity/?resourceId=' + entityId;
|
|
28
29
|
return this.sendDeleteRequest(path);
|
|
29
30
|
};
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
setGroups = async (request) => {
|
|
32
|
+
const { groups } = request;
|
|
33
|
+
if (!Array.isArray(groups)) {
|
|
34
|
+
throw new Error('groups must be an array');
|
|
35
|
+
}
|
|
36
|
+
if (groups.length === 0) {
|
|
37
|
+
throw new Error('groups array cannot be empty');
|
|
38
|
+
}
|
|
39
|
+
if (groups.length > MAX_BULK_GROUPS) {
|
|
40
|
+
throw new Error(`Bulk group ingestion supports maximum ${MAX_BULK_GROUPS} groups. Received ${groups.length}`);
|
|
41
|
+
}
|
|
42
|
+
const response = await this.sendPostRequest('/api/v1/groups/bulk', { groups });
|
|
43
|
+
return response;
|
|
33
44
|
};
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
45
|
+
deleteGroupsByExternalId = async (request) => {
|
|
46
|
+
const { externalIds } = request;
|
|
47
|
+
if (!Array.isArray(externalIds)) {
|
|
48
|
+
throw new Error('externalIds must be an array');
|
|
49
|
+
}
|
|
50
|
+
if (externalIds.length === 0) {
|
|
51
|
+
throw new Error('externalIds array cannot be empty');
|
|
52
|
+
}
|
|
53
|
+
const response = await this.sendPostRequest('/api/v1/groups/bulk/delete', {
|
|
54
|
+
externalIds
|
|
55
|
+
});
|
|
56
|
+
return response;
|
|
57
|
+
};
|
|
58
|
+
getGroupByExternalId = async (request) => {
|
|
59
|
+
const { externalId } = request;
|
|
60
|
+
if (!externalId || externalId.trim() === '') {
|
|
61
|
+
throw new Error('externalId is required');
|
|
62
|
+
}
|
|
63
|
+
try {
|
|
64
|
+
const url = new URL('/api/v1/groups', 'https://teamwork-graph.atlassian.net/api');
|
|
65
|
+
url.searchParams.set('externalId', externalId);
|
|
66
|
+
const path = url.pathname + url.search;
|
|
67
|
+
const response = await this.sendGetRequest(path);
|
|
68
|
+
return {
|
|
69
|
+
success: true,
|
|
70
|
+
group: response
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
return {
|
|
75
|
+
success: false,
|
|
76
|
+
error: error instanceof Error ? error.message : 'Unknown error'
|
|
77
|
+
};
|
|
78
|
+
}
|
|
38
79
|
};
|
|
39
80
|
setUsers = async (request) => {
|
|
40
81
|
const { users } = request;
|
|
@@ -69,7 +110,7 @@ class TeamWorkGraphClient {
|
|
|
69
110
|
throw new Error('externalId is required');
|
|
70
111
|
}
|
|
71
112
|
try {
|
|
72
|
-
const url = new URL('/api/v1/users', 'https://
|
|
113
|
+
const url = new URL('/api/v1/users', 'https://teamwork-graph.atlassian.net/api');
|
|
73
114
|
url.searchParams.set('externalId', externalId);
|
|
74
115
|
const path = url.pathname + url.search;
|
|
75
116
|
const response = await this.sendGetRequest(path);
|
package/out/types/common.d.ts
CHANGED
|
@@ -46,18 +46,6 @@ export declare type BaseEntityProperties = {
|
|
|
46
46
|
permissions?: Permissions;
|
|
47
47
|
associations?: Associations;
|
|
48
48
|
};
|
|
49
|
-
export declare type GroupObject = {
|
|
50
|
-
id?: string;
|
|
51
|
-
email?: string;
|
|
52
|
-
name?: string;
|
|
53
|
-
description?: string;
|
|
54
|
-
adminCreated?: boolean;
|
|
55
|
-
directMembersCount?: string;
|
|
56
|
-
kind?: string;
|
|
57
|
-
etag?: string;
|
|
58
|
-
aliases?: string[];
|
|
59
|
-
nonEditableAliases?: string[];
|
|
60
|
-
};
|
|
61
49
|
export declare type AssociationObject = {
|
|
62
50
|
associationType: string;
|
|
63
51
|
values: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/types/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAE1B,oBAAY,SAAS,GAAG;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,oBAAY,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,qBAAqB,GAAG,WAAW,CAAC;IAC1E,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB,CAAC;AAEF,oBAAY,aAAa,GAAG;IAC1B,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB,CAAC;AAEF,oBAAY,qBAAqB,GAAG;IAClC,aAAa,EAAE,SAAS,CAAC;CAC1B,CAAC;AAEF,oBAAY,WAAW,GAAG;IACxB,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,iBAAiB,CAAC,EAAE,qBAAqB,EAAE,CAAC;CAC7C,CAAC;AAGF,oBAAY,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF,oBAAY,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAGF,oBAAY,oBAAoB,GAAG;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC;IACrC,YAAY,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAAC;IAC3C,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CAAC;AAEF,oBAAY,
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/types/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAE1B,oBAAY,SAAS,GAAG;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,oBAAY,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,qBAAqB,GAAG,WAAW,CAAC;IAC1E,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB,CAAC;AAEF,oBAAY,aAAa,GAAG;IAC1B,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB,CAAC;AAEF,oBAAY,qBAAqB,GAAG;IAClC,aAAa,EAAE,SAAS,CAAC;CAC1B,CAAC;AAEF,oBAAY,WAAW,GAAG;IACxB,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,iBAAiB,CAAC,EAAE,qBAAqB,EAAE,CAAC;CAC7C,CAAC;AAGF,oBAAY,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF,oBAAY,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAGF,oBAAY,oBAAoB,GAAG;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC;IACrC,YAAY,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAAC;IAC3C,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CAAC;AAEF,oBAAY,iBAAiB,GAAG;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAEF,oBAAY,YAAY,GAAG;IACzB,GAAG,EAAE,iBAAiB,EAAE,CAAC;CAC1B,CAAC;AAEF,oBAAY,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB,CAAC;AAEF,oBAAY,oBAAoB,GAAG;IACjC,SAAS,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;IAC/B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,CAAC;AAEF,oBAAY,aAAa,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,GAAG,CAAC;CACf,CAAC"}
|
package/out/types/graph.d.ts
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { Result } from '@forge/api';
|
|
2
|
-
import { ForgeExtendedContext,
|
|
2
|
+
import { ForgeExtendedContext, RequestConfig, BulkEntityRequest, BulkEntityResponse, BulkUsersRequest, BulkUsersResponse, DeleteUsersByExternalIdRequest, DeleteUsersByExternalIdResponse, GetUserByExternalIdRequest, GetUserByExternalIdResponse, MapUsersRequest, MapUsersResponse, BulkGroupsRequest, BulkGroupsResponse, DeleteGroupsByExternalIdRequest, DeleteGroupsByExternalIdResponse, GetGroupByExternalIdRequest, GetGroupByExternalIdResponse } from './';
|
|
3
3
|
export interface TeamWorkGraph {
|
|
4
4
|
setEntities(request: BulkEntityRequest): Promise<BulkEntityResponse>;
|
|
5
5
|
deleteEntity(context: ForgeExtendedContext, entityId: string): Promise<Result>;
|
|
6
|
-
setGroup(context: ForgeExtendedContext, group: GroupObject): Promise<Result>;
|
|
7
|
-
deleteGroup(context: ForgeExtendedContext, groupId: string): Promise<Result>;
|
|
8
6
|
fetchData(context: ForgeExtendedContext, requestConfig: RequestConfig, onResult: Function): Promise<Result>;
|
|
9
7
|
transformData(context: ForgeExtendedContext, data: any, transformMethod: Function): Promise<any>;
|
|
10
8
|
setUsers(request: BulkUsersRequest): Promise<BulkUsersResponse>;
|
|
11
9
|
deleteUsersByExternalId(request: DeleteUsersByExternalIdRequest): Promise<DeleteUsersByExternalIdResponse>;
|
|
12
10
|
getUserByExternalId(request: GetUserByExternalIdRequest): Promise<GetUserByExternalIdResponse>;
|
|
13
11
|
mapUsers(request: MapUsersRequest): Promise<MapUsersResponse>;
|
|
12
|
+
setGroups(request: BulkGroupsRequest): Promise<BulkGroupsResponse>;
|
|
13
|
+
deleteGroupsByExternalId(request: DeleteGroupsByExternalIdRequest): Promise<DeleteGroupsByExternalIdResponse>;
|
|
14
|
+
getGroupByExternalId(request: GetGroupByExternalIdRequest): Promise<GetGroupByExternalIdResponse>;
|
|
14
15
|
}
|
|
15
16
|
//# sourceMappingURL=graph.d.ts.map
|
package/out/types/graph.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/types/graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EACL,oBAAoB,EACpB,
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/types/graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,8BAA8B,EAC9B,+BAA+B,EAC/B,0BAA0B,EAC1B,2BAA2B,EAC3B,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,+BAA+B,EAC/B,gCAAgC,EAChC,2BAA2B,EAC3B,4BAA4B,EAC7B,MAAM,IAAI,CAAC;AAEZ,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACrE,YAAY,CAAC,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/E,SAAS,CAAC,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5G,aAAa,CAAC,OAAO,EAAE,oBAAoB,EAAE,IAAI,EAAE,GAAG,EAAE,eAAe,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAGjG,QAAQ,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAChE,uBAAuB,CAAC,OAAO,EAAE,8BAA8B,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAC3G,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAC/F,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAG9D,SAAS,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACnE,wBAAwB,CAAC,OAAO,EAAE,+BAA+B,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAAC;IAC9G,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;CACnG"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export declare type GroupMember = {
|
|
2
|
+
externalId: string;
|
|
3
|
+
type: string;
|
|
4
|
+
updateSequenceNumber?: number;
|
|
5
|
+
displayName?: string;
|
|
6
|
+
};
|
|
7
|
+
export declare type GroupPayload = {
|
|
8
|
+
externalId: string;
|
|
9
|
+
displayName?: string;
|
|
10
|
+
members?: GroupMember[];
|
|
11
|
+
};
|
|
12
|
+
export declare type Group = {
|
|
13
|
+
id: string;
|
|
14
|
+
externalId: string;
|
|
15
|
+
displayName?: string;
|
|
16
|
+
members?: GroupMember[];
|
|
17
|
+
meta?: {
|
|
18
|
+
resourceType: string;
|
|
19
|
+
created: string;
|
|
20
|
+
lastModified: string;
|
|
21
|
+
location: string;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=groups.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../../src/types/groups.ts"],"names":[],"mappings":"AACA,oBAAY,WAAW,GAAG;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAGF,oBAAY,YAAY,GAAG;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;CACzB,CAAC;AAGF,oBAAY,KAAK,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,IAAI,CAAC,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC"}
|
package/out/types/index.d.ts
CHANGED
package/out/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AACA,cAAc,UAAU,CAAC;AAGzB,cAAc,YAAY,CAAC;AAG3B,cAAc,YAAY,CAAC;AAG3B,cAAc,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AACA,cAAc,UAAU,CAAC;AAGzB,cAAc,YAAY,CAAC;AAG3B,cAAc,YAAY,CAAC;AAG3B,cAAc,SAAS,CAAC;AAGxB,cAAc,UAAU,CAAC;AAEzB,cAAc,SAAS,CAAC"}
|
package/out/types/index.js
CHANGED
|
@@ -5,4 +5,5 @@ tslib_1.__exportStar(require("./common"), exports);
|
|
|
5
5
|
tslib_1.__exportStar(require("./entities"), exports);
|
|
6
6
|
tslib_1.__exportStar(require("./requests"), exports);
|
|
7
7
|
tslib_1.__exportStar(require("./users"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./groups"), exports);
|
|
8
9
|
tslib_1.__exportStar(require("./graph"), exports);
|
package/out/types/requests.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Entity, UserPayload, User } from './';
|
|
1
|
+
import { Entity, UserPayload, User, GroupPayload, Group } from './';
|
|
2
2
|
export declare type BulkEntityRequest = {
|
|
3
3
|
entities: Array<Entity>;
|
|
4
4
|
};
|
|
@@ -59,4 +59,34 @@ export declare type MapUsersResponse = {
|
|
|
59
59
|
error?: string;
|
|
60
60
|
}>;
|
|
61
61
|
};
|
|
62
|
+
export declare type BulkGroupsRequest = {
|
|
63
|
+
groups: GroupPayload[];
|
|
64
|
+
};
|
|
65
|
+
export declare type BulkGroupsResponse = {
|
|
66
|
+
success: boolean;
|
|
67
|
+
results: Array<{
|
|
68
|
+
externalId: string;
|
|
69
|
+
success: boolean;
|
|
70
|
+
error?: string;
|
|
71
|
+
}>;
|
|
72
|
+
};
|
|
73
|
+
export declare type DeleteGroupsByExternalIdRequest = {
|
|
74
|
+
externalIds: string[];
|
|
75
|
+
};
|
|
76
|
+
export declare type DeleteGroupsByExternalIdResponse = {
|
|
77
|
+
success: boolean;
|
|
78
|
+
results: Array<{
|
|
79
|
+
externalId: string;
|
|
80
|
+
success: boolean;
|
|
81
|
+
error?: string;
|
|
82
|
+
}>;
|
|
83
|
+
};
|
|
84
|
+
export declare type GetGroupByExternalIdRequest = {
|
|
85
|
+
externalId: string;
|
|
86
|
+
};
|
|
87
|
+
export declare type GetGroupByExternalIdResponse = {
|
|
88
|
+
success: boolean;
|
|
89
|
+
group?: Group;
|
|
90
|
+
error?: string;
|
|
91
|
+
};
|
|
62
92
|
//# sourceMappingURL=requests.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requests.d.ts","sourceRoot":"","sources":["../../src/types/requests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"requests.d.ts","sourceRoot":"","sources":["../../src/types/requests.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forge/teamwork-graph",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0-next.1",
|
|
4
4
|
"description": "Forge TeamworkGraph SDK",
|
|
5
5
|
"author": "Atlassian",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"jest-when": "^3.6.0"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@forge/api": "^6.0.
|
|
25
|
+
"@forge/api": "^6.0.2-next.0"
|
|
26
26
|
},
|
|
27
27
|
"publishConfig": {
|
|
28
28
|
"registry": "https://packages.atlassian.com/api/npm/npm-public/"
|