@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.
121 lines • 5.58 kB
TypeScript
/**
* @fileoverview Provides the Transactions class for managing transactions in the Sharetribe Integration API.
* This class allows querying, transitioning, and updating metadata for transactions.
*
* For more details, refer to the Integration API documentation:
* https://www.sharetribe.com/api-reference/integration.html#transactions
*/
import { AxiosResponse } from "axios";
import IntegrationApi from "./index";
import { TransactionsQueryParameter, TransactionsResponse, TransactionsShowParameter, TransactionsTransitionParameter, TransactionsTransitionSpeculativeParameter, TransactionsUpdateMetadataParameter } from "../../types/marketplace/transactions";
import { ExtraParameter } from "../../types/sharetribe";
/**
* Class representing the Transactions API.
*
* The Transactions API provides methods to query, transition, and manage metadata for marketplace transactions.
*/
declare class Transactions {
private readonly endpoint;
private readonly axios;
private readonly headers;
readonly authRequired = true;
/**
* Creates an instance of the Transactions class.
*
* @param {IntegrationApi} api - The Integration API instance providing configuration and request handling.
*/
constructor(api: IntegrationApi);
/**
* Retrieves details about a specific transaction.
*
* @template P
* @param {P & TransactionsShowParameter} params - The parameters to identify the transaction.
* @returns {Promise<AxiosResponse<TransactionsResponse<'show', P>>>} - A promise resolving to the transaction details.
*
* @example
* const response = await integrationSdk.transactions.show({
* id: 'transaction-id',
* });
*
* const transactionDetails = response.data;
*/
show<P extends TransactionsShowParameter>(params: P): Promise<AxiosResponse<TransactionsResponse<"show", P>>>;
/**
* Queries transactions based on specified filters.
*
* @template P
* @param {P & TransactionsQueryParameter<true>} params - Query parameters to filter transactions.
* @returns {Promise<AxiosResponse<TransactionsResponse<'query', P>>>} - A promise resolving to the query results.
*
* @example
* const response = await integrationSdk.transactions.query({
* createdAtStart: '2021-01-01T00:00:00Z',
* createdAtEnd: '2021-01-31T23:59:59Z',
* userId: 'user-id',
* customerId: 'customer-id',
* providerId: 'provider-id',
* listingId: 'listing-id',
* });
*
* const transactions = response.data;
*/
query<P extends TransactionsQueryParameter<true>>(params: P): Promise<AxiosResponse<TransactionsResponse<"query", P>>>;
/**
* Transitions a transaction to a new state.
*
* @template P
* @template EP
* @param {P & TransactionsTransitionParameter} params - Parameters specifying the transaction and the transition.
* @param {EP | void} extraParams - Optional extra parameters for the request.
* @returns {Promise<AxiosResponse<TransactionsResponse<'transition', P, EP>>>} - A promise resolving to the transitioned transaction.
*
* @example
* const response = await integrationSdk.transactions.transition({
* id: 'transaction-id',
* transition: 'accept',
* params: { key: 'value' },
* });
*
* const updatedTransaction = response.data;
*/
transition<P extends TransactionsTransitionParameter, EP extends ExtraParameter>(params: P, extraParams?: EP | void): Promise<AxiosResponse<TransactionsResponse<"transition", P, EP>>>;
/**
* Transitions a transaction speculatively to a new state without persisting the transition.
*
* @template P
* @template EP
* @param {P & TransactionsTransitionSpeculativeParameter} params - Parameters specifying the speculative transition.
* @param {EP | void} extraParams - Optional extra parameters for the request.
* @returns {Promise<AxiosResponse<TransactionsResponse<'transitionSpeculative', P, EP>>>} - A promise resolving to the speculative transition result.
*
* @example
* const response = await integrationSdk.transactions.transitionSpeculative({
* id: 'transaction-id',
* transition: 'accept',
* params: { key: 'value' },
* });
*
* const speculativeResult = response.data;
*/
transitionSpeculative<P extends TransactionsTransitionSpeculativeParameter, EP extends ExtraParameter>(params: P, extraParams?: EP | void): Promise<AxiosResponse<TransactionsResponse<"transitionSpeculative", P, EP>>>;
/**
* Updates metadata for a transaction.
*
* @template P
* @template EP
* @param {P & TransactionsUpdateMetadataParameter} params - Parameters specifying the transaction metadata to update.
* @param {EP | void} extraParams - Optional extra parameters for the request.
* @returns {Promise<AxiosResponse<TransactionsResponse<'updateMetadata', P, EP>>>} - A promise resolving to the updated transaction metadata.
*
* @example
* const response = await integrationSdk.transactions.updateMetadata({
* id: 'transaction-id',
* metadata: { key: 'value' },
* });
*
* const updatedMetadata = response.data;
*/
updateMetadata<P extends TransactionsUpdateMetadataParameter, EP extends ExtraParameter>(params: P, extraParams?: EP | void): Promise<AxiosResponse<TransactionsResponse<"updateMetadata", P, EP>>>;
}
export default Transactions;
//# sourceMappingURL=Transactions.d.ts.map