The Connector SDK APIs are available through Forge's Early Access Program (EAP).
EAPs are offered to selected users for testing and feedback purposes. APIs and features under EAP are unsupported and subject to change without notice. APIs and features under EAP are not recommended for use in production environments.
To use the Connector SDK, you must be part of the Forge connector EAP. You can express interest in joining this EAP through this form.
The deleteGroupsByExternalId
method allows you to bulk delete multiple groups from the Teamwork
Graph using their external IDs. This is useful for removing groups in batches when you know their
external identifiers.
1 2deleteGroupsByExternalId(request: DeleteGroupsByExternalIdRequest): Promise<DeleteGroupsByExternalIdResponse>
DeleteGroupsByExternalIdRequest
1 2// DeleteGroupsByExternalIdRequest object: { externalIds: string[]; // externalIds: Array of external identifiers of groups to delete }
1 2import { graph } from '@forge/teamwork-graph'; const request = { externalIds: ['developers', 'admins'] }; const response = await graph.deleteGroupsByExternalId(request); if (response.success) { console.log('Deletion results:', response.results); } else { console.error('Error deleting groups:', response.error); }
1 2const request = { externalIds: ['developers', 'designers', 'managers', 'qa-team'] }; const response = await graph.deleteGroupsByExternalId(request); if (response.success && response.results) { response.results.forEach(result => { // Check status code to determine success (200-299 indicates success) if (result.statusCode && result.statusCode >= 200 && result.statusCode < 300) { console.log(`Successfully deleted group: ${result.externalId}`); } else { console.error(`Failed to delete group ${result.externalId}. Status: ${result.statusCode}, Message: ${result.message}`); } }); }
The method validates the following:
externalIds
field must be a valid array.externalIds
array cannot be empty.externalIds
per request.Error message | Description |
---|---|
externalIds must be an array | The externalIds field is not an array. |
externalIds array cannot be empty | The externalIds array is empty. |
Failed to delete groups by external ID | The API request failed. |
The method returns a promise that resolves to a DeleteGroupsByExternalIdResponse
object.
1 2// GroupDeleteResult type GroupDeleteResult = { externalId: string; // The external ID that was processed statusCode?: number; // HTTP status code for this specific deletion message?: string; // Message for this specific deletion }; // DeleteGroupsByExternalIdResponse { success: boolean; // Indicates if the overall operation was successful results?: GroupDeleteResult[]; // Array of results for each requested group error?: string; // Overall error message (if operation failed) originalError?: unknown; // Original error object (if available) }
The SDK provides type-safe request and response objects that ensure compile-time validation:
1 2import { types } from '@forge/teamwork-graph'; // Type-safe request creation const request: types.DeleteGroupsByExternalIdRequest = { externalIds: ['developers', 'designers'] }; // Type-safe response handling const response = await graph.deleteGroupsByExternalId(request); if (response.success && response.results) { // TypeScript knows results exists here and provides proper typing response.results.forEach(result => { // result is properly typed as GroupDeleteResult // Note: GroupDeleteResult uses statusCode to indicate success, not a success property if (result.statusCode && result.statusCode >= 200 && result.statusCode < 300) { console.log(`Successfully deleted group: ${result.externalId}`); } else { console.error(`Failed to delete group: ${result.externalId}. Status: ${result.statusCode}, Message: ${result.message}`); } }); } else { // TypeScript knows error exists here console.error('Deletion failed:', response.error); // Safely access originalError if available if (response.originalError) { console.error('Original error details:', response.originalError); } }
The type system ensures:
request.externalIds
must be a string arrayresponse.results
is properly typed as GroupDeleteResult[]
when success
is trueexternalId
, statusCode
, and message
properties (no success
property)Rate this page: