UNPKG

@kubb/plugin-client

Version:

API client generator plugin for Kubb, creating type-safe HTTP clients (Axios, Fetch) from OpenAPI specifications for making API requests.

148 lines (138 loc) 4.95 kB
/** * Generated by Kubb (https://kubb.dev/). * Do not edit manually. */ import type { RequestConfig, ResponseErrorConfig } from './test/.kubb/fetch' import type { CreateUserMutationRequest, CreateUserMutationResponse, CreateUsersWithListInputMutationRequest, CreateUsersWithListInputMutationResponse, LoginUserQueryResponse, LoginUserQueryParams, LoginUser400, LogoutUserQueryResponse, GetUserByNameQueryResponse, GetUserByNamePathParams, GetUserByName400, GetUserByName404, UpdateUserMutationRequest, UpdateUserMutationResponse, UpdateUserPathParams, DeleteUserMutationResponse, DeleteUserPathParams, DeleteUser400, DeleteUser404, } from './findByTags' import { fetch } from './test/.kubb/fetch' export class User { #client: typeof fetch constructor(config: Partial<RequestConfig> & { client?: typeof fetch } = {}) { this.#client = config.client || fetch } /** * @description This can only be done by the logged in user. * @summary Create user * {@link /user} */ async createUser(data?: CreateUserMutationRequest, config: Partial<RequestConfig<CreateUserMutationRequest>> & { client?: typeof fetch } = {}) { const { client: request = this.#client, ...requestConfig } = config const requestData = data const res = await request<CreateUserMutationResponse, ResponseErrorConfig<Error>, CreateUserMutationRequest>({ method: 'POST', url: `/user`, data: requestData, ...requestConfig, }) return res.data } /** * @description Creates list of users with given input array * @summary Creates list of users with given input array * {@link /user/createWithList} */ async createUsersWithListInput( data?: CreateUsersWithListInputMutationRequest, config: Partial<RequestConfig<CreateUsersWithListInputMutationRequest>> & { client?: typeof fetch } = {}, ) { const { client: request = this.#client, ...requestConfig } = config const requestData = data const res = await request<CreateUsersWithListInputMutationResponse, ResponseErrorConfig<Error>, CreateUsersWithListInputMutationRequest>({ method: 'POST', url: `/user/createWithList`, data: requestData, ...requestConfig, }) return res.data } /** * @summary Logs user into the system * {@link /user/login} */ async loginUser(params?: LoginUserQueryParams, config: Partial<RequestConfig> & { client?: typeof fetch } = {}) { const { client: request = this.#client, ...requestConfig } = config const res = await request<LoginUserQueryResponse, ResponseErrorConfig<LoginUser400>, unknown>({ method: 'GET', url: `/user/login`, params, ...requestConfig, }) return res.data } /** * @summary Logs out current logged in user session * {@link /user/logout} */ async logoutUser(config: Partial<RequestConfig> & { client?: typeof fetch } = {}) { const { client: request = this.#client, ...requestConfig } = config const res = await request<LogoutUserQueryResponse, ResponseErrorConfig<Error>, unknown>({ method: 'GET', url: `/user/logout`, ...requestConfig }) return res.data } /** * @summary Get user by user name * {@link /user/:username} */ async getUserByName(username: GetUserByNamePathParams['username'], config: Partial<RequestConfig> & { client?: typeof fetch } = {}) { const { client: request = this.#client, ...requestConfig } = config const res = await request<GetUserByNameQueryResponse, ResponseErrorConfig<GetUserByName400 | GetUserByName404>, unknown>({ method: 'GET', url: `/user/${username}`, ...requestConfig, }) return res.data } /** * @description This can only be done by the logged in user. * @summary Update user * {@link /user/:username} */ async updateUser( username: UpdateUserPathParams['username'], data?: UpdateUserMutationRequest, config: Partial<RequestConfig<UpdateUserMutationRequest>> & { client?: typeof fetch } = {}, ) { const { client: request = this.#client, ...requestConfig } = config const requestData = data const res = await request<UpdateUserMutationResponse, ResponseErrorConfig<Error>, UpdateUserMutationRequest>({ method: 'PUT', url: `/user/${username}`, data: requestData, ...requestConfig, }) return res.data } /** * @description This can only be done by the logged in user. * @summary Delete user * {@link /user/:username} */ async deleteUser(username: DeleteUserPathParams['username'], config: Partial<RequestConfig> & { client?: typeof fetch } = {}) { const { client: request = this.#client, ...requestConfig } = config const res = await request<DeleteUserMutationResponse, ResponseErrorConfig<DeleteUser400 | DeleteUser404>, unknown>({ method: 'DELETE', url: `/user/${username}`, ...requestConfig, }) return res.data } }