UNPKG

cafebazaar-purchase-validator

Version:

easily validate purchase in app billing of Cafebazaar API

47 lines (43 loc) 1.56 kB
import axios from "axios"; import { appLog } from "../utils/utils"; import { AppRequest, AppResponse } from "./app-response"; export const post = async <T>( appRequest: AppRequest, appResponse: AppResponse<T> ): Promise<void> => { appLog("POST => " + appRequest.url); try { const response = await axios.post<T>(appRequest.url, appRequest.data); appLog(`POST <= ${response.status} ${appRequest.url}`); appLog(`RESPONSE <= ${JSON.stringify(response.data)}`); appResponse.onSuccess(response.data); } catch (error) { if (!error.response) { error.response = { status: 500, data: { error: "server_error", error_description: "Something is Wrong", }, }; } else { if (!error.response.data.error_description) { error.response.data.error_description = error.response.data.error; } } appLog(`POST <= ${error.response.status} ${appRequest.url}`); appLog(`RESPONSE ERROR <= ${JSON.stringify(error.response.data)}`); if (axios.isAxiosError(error)) { if (error.response?.status == 401 && appResponse.onUnauthorized) { return appResponse.onUnauthorized(); } if (error.response?.status == 403 && appResponse.onForbidden) { return appResponse.onForbidden(); } if (error.response?.status == 404 && appResponse.onNotFound) { return appResponse.onNotFound(); } } return appResponse.onFailure(error.response?.data.error_description); } };