diff --git a/src/services/api/master-data/nonstock.ts b/src/services/api/master-data/nonstock.ts new file mode 100644 index 00000000..7340e37b --- /dev/null +++ b/src/services/api/master-data/nonstock.ts @@ -0,0 +1,87 @@ +import axios from 'axios'; +import { httpClient } from '@/services/http/client'; + +import { + CreateNonstockPayload, + DeleteNonstockResponse, + NonstockResponse, + UpdateNonstockPayload, +} from '@/types/api/master-data/nonstock'; + +export const getNonstock = async (nonstockId: number) => { + try { + const getNonstockRes = await httpClient( + `/master-data/nonstocks/${nonstockId}` + ); + + return getNonstockRes; + } catch (error: unknown) { + if (axios.isAxiosError(error)) { + return error.response?.data; + } + + return undefined; + } +}; + +export const createNonstock = async (payload: CreateNonstockPayload) => { + try { + const createNonstockRes = await httpClient( + '/master-data/nonstocks', + { + method: 'POST', + body: payload, + } + ); + + return createNonstockRes; + } catch (error: unknown) { + if (axios.isAxiosError(error)) { + return error.response?.data; + } + + return undefined; + } +}; + +export const updateNonstock = async ( + nonstockId: number, + payload: UpdateNonstockPayload +) => { + try { + const updateNonstockRes = await httpClient( + `/master-data/nonstocks/${nonstockId}`, + { + method: 'PATCH', + body: payload, + } + ); + + return updateNonstockRes; + } catch (error: unknown) { + if (axios.isAxiosError(error)) { + return error.response?.data; + } + + return undefined; + } +}; + +export const deleteNonstock = async (nonstockId: number) => { + try { + const deleteNonstockRes = await httpClient( + `/master-data/nonstocks/${nonstockId}`, + { + method: 'DELETE', + } + ); + + return deleteNonstockRes; + } catch (error) { + if (axios.isAxiosError(error)) { + return error.response?.data; + } + + return undefined; + } +};