{"version":3,"sources":["../src/fetch.ts"],"sourcesContent":["import axios, { AxiosResponse } from \"axios\";\r\nimport { MediaType, Prettify, UploadContent } from \"./types\";\r\n\r\nlet API = \"https://api.softchatjs.com\";\r\n\r\nenum ENDPOINTS {\r\n  CONVERSATIONS = \"/conversations\",\r\n  CONVERSATION = \"/conversation\",\r\n  MESSAGES = \"/messages\",\r\n  UPLOAD = \"/upload\",\r\n  UPLOAD_ATTACHMENT = \"/upload-attachment\",\r\n  CREATE_SESSION = \"/auth/session\",\r\n  EMOJIS = \"/gifs/trending\",\r\n  GET_PRESIGNED_URL = \"/presigned-url\",\r\n  BROADCAST_LIST = \"/broadcastlist\",\r\n  BROADCAST_LISTS = \"/broadcastlists\",\r\n}\r\n\r\ntype Payload = {\r\n  endpoint: string;\r\n  body: Object;\r\n  method: \"GET\" | \"POST\" | \"PUT\";\r\n  token?: string;\r\n  headers?: Record<string, string>;\r\n};\r\n\r\nconst chatApi = async <R>(payload: Payload): Promise<APIResponse<R>> => {\r\n  try {\r\n    const res: AxiosResponse<R> = await axios({\r\n      url: payload.endpoint,\r\n      method: payload.method,\r\n      headers: {\r\n        \"Cache-Control\": \"no-cache\",\r\n        accessToken: payload.token || \"\",\r\n        \"Content-Type\": \"application/json\",\r\n        ...payload.headers,\r\n      },\r\n      data: payload.method === \"POST\" ? payload.body : undefined,\r\n      responseType: \"json\",\r\n      timeout: 30000,\r\n    });\r\n    const response = res.data;\r\n    if (typeof response === \"object\" && response && \"success\" in response) {\r\n      return response as unknown as APIResponse<R>;\r\n    }\r\n    return { ...response, success: false } as unknown as APIResponse<R>;\r\n  } catch (error) {\r\n    console.log(error, \"fetch error\");\r\n    if (axios.isAxiosError(error) && error.response) {\r\n      throw new Error(`HTTP error! Status: ${error.response.status}`);\r\n    }\r\n    throw new Error(\"An unknown error occurred.\");\r\n  }\r\n};\r\n\r\ntype APIResponse<R> = {\r\n  success: boolean;\r\n  data: R;\r\n  message: string;\r\n};\r\n\r\nexport async function CREATE_SESSION<Response>({\r\n  userId,\r\n  subId,\r\n  projectId,\r\n}: {\r\n  userId: string;\r\n  subId: string;\r\n  projectId: string;\r\n}): Promise<APIResponse<Response>> {\r\n  return await chatApi<Response>({\r\n    endpoint: `${API}${ENDPOINTS.CREATE_SESSION}`,\r\n    body: { userId, projectId, subId },\r\n    method: \"POST\",\r\n    // headers: { \"x-api-key\": apiKey },\r\n  });\r\n}\r\n\r\nexport async function GET_CONVERSATIONS<Response>(\r\n  token: string | undefined,\r\n): Promise<APIResponse<Response>> {\r\n  return await chatApi<Response>({\r\n    endpoint: `${API}${ENDPOINTS.CONVERSATIONS}`,\r\n    body: {},\r\n    method: \"GET\",\r\n    token,\r\n  });\r\n}\r\n\r\nexport async function GET_CONVERSATION<Response>(\r\n  token: string | undefined, conversationId: string\r\n): Promise<APIResponse<Response>> {\r\n  return await chatApi<Response>({\r\n    endpoint: `${API}${ENDPOINTS.CONVERSATION}/${conversationId}`,\r\n    body: {},\r\n    method: \"GET\",\r\n    token,\r\n  });\r\n}\r\n\r\nexport async function GET_BROADCASTLISTS<Response>(\r\n  token: string | undefined\r\n): Promise<APIResponse<Response>> {\r\n  return await chatApi<Response>({\r\n    endpoint: `${API}${ENDPOINTS.BROADCAST_LISTS}`,\r\n    body: {},\r\n    method: \"GET\",\r\n    token,\r\n  });\r\n}\r\n\r\nexport async function GET_MESSAGES<Response>(\r\n  token: string | undefined,\r\n  conversationId: string,\r\n  page?: number\r\n): Promise<APIResponse<Response>> {\r\n  return await chatApi<Response>({\r\n    endpoint: `${API}${ENDPOINTS.MESSAGES}/${conversationId}${page ? \"?page=\" + page : \"\"}`,\r\n    body: {},\r\n    method: \"GET\",\r\n    token,\r\n  });\r\n}\r\n\r\nexport async function GET_BROADCAST_LIST_MESSAGES<Response>(\r\n  token: string | undefined,\r\n  broadcastListId: string,\r\n  page?: number\r\n): Promise<APIResponse<Response>> {\r\n  return await chatApi<Response>({\r\n    endpoint: `${API}${ENDPOINTS.BROADCAST_LIST}/messages/${broadcastListId}${page ? \"?page=\" + page : \"\"}`,\r\n    body: {},\r\n    method: \"GET\",\r\n    token,\r\n  });\r\n}\r\n\r\nexport async function GET_EMOJIS<Response>(\r\n  token: string | undefined\r\n): Promise<APIResponse<Response>> {\r\n  return await chatApi<Response>({\r\n    endpoint: `${API}${ENDPOINTS.EMOJIS}`,\r\n    body: {},\r\n    method: \"GET\",\r\n    token,\r\n  });\r\n}\r\n\r\nexport async function UPLOAD_MEDIA<Response>(\r\n  token: string,\r\n  data: Prettify<UploadContent>\r\n): Promise<APIResponse<Response>> {\r\n  return await chatApi<Response>({\r\n    endpoint: `${API}${ENDPOINTS.UPLOAD}`,\r\n    body: data,\r\n    method: \"POST\",\r\n    token,\r\n  });\r\n}\r\n\r\nexport async function GET_PRESIGNED_URL<Response>(\r\n  token: string,\r\n  data: Prettify<UploadContent & { mediaType: string, uid: string, ext: string }>\r\n): Promise<APIResponse<Response>> {\r\n  return await chatApi<Response>({\r\n    endpoint: `${API}${ENDPOINTS.GET_PRESIGNED_URL}`,\r\n    body: data,\r\n    method: \"POST\",\r\n    token,\r\n  });\r\n}\r\n\r\nexport async function UPLOAD_ATTACHMENT<Response>(\r\n  token: string,\r\n  data: any\r\n): Promise<APIResponse<Response>> {\r\n  return await chatApi<Response>({\r\n    endpoint: `${API}${ENDPOINTS.UPLOAD_ATTACHMENT}`,\r\n    body: data,\r\n    method: \"POST\",\r\n    token,\r\n    headers: { \"Content-Type\": \"multipart/form-data\" },\r\n  });\r\n}\r\n"],"mappings":"AAAA,OAAOA,MAA8B,QAGrC,IAAIC,EAAM,6BAuBV,IAAMC,EAAU,MAAUC,GAA8C,CACtE,GAAI,CAcF,IAAMC,GAbwB,MAAMC,EAAM,CACxC,IAAKF,EAAQ,SACb,OAAQA,EAAQ,OAChB,QAAS,CACP,gBAAiB,WACjB,YAAaA,EAAQ,OAAS,GAC9B,eAAgB,mBAChB,GAAGA,EAAQ,OACb,EACA,KAAMA,EAAQ,SAAW,OAASA,EAAQ,KAAO,OACjD,aAAc,OACd,QAAS,GACX,CAAC,GACoB,KACrB,OAAI,OAAOC,GAAa,UAAYA,GAAY,YAAaA,EACpDA,EAEF,CAAE,GAAGA,EAAU,QAAS,EAAM,CACvC,OAASE,EAAO,CAEd,MADA,QAAQ,IAAIA,EAAO,aAAa,EAC5BD,EAAM,aAAaC,CAAK,GAAKA,EAAM,SAC/B,IAAI,MAAM,uBAAuBA,EAAM,SAAS,MAAM,EAAE,EAE1D,IAAI,MAAM,4BAA4B,CAC9C,CACF,EAQA,eAAsBC,EAAyB,CAC7C,OAAAC,EACA,MAAAC,EACA,UAAAC,CACF,EAImC,CACjC,OAAO,MAAMR,EAAkB,CAC7B,SAAU,GAAGS,CAAG,gBAChB,KAAM,CAAE,OAAAH,EAAQ,UAAAE,EAAW,MAAAD,CAAM,EACjC,OAAQ,MAEV,CAAC,CACH,CAEA,eAAsBG,EACpBC,EACgC,CAChC,OAAO,MAAMX,EAAkB,CAC7B,SAAU,GAAGS,CAAG,iBAChB,KAAM,CAAC,EACP,OAAQ,MACR,MAAAE,CACF,CAAC,CACH,CAEA,eAAsBC,EACpBD,EAA2BE,EACK,CAChC,OAAO,MAAMb,EAAkB,CAC7B,SAAU,GAAGS,CAAG,iBAA6BI,CAAc,GAC3D,KAAM,CAAC,EACP,OAAQ,MACR,MAAAF,CACF,CAAC,CACH,CAEA,eAAsBG,EACpBH,EACgC,CAChC,OAAO,MAAMX,EAAkB,CAC7B,SAAU,GAAGS,CAAG,kBAChB,KAAM,CAAC,EACP,OAAQ,MACR,MAAAE,CACF,CAAC,CACH,CAEA,eAAsBI,EACpBJ,EACAE,EACAG,EACgC,CAChC,OAAO,MAAMhB,EAAkB,CAC7B,SAAU,GAAGS,CAAG,aAAyBI,CAAc,GAAGG,EAAO,SAAWA,EAAO,EAAE,GACrF,KAAM,CAAC,EACP,OAAQ,MACR,MAAAL,CACF,CAAC,CACH,CAEA,eAAsBM,EACpBN,EACAO,EACAF,EACgC,CAChC,OAAO,MAAMhB,EAAkB,CAC7B,SAAU,GAAGS,CAAG,2BAAwCS,CAAe,GAAGF,EAAO,SAAWA,EAAO,EAAE,GACrG,KAAM,CAAC,EACP,OAAQ,MACR,MAAAL,CACF,CAAC,CACH,CAEA,eAAsBQ,EACpBR,EACgC,CAChC,OAAO,MAAMX,EAAkB,CAC7B,SAAU,GAAGS,CAAG,iBAChB,KAAM,CAAC,EACP,OAAQ,MACR,MAAAE,CACF,CAAC,CACH,CAEA,eAAsBS,EACpBT,EACAU,EACgC,CAChC,OAAO,MAAMrB,EAAkB,CAC7B,SAAU,GAAGS,CAAG,UAChB,KAAMY,EACN,OAAQ,OACR,MAAAV,CACF,CAAC,CACH,CAEA,eAAsBW,EACpBX,EACAU,EACgC,CAChC,OAAO,MAAMrB,EAAkB,CAC7B,SAAU,GAAGS,CAAG,iBAChB,KAAMY,EACN,OAAQ,OACR,MAAAV,CACF,CAAC,CACH,CAEA,eAAsBY,EACpBZ,EACAU,EACgC,CAChC,OAAO,MAAMrB,EAAkB,CAC7B,SAAU,GAAGS,CAAG,qBAChB,KAAMY,EACN,OAAQ,OACR,MAAAV,EACA,QAAS,CAAE,eAAgB,qBAAsB,CACnD,CAAC,CACH","names":["axios","API","chatApi","payload","response","axios","error","CREATE_SESSION","userId","subId","projectId","API","GET_CONVERSATIONS","token","GET_CONVERSATION","conversationId","GET_BROADCASTLISTS","GET_MESSAGES","page","GET_BROADCAST_LIST_MESSAGES","broadcastListId","GET_EMOJIS","UPLOAD_MEDIA","data","GET_PRESIGNED_URL","UPLOAD_ATTACHMENT"]}