UNPKG

@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.

108 lines 4.79 kB
/** * @fileoverview Provides the Users class for managing user data in the Sharetribe Integration API. * This class allows retrieving details about a specific user. * * For more details, refer to the Integration API documentation: * https://www.sharetribe.com/api-reference/integration.html#users */ import { AxiosResponse } from "axios"; import IntegrationApi from "./index"; import { UsersApproveParameter, UsersQueryParameter, UsersResponse, UsersShowParameter, UsersUpdatePermissionsParameter, UsersUpdateProfileParameter } from "../../types/marketplace/user"; import { ExtraParameter } from "../../types/sharetribe"; /** * Class representing the Users API. * * The Users API provides methods to retrieve user data for marketplace resources. */ declare class Users { private readonly endpoint; private readonly axios; private readonly headers; /** * Creates an instance of the Users class. * * @param {IntegrationApi} api - The Integration API instance providing configuration and request handling. */ constructor(api: IntegrationApi); /** * Retrieves details about a specific user. * * @template P * @param {P & UsersShowParameter} params - The parameters to identify the user. * @returns {Promise<AxiosResponse<UsersResponse<'show', P, undefined, true>>>} - A promise resolving to the user details. * * @example * const response = await integrationSdk.users.show({ * id: 'user-id', * }); * * const userDetails = response.data; */ show<P extends UsersShowParameter<true>>(params: P): Promise<AxiosResponse<UsersResponse<"show", P, undefined, true>>>; /** * Queries users based on specified filters. * * @template P * @param {P & UsersQueryParameter} params - Query parameters for filtering users. * @returns {Promise<AxiosResponse<UsersResponse<'query', P, undefined, true>>>} - A promise resolving to the list of users. * * @example * const response = await integrationSdk.users.query({ * createdAtStart: '2021-01-01T00:00:00Z' * }); * const users = response.data; */ query<P extends UsersQueryParameter>(params: P): Promise<AxiosResponse<UsersResponse<"query", P, undefined, true>>>; /** * Updates a user's profile. * * @template P * @template EP * @param {P & UsersUpdateProfileParameter} params - Parameters to update the user's profile. * @param {EP | void} extraParams - Optional extra parameters for the request. * @returns {Promise<AxiosResponse<UsersResponse<'updateProfile', P, EP, true>>>} - A promise resolving to the updated profile details. * * @example * const response = await integrationSdk.users.updateProfile({ * id: 'user-id', * firstName: 'John', * lastName: 'Doe', * displayName: 'John Doe', * }); * const updatedProfile = response.data; */ updateProfile<P extends UsersUpdateProfileParameter, EP extends ExtraParameter>(params: P, extraParams?: EP): Promise<AxiosResponse<UsersResponse<"updateProfile", P, EP, true>>>; /** * Approves a user. * * @template P * @template EP * @param {P & UsersApproveParameter} params - Parameters to approve the user. * @param {EP | void} extraParams - Optional extra parameters for the request. * @returns {Promise<AxiosResponse<UsersResponse<'approve', P, EP, true>>>} - A promise resolving to the approval confirmation. * * @example * const response = await integrationSdk.users.approve({ id: 'user-id' }); * const approvalResult = response.data; */ approve<P extends UsersApproveParameter, EP extends ExtraParameter>(params: P, extraParams?: EP): Promise<AxiosResponse<UsersResponse<"approve", P, EP, true>>>; /** * Updates a user's permissions. * * @template P * @template EP * @param {P & UsersUpdatePermissionsParameter} params - Parameters to update the user's permissions. * @param {EP | void} extraParams - Optional extra parameters for the request. * @returns {Promise<AxiosResponse<UsersResponse<'updatePermissions', P, EP, true>>>} - A promise resolving to the updated permissions details. * * @example * const response = await integrationSdk.users.updatePermissions( * { id: 'user-id', permissions: ['permission-1', 'permission-2'] }, * { additionalParam: 'value' } * ); * const updatedPermissions = response.data; */ updatePermissions<P extends UsersUpdatePermissionsParameter, EP extends ExtraParameter>(params: P, extraParams?: EP): Promise<AxiosResponse<UsersResponse<"updatePermissions", P, EP, true>>>; } export default Users; //# sourceMappingURL=Users.d.ts.map