{"version":3,"file":"index.mjs","sources":["../../../../src/clients/messages/index.ts"],"sourcesContent":["import { ApiResponse } from \"../../api\";\nimport { BulkOperation } from \"../../interfaces\";\nimport Knock from \"../../knock\";\n\nimport {\n  BulkUpdateMessagesInChannelProperties,\n  Message,\n  MessageEngagementStatus,\n  UpdateMessageStatusOptions,\n} from \"./interfaces\";\n\nclass MessageClient {\n  private knock: Knock;\n\n  constructor(knock: Knock) {\n    this.knock = knock;\n  }\n\n  async get(messageId: string): Promise<Message> {\n    const result = await this.knock.client().makeRequest({\n      method: \"GET\",\n      url: `/v1/messages/${messageId}`,\n    });\n\n    return this.handleResponse<Message>(result);\n  }\n\n  async updateStatus(\n    messageId: string,\n    status: MessageEngagementStatus,\n    options?: UpdateMessageStatusOptions,\n  ): Promise<Message> {\n    // Metadata is only required for the \"interacted\" status\n    const payload =\n      status === \"interacted\" && options\n        ? { metadata: options.metadata }\n        : undefined;\n\n    const result = await this.knock.client().makeRequest({\n      method: \"PUT\",\n      url: `/v1/messages/${messageId}/${status}`,\n      data: payload,\n    });\n\n    return this.handleResponse<Message>(result);\n  }\n\n  async removeStatus(\n    messageId: string,\n    status: Exclude<MessageEngagementStatus, \"interacted\">,\n  ): Promise<Message> {\n    const result = await this.knock.client().makeRequest({\n      method: \"DELETE\",\n      url: `/v1/messages/${messageId}/${status}`,\n    });\n\n    return this.handleResponse<Message>(result);\n  }\n\n  async batchUpdateStatuses(\n    messageIds: string[],\n    status: MessageEngagementStatus | \"unseen\" | \"unread\" | \"unarchived\",\n    options?: UpdateMessageStatusOptions,\n  ): Promise<Message[]> {\n    // Metadata is only required for the \"interacted\" status\n    const additionalPayload =\n      status === \"interacted\" && options ? { metadata: options.metadata } : {};\n\n    const result = await this.knock.client().makeRequest({\n      method: \"POST\",\n      url: `/v1/messages/batch/${status}`,\n      data: { message_ids: messageIds, ...additionalPayload },\n    });\n\n    return this.handleResponse<Message[]>(result);\n  }\n\n  async bulkUpdateAllStatusesInChannel({\n    channelId,\n    status,\n    options,\n  }: BulkUpdateMessagesInChannelProperties): Promise<BulkOperation> {\n    const result = await this.knock.client().makeRequest({\n      method: \"POST\",\n      url: `/v1/channels/${channelId}/messages/bulk/${status}`,\n      data: options,\n    });\n\n    return this.handleResponse<BulkOperation>(result);\n  }\n\n  private handleResponse<T = unknown>(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 as T;\n  }\n}\n\nexport default MessageClient;\n"],"names":["MessageClient","knock","__publicField","messageId","result","status","options","payload","messageIds","additionalPayload","channelId","response","_a","_b"],"mappings":";;;AAWA,MAAMA,EAAc;AAAA,EAGlB,YAAYC,GAAc;AAFlB,IAAAC,EAAA;AAGN,SAAK,QAAQD;AAAA,EAAA;AAAA,EAGf,MAAM,IAAIE,GAAqC;AAC7C,UAAMC,IAAS,MAAM,KAAK,MAAM,OAAA,EAAS,YAAY;AAAA,MACnD,QAAQ;AAAA,MACR,KAAK,gBAAgBD,CAAS;AAAA,IAAA,CAC/B;AAEM,WAAA,KAAK,eAAwBC,CAAM;AAAA,EAAA;AAAA,EAG5C,MAAM,aACJD,GACAE,GACAC,GACkB;AAEZ,UAAAC,IACJF,MAAW,gBAAgBC,IACvB,EAAE,UAAUA,EAAQ,aACpB,QAEAF,IAAS,MAAM,KAAK,MAAM,OAAA,EAAS,YAAY;AAAA,MACnD,QAAQ;AAAA,MACR,KAAK,gBAAgBD,CAAS,IAAIE,CAAM;AAAA,MACxC,MAAME;AAAA,IAAA,CACP;AAEM,WAAA,KAAK,eAAwBH,CAAM;AAAA,EAAA;AAAA,EAG5C,MAAM,aACJD,GACAE,GACkB;AAClB,UAAMD,IAAS,MAAM,KAAK,MAAM,OAAA,EAAS,YAAY;AAAA,MACnD,QAAQ;AAAA,MACR,KAAK,gBAAgBD,CAAS,IAAIE,CAAM;AAAA,IAAA,CACzC;AAEM,WAAA,KAAK,eAAwBD,CAAM;AAAA,EAAA;AAAA,EAG5C,MAAM,oBACJI,GACAH,GACAC,GACoB;AAEd,UAAAG,IACJJ,MAAW,gBAAgBC,IAAU,EAAE,UAAUA,EAAQ,SAAS,IAAI,CAAC,GAEnEF,IAAS,MAAM,KAAK,MAAM,OAAA,EAAS,YAAY;AAAA,MACnD,QAAQ;AAAA,MACR,KAAK,sBAAsBC,CAAM;AAAA,MACjC,MAAM,EAAE,aAAaG,GAAY,GAAGC,EAAkB;AAAA,IAAA,CACvD;AAEM,WAAA,KAAK,eAA0BL,CAAM;AAAA,EAAA;AAAA,EAG9C,MAAM,+BAA+B;AAAA,IACnC,WAAAM;AAAA,IACA,QAAAL;AAAA,IACA,SAAAC;AAAA,EAAA,GACgE;AAChE,UAAMF,IAAS,MAAM,KAAK,MAAM,OAAA,EAAS,YAAY;AAAA,MACnD,QAAQ;AAAA,MACR,KAAK,gBAAgBM,CAAS,kBAAkBL,CAAM;AAAA,MACtD,MAAMC;AAAA,IAAA,CACP;AAEM,WAAA,KAAK,eAA8BF,CAAM;AAAA,EAAA;AAAA,EAG1C,eAA4BO,GAAuB;AAhF7D,QAAAC,GAAAC;AAiFQ,QAAAF,EAAS,eAAe,SAAS;AACnC,YAAIE,KAAAD,IAAAD,EAAS,UAAT,gBAAAC,EAAgB,aAAhB,gBAAAC,EAA0B,UAAS;AAC9B,eAAAF,EAAS,SAASA,EAAS;AAEpC,YAAM,IAAI,MAAMA,EAAS,SAASA,EAAS,IAAI;AAAA,IAAA;AAGjD,WAAOA,EAAS;AAAA,EAAA;AAEpB;"}