UNPKG

@bit-ui-libs/common

Version:
94 lines (77 loc) 2.76 kB
import { BaseService, BaseServiceOptions } from '../../api/services/base-service'; import { PagedResponse } from '../../common'; import { Order, OrderStatistics, OrderStore, Question, SalesTax, SalesTaxRequest, ShippingCost, ShippingCostReq, TotalSales, } from '../interfaces'; import { SearchListingsResponse } from './listing.service.interfaces'; import { CancelOrderRequest, DeliveredRequest, GetOrdersReportRequest, GetOrdersRequest, GetSalesStatsRequest, GetTotalSalesRequest, OrderPaymentDetailsRequest, OrderPaymentDetailsResponse, OrderPaymentRequest, SearchOrderStoreRequest, SearchQuestionRequest, ShippingOrderRequest, } from './order.service.interfaces'; export class OrdersService extends BaseService { orderApiUrl: string; constructor(opts: BaseServiceOptions) { super(opts); this.orderApiUrl = `${this.apiUrl}/marketplace/v1/orders`; } reportDownloadUrl(req: GetOrdersReportRequest) { return this.get<SearchListingsResponse, GetOrdersReportRequest>(`${this.orderApiUrl}/reports/order`, req); } search(req: GetOrdersRequest = {}) { return this.get<PagedResponse<Order>, GetOrdersRequest>(this.orderApiUrl, req); } searchStore(req: SearchOrderStoreRequest = {}) { return this.get<PagedResponse<OrderStore>, SearchOrderStoreRequest>(`${this.orderApiUrl}/search-store`, req); } searchQuestion(req: SearchQuestionRequest = {}) { return this.get<PagedResponse<Question>>(`${this.orderApiUrl}/search-question`, req); } orderPayment(req: OrderPaymentRequest) { return this.post<Order, OrderPaymentRequest>(`${this.orderApiUrl}/order-payment`, req); } shipping(req: ShippingOrderRequest) { return this.put<Order, ShippingOrderRequest>(`${this.orderApiUrl}/shipping`, req); } delivered(req: DeliveredRequest) { return this.put<Order, DeliveredRequest>(`${this.orderApiUrl}/delivered`, req); } cancel(req: CancelOrderRequest) { return this.put<Order, CancelOrderRequest>(`${this.orderApiUrl}/${req.id}/cancel`, req); } getById(id: string) { return this.get<Order>(`${this.orderApiUrl}/${id}`); } totalSales(req: GetTotalSalesRequest) { return this.get<TotalSales>(`${this.orderApiUrl}/total-sales`, req); } salesTax(req: SalesTaxRequest) { return this.get<SalesTax>(`${this.orderApiUrl}/sales-tax`, req); } shippingCost(req: ShippingCostReq) { return this.get<ShippingCost[]>(`${this.orderApiUrl}/shipping-cost`, req); } stats(req: GetSalesStatsRequest) { return this.get<OrderStatistics[]>(`${this.orderApiUrl}/stats`, req); } getPaymentDetails(req: OrderPaymentDetailsRequest) { return this.get<OrderPaymentDetailsResponse>(`${this.orderApiUrl}/payment-details`, req); } }