feat(api-endpoints.ts): add abortRequest endpoint

feat(data-service.ts): add abortRequestWithMessage function
feat(react-query-service.ts): add useAbortRequestWithMessage hook
This commit is contained in:
Daniel Avila 2023-04-09 09:21:04 -04:00
parent f946f90ef6
commit 828e438d53
3 changed files with 12 additions and 0 deletions

View file

@ -6,6 +6,10 @@ export const messages = (id: string) => {
return `/api/messages/${id}`; return `/api/messages/${id}`;
}; };
export const abortRequest = (endpoint: string) => {
return `/api/ask/${endpoint}/abort`;
};
export const conversations = (pageNumber: string) => { export const conversations = (pageNumber: string) => {
return `/api/convos?pageNumber=${pageNumber}`; return `/api/convos?pageNumber=${pageNumber}`;
}; };

View file

@ -6,6 +6,10 @@ export function getConversations(pageNumber: string): Promise<t.TGetConversation
return request.get(endpoints.conversations(pageNumber)); return request.get(endpoints.conversations(pageNumber));
} }
export function abortRequestWithMessage(endpoint: string, abortKey: string, message: string): Promise<void> {
return request.post(endpoints.abortRequest(endpoint), { arg: {abortKey, message} });
}
export function deleteConversation(payload: t.TDeleteConversationRequest) { export function deleteConversation(payload: t.TDeleteConversationRequest) {
//todo: this should be a DELETE request //todo: this should be a DELETE request
return request.post(endpoints.deleteConversation(), {arg: payload}); return request.post(endpoints.deleteConversation(), {arg: payload});

View file

@ -21,6 +21,10 @@ export enum QueryKeys {
tokenCount = "tokenCount", tokenCount = "tokenCount",
} }
export const useAbortRequestWithMessage = (): UseMutationResult<void, Error, { endpoint: string; abortKey: string; message: string }> => {
return useMutation(({ endpoint, abortKey, message }) => dataService.abortRequestWithMessage(endpoint, abortKey, message));
};
export const useGetUserQuery = (): QueryObserverResult<t.TUser> => { export const useGetUserQuery = (): QueryObserverResult<t.TUser> => {
return useQuery<t.TUser>([QueryKeys.user], () => dataService.getUser(), { return useQuery<t.TUser>([QueryKeys.user], () => dataService.getUser(), {
refetchOnWindowFocus: false, refetchOnWindowFocus: false,