mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-04-26 17:26:23 +02:00
restore custom actions API service and wire to ActionPicker
This commit is contained in:
parent
041401aefc
commit
11374248d8
3 changed files with 114 additions and 1 deletions
59
surfsense_web/lib/apis/quick-ask-actions-api.service.ts
Normal file
59
surfsense_web/lib/apis/quick-ask-actions-api.service.ts
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
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();
|
||||
Loading…
Add table
Add a link
Reference in a new issue