40 lines
1.0 KiB
TypeScript
40 lines
1.0 KiB
TypeScript
import { Mission, Prisma } from "@repo/db";
|
|
import axios from "axios";
|
|
import { serverApi } from "helpers/axios";
|
|
|
|
export const getMissionsAPI = async (filter?: Prisma.MissionWhereInput) => {
|
|
const res = await axios.get<Mission[]>("/api/missions", {
|
|
params: {
|
|
filter: JSON.stringify(filter),
|
|
},
|
|
});
|
|
if (res.status !== 200) {
|
|
throw new Error("Failed to fetch stations");
|
|
}
|
|
return res.data;
|
|
};
|
|
|
|
export const createMissionAPI = async (mission: Prisma.MissionCreateInput) => {
|
|
const response = await serverApi.put<Mission>("/mission", mission);
|
|
return response.data;
|
|
};
|
|
|
|
export const editMissionAPI = async (
|
|
id: number,
|
|
mission: Prisma.MissionUpdateInput,
|
|
) => {
|
|
const respone = await serverApi.patch<Mission>(`/mission/${id}`, mission);
|
|
return respone.data;
|
|
};
|
|
|
|
export const sendMissionAPI = async (id: number) => {
|
|
const respone = await serverApi.post<{
|
|
message: string;
|
|
}>(`/mission/${id}/send-alert`);
|
|
return respone.data;
|
|
};
|
|
|
|
export const deleteMissionAPI = async (id: number) => {
|
|
await serverApi.delete(`/mission/${id}`);
|
|
};
|