All files / src/lib/api/admin consultations.ts

100% Statements 11/11
100% Branches 8/8
100% Functions 2/2
100% Lines 8/8

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44                                        96x           6x 6x 6x 6x 6x 6x           5x            
import { request } from "../base";
 
export type ConsultationBookingStatus =
	| "pending"
	| "contacted"
	| "completed"
	| "cancelled";
 
export type ConsultationBooking = {
	id: number;
	reference: string;
	phone: string;
	details: string | null;
	status: ConsultationBookingStatus;
	homeownerId: string | null;
	sourcePage: string | null;
	dateCreated: string;
	dateUpdated: string;
};
 
export const adminConsultationsApi = {
	listConsultations(filters?: {
		page?: number;
		limit?: number;
		status?: ConsultationBookingStatus;
	}) {
		const params = new URLSearchParams();
		if (filters?.page) params.set("page", String(filters.page));
		if (filters?.limit) params.set("limit", String(filters.limit));
		if (filters?.status) params.set("status", filters.status);
		const qs = params.toString();
		return request<ConsultationBooking[]>(
			`/api/admin/consultations${qs ? `?${qs}` : ""}`,
		);
	},
 
	updateConsultationStatus(id: number, status: ConsultationBookingStatus) {
		return request<ConsultationBooking>(`/api/admin/consultations/${id}`, {
			method: "PATCH",
			body: { status },
		});
	},
};