SurfSense/surfsense_web/lib/apis/pats-api.service.ts
2026-06-19 20:28:48 +05:30

33 lines
948 B
TypeScript

import {
type CreatePatRequest,
createPatRequest,
createPatResponse,
deletePatResponse,
listPatsResponse,
} from "@/contracts/types/pat.types";
import { ValidationError } from "../error";
import { baseApiService } from "./base-api.service";
class PatsApiService {
listPats = async () => {
return baseApiService.get("/api/v1/pats", listPatsResponse);
};
createPat = async (request: CreatePatRequest) => {
const parsedRequest = createPatRequest.safeParse(request);
if (!parsedRequest.success) {
const errorMessage = parsedRequest.error.issues.map((issue) => issue.message).join(", ");
throw new ValidationError(`Invalid request: ${errorMessage}`);
}
return baseApiService.post("/api/v1/pats", createPatResponse, {
body: parsedRequest.data,
});
};
deletePat = async (id: number) => {
return baseApiService.delete(`/api/v1/pats/${id}`, deletePatResponse);
};
}
export const patsApiService = new PatsApiService();