UNPKG

@bit-ui-libs/common

Version:
59 lines (46 loc) 1.72 kB
import { BaseService, BaseServiceOptions } from '../../api/services/base-service'; import { createQueryParams } from '../../common'; import { Listing, ListingWithAsset } from '../interfaces'; import { EditPriceRequest, GetListingsReportRequest, SearchListingsRequest, SearchListingsResponse, } from './listing.service.interfaces'; export class ListingService extends BaseService { listingApiUrl: string; constructor(opts: BaseServiceOptions) { super(opts); this.listingApiUrl = `${this.apiUrl}/marketplace/v1/listings`; } search(req: SearchListingsRequest = {}) { return this.get<SearchListingsResponse>(this.listingApiUrl, req); } editPrice(req: EditPriceRequest) { return this.put<Listing, EditPriceRequest>(this.listingApiUrl, req); } reportDownloadUrl(req: GetListingsReportRequest) { return this.get<SearchListingsResponse, GetListingsReportRequest>(`${this.listingApiUrl}/reports`, req); } getById(id: string) { return this.get<Listing>(`${this.listingApiUrl}/${id}`); } removeById(id: string) { return this.delete<Listing>(`${this.listingApiUrl}/${id}`); } getPublic(id: string) { return this.get<Listing>(`${this.listingApiUrl}/${id}/public`); } getByAssetId(assetId: string) { return this.get<ListingWithAsset>(`${this.listingApiUrl}/${assetId}/asset`); } getPublicByAssetId(assetId: string) { return this.get<ListingWithAsset>(`${this.listingApiUrl}/${assetId}/public`); } removeByAssetId(assetId: string) { return this.delete<void>(`${this.listingApiUrl}/${assetId}/asset`); } listingView(listingId: string) { return this.put<boolean, object>(`${this.listingApiUrl}/${listingId}/viewed`, {}); } }