@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
TypeScript
/**
* @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;