{"version":3,"file":"index.mjs","sources":["../../../../src/clients/ms-teams/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 {\n  GetMsTeamsChannelsInput,\n  GetMsTeamsChannelsResponse,\n  GetMsTeamsTeamsInput,\n  GetMsTeamsTeamsResponse,\n} from \"./interfaces\";\n\nclass MsTeamsClient {\n  private instance: Knock;\n\n  constructor(instance: Knock) {\n    this.instance = instance;\n  }\n\n  async authCheck({ tenant: tenantId, knockChannelId }: AuthCheckInput) {\n    const result = await this.instance.client().makeRequest({\n      method: \"GET\",\n      url: `/v1/providers/ms-teams/${knockChannelId}/auth_check`,\n      params: {\n        ms_teams_tenant_object: {\n          object_id: tenantId,\n          collection: TENANT_OBJECT_COLLECTION,\n        },\n        channel_id: knockChannelId,\n      },\n    });\n\n    return this.handleResponse(result);\n  }\n\n  async getTeams(\n    input: GetMsTeamsTeamsInput,\n  ): Promise<GetMsTeamsTeamsResponse> {\n    const { knockChannelId, tenant: tenantId } = input;\n    const queryOptions = input.queryOptions || {};\n\n    const result = await this.instance.client().makeRequest({\n      method: \"GET\",\n      url: `/v1/providers/ms-teams/${knockChannelId}/teams`,\n      params: {\n        ms_teams_tenant_object: {\n          object_id: tenantId,\n          collection: TENANT_OBJECT_COLLECTION,\n        },\n        query_options: {\n          $filter: queryOptions.$filter,\n          $select: queryOptions.$select,\n          $top: queryOptions.$top,\n          $skiptoken: queryOptions.$skiptoken,\n        },\n      },\n    });\n\n    return this.handleResponse(result);\n  }\n\n  async getChannels(\n    input: GetMsTeamsChannelsInput,\n  ): Promise<GetMsTeamsChannelsResponse> {\n    const { knockChannelId, teamId, tenant: tenantId } = input;\n    const queryOptions = input.queryOptions || {};\n\n    const result = await this.instance.client().makeRequest({\n      method: \"GET\",\n      url: `/v1/providers/ms-teams/${knockChannelId}/channels`,\n      params: {\n        ms_teams_tenant_object: {\n          object_id: tenantId,\n          collection: TENANT_OBJECT_COLLECTION,\n        },\n        team_id: teamId,\n        query_options: {\n          $filter: queryOptions.$filter,\n          $select: queryOptions.$select,\n        },\n      },\n    });\n\n    return this.handleResponse(result);\n  }\n\n  async revokeAccessToken({\n    tenant: tenantId,\n    knockChannelId,\n  }: RevokeAccessTokenInput) {\n    const result = await this.instance.client().makeRequest({\n      method: \"PUT\",\n      url: `/v1/providers/ms-teams/${knockChannelId}/revoke_access`,\n      params: {\n        ms_teams_tenant_object: {\n          object_id: tenantId,\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 MsTeamsClient;\n"],"names":["MsTeamsClient","instance","__publicField","tenantId","knockChannelId","result","TENANT_OBJECT_COLLECTION","input","queryOptions","teamId","response","_b","_a"],"mappings":";;;;AAYA,MAAMA,EAAc;AAAA,EAGlB,YAAYC,GAAiB;AAFrB,IAAAC,EAAA;AAGN,SAAK,WAAWD;AAAA,EAAA;AAAA,EAGlB,MAAM,UAAU,EAAE,QAAQE,GAAU,gBAAAC,KAAkC;AACpE,UAAMC,IAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY;AAAA,MACtD,QAAQ;AAAA,MACR,KAAK,0BAA0BD,CAAc;AAAA,MAC7C,QAAQ;AAAA,QACN,wBAAwB;AAAA,UACtB,WAAWD;AAAA,UACX,YAAYG;AAAA,QACd;AAAA,QACA,YAAYF;AAAA,MAAA;AAAA,IACd,CACD;AAEM,WAAA,KAAK,eAAeC,CAAM;AAAA,EAAA;AAAA,EAGnC,MAAM,SACJE,GACkC;AAClC,UAAM,EAAE,gBAAAH,GAAgB,QAAQD,EAAa,IAAAI,GACvCC,IAAeD,EAAM,gBAAgB,CAAC,GAEtCF,IAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY;AAAA,MACtD,QAAQ;AAAA,MACR,KAAK,0BAA0BD,CAAc;AAAA,MAC7C,QAAQ;AAAA,QACN,wBAAwB;AAAA,UACtB,WAAWD;AAAA,UACX,YAAYG;AAAA,QACd;AAAA,QACA,eAAe;AAAA,UACb,SAASE,EAAa;AAAA,UACtB,SAASA,EAAa;AAAA,UACtB,MAAMA,EAAa;AAAA,UACnB,YAAYA,EAAa;AAAA,QAAA;AAAA,MAC3B;AAAA,IACF,CACD;AAEM,WAAA,KAAK,eAAeH,CAAM;AAAA,EAAA;AAAA,EAGnC,MAAM,YACJE,GACqC;AACrC,UAAM,EAAE,gBAAAH,GAAgB,QAAAK,GAAQ,QAAQN,EAAa,IAAAI,GAC/CC,IAAeD,EAAM,gBAAgB,CAAC,GAEtCF,IAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY;AAAA,MACtD,QAAQ;AAAA,MACR,KAAK,0BAA0BD,CAAc;AAAA,MAC7C,QAAQ;AAAA,QACN,wBAAwB;AAAA,UACtB,WAAWD;AAAA,UACX,YAAYG;AAAA,QACd;AAAA,QACA,SAASG;AAAA,QACT,eAAe;AAAA,UACb,SAASD,EAAa;AAAA,UACtB,SAASA,EAAa;AAAA,QAAA;AAAA,MACxB;AAAA,IACF,CACD;AAEM,WAAA,KAAK,eAAeH,CAAM;AAAA,EAAA;AAAA,EAGnC,MAAM,kBAAkB;AAAA,IACtB,QAAQF;AAAA,IACR,gBAAAC;AAAA,EAAA,GACyB;AACzB,UAAMC,IAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY;AAAA,MACtD,QAAQ;AAAA,MACR,KAAK,0BAA0BD,CAAc;AAAA,MAC7C,QAAQ;AAAA,QACN,wBAAwB;AAAA,UACtB,WAAWD;AAAA,UACX,YAAYG;AAAA,QACd;AAAA,QACA,YAAYF;AAAA,MAAA;AAAA,IACd,CACD;AAEM,WAAA,KAAK,eAAeC,CAAM;AAAA,EAAA;AAAA,EAG3B,eAAeK,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;"}