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.

75 lines (74 loc) 3.1 kB
/** * @fileoverview Client for managing users in the Sharetribe Integration API. * * This privileged API allows querying users, updating profiles, approving accounts, * and managing permissions — typically used by admin tools or backend services. * * @see https://www.sharetribe.com/api-reference/integration.html#users */ import type { AxiosResponse } from "axios"; import IntegrationApi from "./index"; import { ExtraParameter, UsersApproveParameter, UsersQueryParameter, UsersResponse, UsersShowParameter, UsersUpdatePermissionsParameter, UsersUpdateProfileParameter } from "../../types"; /** * Users API client (privileged) */ declare class Users { readonly authRequired = true; private readonly axios; private readonly endpoint; private readonly headers; constructor(api: IntegrationApi); /** * Fetch a single user by ID or email * * @template P * @param {P & UsersShowParameter<true>} params - Either `id` or `email` is required * @returns {Promise<AxiosResponse<UsersResponse<"show", P>>>} * * @example * const { data } = await sdk.users.show({ id: "user-abc123" }); * const { data: userByEmail } = await sdk.users.show({ email: "john@example.com" }); */ show<P extends UsersShowParameter<true>>(params: P): Promise<AxiosResponse<UsersResponse<"show", P, { expand: true; }>>>; /** * Query users with privileged filters * * @template P * @param {P & UsersQueryParameter} params * @returns {Promise<AxiosResponse<UsersResponse<"query", P>>>} */ query<P extends UsersQueryParameter>(params: P): Promise<AxiosResponse<UsersResponse<"query", P>>>; /** * Update a user's profile * * @template P * @template EP * @param {P & UsersUpdateProfileParameter} params * @param {EP} [extraParams] * @returns {Promise<AxiosResponse<UsersResponse<"updateProfile", P, EP>>>} */ updateProfile<P extends UsersUpdateProfileParameter, EP extends ExtraParameter | undefined = undefined>(params: P, extraParams?: EP): Promise<AxiosResponse<UsersResponse<"updateProfile", P, EP>>>; /** * Approve a pending user account * * @template P * @template EP * @param {P & UsersApproveParameter} params * @param {EP} [extraParams] * @returns {Promise<AxiosResponse<UsersResponse<"approve", P, EP>>>} */ approve<P extends UsersApproveParameter, EP extends ExtraParameter | undefined = undefined>(params: P, extraParams?: EP): Promise<AxiosResponse<UsersResponse<"approve", P, EP>>>; /** * Update a user's permissions * * @template P * @template EP * @param {P & UsersUpdatePermissionsParameter} params * @param {EP} [extraParams] * @returns {Promise<AxiosResponse<UsersResponse<"updatePermissions", P, EP>>>} */ updatePermissions<P extends UsersUpdatePermissionsParameter, EP extends ExtraParameter | undefined = undefined>(params: P, extraParams?: EP): Promise<AxiosResponse<UsersResponse<"updatePermissions", P, EP>>>; } export default Users;