import { AxiosError } from "axios"; import { GetRequestPagination, IHttpResponse } from "..//types/common"; import { client } from "./config"; import { GET_NEWS_EVENTS_URI, POST_NEWS_EVENTS_URI } from "../../src/constants/api"; interface GetNewsSevice extends GetRequestPagination { is_with_approval: number } async function getNewsServices({ page, page_size, is_with_approval}: GetNewsSevice): Promise { const newState: IHttpResponse = { data: null, error: null}; try { const response = await client({ method: 'GET', url: `${GET_NEWS_EVENTS_URI}?page=${page}&page_size=${page_size}&is_with_approval=${is_with_approval}`}); newState.data = response.data; newState.status = response.status; return newState; } catch (error) { let err = error as AxiosError; newState.error = err; newState.status = err.status throw(newState) } } interface PostNewsServiceBody { title: string, url: string, description: string, submitted_by: number } async function postNewsService(req: PostNewsServiceBody): Promise { const newState: IHttpResponse = { data: null, error: null} try { const response = await client({ method: 'POST', url: POST_NEWS_EVENTS_URI, data: req, withCredentials: true}) newState.data = response.data newState.status = response.status return newState } catch (error) { let err = error as AxiosError; newState.error = err; newState.status = err.status throw(newState) } } export { getNewsServices, postNewsService }