This commit is contained in:
@@ -5,14 +5,16 @@ import { ApiResponse } from "../types";
|
||||
import {
|
||||
TTenderDetails,
|
||||
TTenderDocumentsResponse,
|
||||
TTenderListParams,
|
||||
TTenderListMeta,
|
||||
TTenderResponse,
|
||||
TTenderTranslationResponse,
|
||||
} from "../types/Tenders";
|
||||
|
||||
export const tendersService = {
|
||||
tendersList: async (
|
||||
params?: Record<string, any>,
|
||||
): Promise<ApiResponse<TTenderResponse>> => {
|
||||
params?: TTenderListParams,
|
||||
): Promise<ApiResponse<TTenderResponse, TTenderListMeta>> => {
|
||||
try {
|
||||
return (
|
||||
await api.get(API_ENDPOINTS.TENDERS.READ_ALL, {
|
||||
@@ -30,7 +32,8 @@ export const tendersService = {
|
||||
params?: Record<string, any>,
|
||||
): Promise<ApiResponse<TTenderDetails>> => {
|
||||
try {
|
||||
return (await api.get(API_ENDPOINTS.TENDERS.DETAILS(id), { params })).data;
|
||||
return (await api.get(API_ENDPOINTS.TENDERS.DETAILS(id), { params }))
|
||||
.data;
|
||||
} catch (error) {
|
||||
console.error(
|
||||
"ERROR caught in Tender Service => tender details: ",
|
||||
@@ -53,12 +56,17 @@ export const tendersService = {
|
||||
})
|
||||
).data;
|
||||
} catch (error) {
|
||||
console.error("ERROR caught in Tender Service => translate tender: ", error);
|
||||
console.error(
|
||||
"ERROR caught in Tender Service => translate tender: ",
|
||||
error,
|
||||
);
|
||||
throw error;
|
||||
}
|
||||
},
|
||||
|
||||
getDocuments: async (id: string): Promise<ApiResponse<TTenderDocumentsResponse[]>> => {
|
||||
getDocuments: async (
|
||||
id: string,
|
||||
): Promise<ApiResponse<TTenderDocumentsResponse[]>> => {
|
||||
try {
|
||||
return (await api.get(API_ENDPOINTS.TENDERS.DOCUMENTS(id))).data;
|
||||
} catch (error) {
|
||||
|
||||
@@ -123,9 +123,33 @@ export const TendersResponse = z.object({
|
||||
tenders: z.array(TenderSchema).or(z.null()),
|
||||
});
|
||||
|
||||
export type TTenderDocumentsResponse = z.infer<typeof TenderDocumentsResponseSchema>;
|
||||
export type TTenderDocumentsResponse = z.infer<
|
||||
typeof TenderDocumentsResponseSchema
|
||||
>;
|
||||
export type TTenderResponse = z.infer<typeof TendersResponse>;
|
||||
export type TTenderDetails = z.infer<typeof TenderSchema>;
|
||||
export interface TTenderListParams {
|
||||
limit?: number;
|
||||
offset?: number;
|
||||
cursor?: string;
|
||||
include_total?: boolean;
|
||||
sort_by?: string;
|
||||
sort_order?: "asc" | "desc";
|
||||
q?: string;
|
||||
status?: string[];
|
||||
country?: string;
|
||||
documents_scraped?: boolean;
|
||||
[key: string]: unknown;
|
||||
}
|
||||
export interface TTenderListMeta {
|
||||
limit: number;
|
||||
offset: number;
|
||||
has_more: boolean;
|
||||
next_cursor?: string;
|
||||
total?: number;
|
||||
page?: number;
|
||||
pages?: number;
|
||||
}
|
||||
export type TTenderTranslationResponse = z.infer<
|
||||
typeof TenderTranslationResponseSchema
|
||||
>;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { IMetaData } from "./Factory";
|
||||
|
||||
export interface ApiResponse<T> {
|
||||
export interface ApiResponse<T, TMeta = IMetaData> {
|
||||
data: T;
|
||||
message: string;
|
||||
code?: number;
|
||||
meta?: IMetaData;
|
||||
meta?: TMeta;
|
||||
success: boolean;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user