@vansite/ts-sharetribe-flex-sdk
Version:
This is a TypeScript SDK for Sharetribe Flex API. It reduces the complexity of the API and provides a more user-friendly interface.
52 lines (51 loc) • 1.75 kB
TypeScript
/**
* @fileoverview Client for querying reviews in the Sharetribe Marketplace API.
*
* Use this to fetch your own reviews or reviews for listings you own.
* Only returns reviews the current user is authorized to see.
*
* @see https://www.sharetribe.com/api-reference/marketplace.html#reviews
*/
import type { AxiosResponse } from "axios";
import MarketplaceApi from "./index";
import { ReviewsQueryParameter, ReviewsResponse, ReviewsShowParameter } from "../../types";
/**
* Reviews API client (own reviews only)
*/
declare class Reviews {
readonly authRequired = true;
private readonly axios;
private readonly endpoint;
private readonly headers;
constructor(api: MarketplaceApi);
/**
* Fetch a single review by ID
*
* @template P
* @param {P & ReviewsShowParameter} params
* @returns {Promise<AxiosResponse<ReviewsResponse<"show", P>>>}
*
* @example
* const { data } = await sdk.reviews.show({ id: "rev-abc123" });
*/
show<P extends ReviewsShowParameter>(params: P): Promise<AxiosResponse<ReviewsResponse<"show", P, {
expand: true;
}>>>;
/**
* Query your own reviews or reviews for your listings
*
* @template P
* @param {P & ReviewsQueryParameter} params
* @returns {Promise<AxiosResponse<ReviewsResponse<"query", P>>>}
*
* @example
* // All reviews you've received
* const { data } = await sdk.reviews.query({ subjectId: "current" });
*
* @example
* // Reviews for one of your listings
* await sdk.reviews.query({ listingId: "listing-abc123" });
*/
query<P extends ReviewsQueryParameter>(params: P): Promise<AxiosResponse<ReviewsResponse<"query", P>>>;
}
export default Reviews;