/// import { ApiPayload, CompassSynchronizeLinkAssociationsInput, ComponentPayload, GqlError, MutationError, SdkError, SynchronizeLinkAssociations, } from '@atlassian/forge-graphql-types'; import { CompassRequests } from '../../compass-requests'; import { mapGqlErrors, mapMutationErrors, parsingResponseError, } from '../../helpers'; declare module '../../compass-requests' { interface CompassRequests { /** * Synchronizes event and metric information for the current set of component links on a Compass site using the provided Forge app. * **Required Oauth Scopes:** `write:component:compass`, `write:event:compass`, `write:metric:compass` */ synchronizeLinkAssociations( input: CompassSynchronizeLinkAssociationsInput, ): Promise>; } } CompassRequests.prototype.synchronizeLinkAssociations = async function ( this: CompassRequests, input, ) { let errors: Array = []; let gqlErrors: Array; let mutationErrors: Array; let data; try { const resp = await this.api.requestGraph( SynchronizeLinkAssociations, { input }, 'synchronizeLinkAssociations', ); ({ errors: gqlErrors, data } = await resp.json()); errors = mapGqlErrors(gqlErrors); ({ synchronizeLinkAssociations: { errors: mutationErrors }, } = data.compass); errors = errors.concat(mapMutationErrors(mutationErrors)); } catch (e) { if (errors.length === 0) { errors.push(parsingResponseError(e)); } } return { success: errors.length === 0, errors, }; };