mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-04-26 09:16:22 +02:00
59 lines
1.9 KiB
TypeScript
59 lines
1.9 KiB
TypeScript
import {
|
|
type QuickAskActionCreateRequest,
|
|
type QuickAskActionUpdateRequest,
|
|
quickAskActionCreateRequest,
|
|
quickAskActionDeleteResponse,
|
|
quickAskActionRead,
|
|
quickAskActionUpdateRequest,
|
|
quickAskActionsListResponse,
|
|
} from "@/contracts/types/quick-ask-actions.types";
|
|
import { ValidationError } from "@/lib/error";
|
|
import { baseApiService } from "./base-api.service";
|
|
|
|
class QuickAskActionsApiService {
|
|
list = async (searchSpaceId?: number) => {
|
|
const params = new URLSearchParams();
|
|
if (searchSpaceId !== undefined) {
|
|
params.set("search_space_id", String(searchSpaceId));
|
|
}
|
|
const queryString = params.toString();
|
|
const url = queryString
|
|
? `/api/v1/quick-ask-actions?${queryString}`
|
|
: "/api/v1/quick-ask-actions";
|
|
|
|
return baseApiService.get(url, quickAskActionsListResponse);
|
|
};
|
|
|
|
create = async (request: QuickAskActionCreateRequest) => {
|
|
const parsed = quickAskActionCreateRequest.safeParse(request);
|
|
if (!parsed.success) {
|
|
const errorMessage = parsed.error.issues.map((issue) => issue.message).join(", ");
|
|
throw new ValidationError(`Invalid request: ${errorMessage}`);
|
|
}
|
|
|
|
return baseApiService.post("/api/v1/quick-ask-actions", quickAskActionRead, {
|
|
body: parsed.data,
|
|
});
|
|
};
|
|
|
|
update = async (actionId: number, request: QuickAskActionUpdateRequest) => {
|
|
const parsed = quickAskActionUpdateRequest.safeParse(request);
|
|
if (!parsed.success) {
|
|
const errorMessage = parsed.error.issues.map((issue) => issue.message).join(", ");
|
|
throw new ValidationError(`Invalid request: ${errorMessage}`);
|
|
}
|
|
|
|
return baseApiService.put(`/api/v1/quick-ask-actions/${actionId}`, quickAskActionRead, {
|
|
body: parsed.data,
|
|
});
|
|
};
|
|
|
|
delete = async (actionId: number) => {
|
|
return baseApiService.delete(
|
|
`/api/v1/quick-ask-actions/${actionId}`,
|
|
quickAskActionDeleteResponse
|
|
);
|
|
};
|
|
}
|
|
|
|
export const quickAskActionsApiService = new QuickAskActionsApiService();
|