@bit-ui-libs/common
Version:
This library was generated with [Nx](https://nx.dev).
59 lines (46 loc) • 1.72 kB
text/typescript
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`, {});
}
}