{"version":3,"file":"index.mjs","sources":["../../../../src/clients/slack/index.ts"],"sourcesContent":["import { ApiResponse } from \"../../api\";\nimport { AuthCheckInput, RevokeAccessTokenInput } from \"../../interfaces\";\nimport Knock from \"../../knock\";\nimport { TENANT_OBJECT_COLLECTION } from \"../objects/constants\";\n\nimport { GetSlackChannelsInput, GetSlackChannelsResponse } from \"./interfaces\";\n\nclass SlackClient {\n  private instance: Knock;\n\n  constructor(instance: Knock) {\n    this.instance = instance;\n  }\n\n  async authCheck({ tenant, knockChannelId }: AuthCheckInput) {\n    const result = await this.instance.client().makeRequest({\n      method: \"GET\",\n      url: `/v1/providers/slack/${knockChannelId}/auth_check`,\n      params: {\n        access_token_object: {\n          object_id: tenant,\n          collection: TENANT_OBJECT_COLLECTION,\n        },\n        channel_id: knockChannelId,\n      },\n    });\n\n    return this.handleResponse(result);\n  }\n\n  async getChannels(\n    input: GetSlackChannelsInput,\n  ): Promise<GetSlackChannelsResponse> {\n    const { knockChannelId, tenant } = input;\n    const queryOptions = input.queryOptions || {};\n\n    const result = await this.instance.client().makeRequest({\n      method: \"GET\",\n      url: `/v1/providers/slack/${knockChannelId}/channels`,\n      params: {\n        access_token_object: {\n          object_id: tenant,\n          collection: TENANT_OBJECT_COLLECTION,\n        },\n        channel_id: knockChannelId,\n        query_options: {\n          cursor: queryOptions.cursor,\n          limit: queryOptions.limit,\n          exclude_archived: queryOptions.excludeArchived,\n          team_id: queryOptions.teamId,\n          types: queryOptions.types,\n        },\n      },\n    });\n\n    return this.handleResponse(result);\n  }\n\n  async revokeAccessToken({ tenant, knockChannelId }: RevokeAccessTokenInput) {\n    const result = await this.instance.client().makeRequest({\n      method: \"PUT\",\n      url: `/v1/providers/slack/${knockChannelId}/revoke_access`,\n      params: {\n        access_token_object: {\n          object_id: tenant,\n          collection: TENANT_OBJECT_COLLECTION,\n        },\n        channel_id: knockChannelId,\n      },\n    });\n\n    return this.handleResponse(result);\n  }\n\n  private handleResponse(response: ApiResponse) {\n    if (response.statusCode === \"error\") {\n      if (response.error?.response?.status < 500) {\n        return response.error || response.body;\n      }\n      throw new Error(response.error || response.body);\n    }\n\n    return response.body;\n  }\n}\n\nexport default SlackClient;\n"],"names":["SlackClient","instance","__publicField","tenant","knockChannelId","result","TENANT_OBJECT_COLLECTION","input","queryOptions","response","_b","_a"],"mappings":";;;;AAOA,MAAMA,EAAY;AAAA,EAGhB,YAAYC,GAAiB;AAFrB,IAAAC,EAAA;AAGN,SAAK,WAAWD;AAAA,EAAA;AAAA,EAGlB,MAAM,UAAU,EAAE,QAAAE,GAAQ,gBAAAC,KAAkC;AAC1D,UAAMC,IAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY;AAAA,MACtD,QAAQ;AAAA,MACR,KAAK,uBAAuBD,CAAc;AAAA,MAC1C,QAAQ;AAAA,QACN,qBAAqB;AAAA,UACnB,WAAWD;AAAA,UACX,YAAYG;AAAA,QACd;AAAA,QACA,YAAYF;AAAA,MAAA;AAAA,IACd,CACD;AAEM,WAAA,KAAK,eAAeC,CAAM;AAAA,EAAA;AAAA,EAGnC,MAAM,YACJE,GACmC;AAC7B,UAAA,EAAE,gBAAAH,GAAgB,QAAAD,EAAA,IAAWI,GAC7BC,IAAeD,EAAM,gBAAgB,CAAC,GAEtCF,IAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY;AAAA,MACtD,QAAQ;AAAA,MACR,KAAK,uBAAuBD,CAAc;AAAA,MAC1C,QAAQ;AAAA,QACN,qBAAqB;AAAA,UACnB,WAAWD;AAAA,UACX,YAAYG;AAAA,QACd;AAAA,QACA,YAAYF;AAAA,QACZ,eAAe;AAAA,UACb,QAAQI,EAAa;AAAA,UACrB,OAAOA,EAAa;AAAA,UACpB,kBAAkBA,EAAa;AAAA,UAC/B,SAASA,EAAa;AAAA,UACtB,OAAOA,EAAa;AAAA,QAAA;AAAA,MACtB;AAAA,IACF,CACD;AAEM,WAAA,KAAK,eAAeH,CAAM;AAAA,EAAA;AAAA,EAGnC,MAAM,kBAAkB,EAAE,QAAAF,GAAQ,gBAAAC,KAA0C;AAC1E,UAAMC,IAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY;AAAA,MACtD,QAAQ;AAAA,MACR,KAAK,uBAAuBD,CAAc;AAAA,MAC1C,QAAQ;AAAA,QACN,qBAAqB;AAAA,UACnB,WAAWD;AAAA,UACX,YAAYG;AAAA,QACd;AAAA,QACA,YAAYF;AAAA,MAAA;AAAA,IACd,CACD;AAEM,WAAA,KAAK,eAAeC,CAAM;AAAA,EAAA;AAAA,EAG3B,eAAeI,GAAuB;;AACxC,QAAAA,EAAS,eAAe,SAAS;AACnC,YAAIC,KAAAC,IAAAF,EAAS,UAAT,gBAAAE,EAAgB,aAAhB,gBAAAD,EAA0B,UAAS;AAC9B,eAAAD,EAAS,SAASA,EAAS;AAEpC,YAAM,IAAI,MAAMA,EAAS,SAASA,EAAS,IAAI;AAAA,IAAA;AAGjD,WAAOA,EAAS;AAAA,EAAA;AAEpB;"}