UNPKG

softchatjs-core

Version:
1 lines 7.79 kB
{"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"]}