xpeditis2.0/apps/frontend/src/lib/api/rates.ts
2025-10-30 00:47:18 +01:00

52 lines
1.3 KiB
TypeScript

/**
* Rates API
*
* Endpoints for searching shipping rates (both API and CSV-based)
*/
import { post } from './client';
import type {
RateSearchRequest,
RateSearchResponse,
CsvRateSearchRequest,
CsvRateSearchResponse,
AvailableCompaniesResponse,
FilterOptionsResponse,
} from '@/types/api';
/**
* Search shipping rates (API-based)
* POST /api/v1/rates/search
*/
export async function searchRates(
data: RateSearchRequest
): Promise<RateSearchResponse> {
return post<RateSearchResponse>('/api/v1/rates/search', data);
}
/**
* Search CSV-based rates with detailed pricing
* POST /api/v1/rates/csv/search
*/
export async function searchCsvRates(
data: CsvRateSearchRequest
): Promise<CsvRateSearchResponse> {
return post<CsvRateSearchResponse>('/api/v1/rates/csv/search', data);
}
/**
* Get available companies for filtering
* GET /api/v1/rates/csv/companies
*/
export async function getAvailableCompanies(): Promise<AvailableCompaniesResponse> {
return post<AvailableCompaniesResponse>('/api/v1/rates/csv/companies');
}
/**
* Get filter options (companies, container types, currencies)
* GET /api/v1/rates/csv/filter-options
*/
export async function getFilterOptions(): Promise<FilterOptionsResponse> {
return post<FilterOptionsResponse>('/api/v1/rates/csv/filter-options');
}