committed by
GitHub
29 changed files with 1346 additions and 26 deletions
@ -0,0 +1,29 @@ |
|||
import * as fs from "fs"; |
|||
|
|||
const filePath = "./openapi.json"; |
|||
|
|||
fs.readFile(filePath, (err, data) => { |
|||
const openapiContent = JSON.parse(data); |
|||
if (err) throw err; |
|||
|
|||
const paths = openapiContent.paths; |
|||
|
|||
Object.keys(paths).forEach((pathKey) => { |
|||
const pathData = paths[pathKey]; |
|||
Object.keys(pathData).forEach((method) => { |
|||
const operation = pathData[method]; |
|||
if (operation.tags && operation.tags.length > 0) { |
|||
const tag = operation.tags[0]; |
|||
const operationId = operation.operationId; |
|||
const toRemove = `${tag}-`; |
|||
if (operationId.startsWith(toRemove)) { |
|||
const newOperationId = operationId.substring(toRemove.length); |
|||
operation.operationId = newOperationId; |
|||
} |
|||
} |
|||
}); |
|||
}); |
|||
fs.writeFile(filePath, JSON.stringify(openapiContent, null, 2), (err) => { |
|||
if (err) throw err; |
|||
}); |
|||
}); |
@ -0,0 +1,25 @@ |
|||
/* generated using openapi-typescript-codegen -- do no edit */ |
|||
/* istanbul ignore file */ |
|||
/* tslint:disable */ |
|||
/* eslint-disable */ |
|||
import type { ApiRequestOptions } from './ApiRequestOptions'; |
|||
import type { ApiResult } from './ApiResult'; |
|||
|
|||
export class ApiError extends Error { |
|||
public readonly url: string; |
|||
public readonly status: number; |
|||
public readonly statusText: string; |
|||
public readonly body: any; |
|||
public readonly request: ApiRequestOptions; |
|||
|
|||
constructor(request: ApiRequestOptions, response: ApiResult, message: string) { |
|||
super(message); |
|||
|
|||
this.name = 'ApiError'; |
|||
this.url = response.url; |
|||
this.status = response.status; |
|||
this.statusText = response.statusText; |
|||
this.body = response.body; |
|||
this.request = request; |
|||
} |
|||
} |
@ -0,0 +1,17 @@ |
|||
/* generated using openapi-typescript-codegen -- do no edit */ |
|||
/* istanbul ignore file */ |
|||
/* tslint:disable */ |
|||
/* eslint-disable */ |
|||
export type ApiRequestOptions = { |
|||
readonly method: 'GET' | 'PUT' | 'POST' | 'DELETE' | 'OPTIONS' | 'HEAD' | 'PATCH'; |
|||
readonly url: string; |
|||
readonly path?: Record<string, any>; |
|||
readonly cookies?: Record<string, any>; |
|||
readonly headers?: Record<string, any>; |
|||
readonly query?: Record<string, any>; |
|||
readonly formData?: Record<string, any>; |
|||
readonly body?: any; |
|||
readonly mediaType?: string; |
|||
readonly responseHeader?: string; |
|||
readonly errors?: Record<number, string>; |
|||
}; |
@ -0,0 +1,11 @@ |
|||
/* generated using openapi-typescript-codegen -- do no edit */ |
|||
/* istanbul ignore file */ |
|||
/* tslint:disable */ |
|||
/* eslint-disable */ |
|||
export type ApiResult = { |
|||
readonly url: string; |
|||
readonly ok: boolean; |
|||
readonly status: number; |
|||
readonly statusText: string; |
|||
readonly body: any; |
|||
}; |
@ -0,0 +1,131 @@ |
|||
/* generated using openapi-typescript-codegen -- do no edit */ |
|||
/* istanbul ignore file */ |
|||
/* tslint:disable */ |
|||
/* eslint-disable */ |
|||
export class CancelError extends Error { |
|||
|
|||
constructor(message: string) { |
|||
super(message); |
|||
this.name = 'CancelError'; |
|||
} |
|||
|
|||
public get isCancelled(): boolean { |
|||
return true; |
|||
} |
|||
} |
|||
|
|||
export interface OnCancel { |
|||
readonly isResolved: boolean; |
|||
readonly isRejected: boolean; |
|||
readonly isCancelled: boolean; |
|||
|
|||
(cancelHandler: () => void): void; |
|||
} |
|||
|
|||
export class CancelablePromise<T> implements Promise<T> { |
|||
#isResolved: boolean; |
|||
#isRejected: boolean; |
|||
#isCancelled: boolean; |
|||
readonly #cancelHandlers: (() => void)[]; |
|||
readonly #promise: Promise<T>; |
|||
#resolve?: (value: T | PromiseLike<T>) => void; |
|||
#reject?: (reason?: any) => void; |
|||
|
|||
constructor( |
|||
executor: ( |
|||
resolve: (value: T | PromiseLike<T>) => void, |
|||
reject: (reason?: any) => void, |
|||
onCancel: OnCancel |
|||
) => void |
|||
) { |
|||
this.#isResolved = false; |
|||
this.#isRejected = false; |
|||
this.#isCancelled = false; |
|||
this.#cancelHandlers = []; |
|||
this.#promise = new Promise<T>((resolve, reject) => { |
|||
this.#resolve = resolve; |
|||
this.#reject = reject; |
|||
|
|||
const onResolve = (value: T | PromiseLike<T>): void => { |
|||
if (this.#isResolved || this.#isRejected || this.#isCancelled) { |
|||
return; |
|||
} |
|||
this.#isResolved = true; |
|||
this.#resolve?.(value); |
|||
}; |
|||
|
|||
const onReject = (reason?: any): void => { |
|||
if (this.#isResolved || this.#isRejected || this.#isCancelled) { |
|||
return; |
|||
} |
|||
this.#isRejected = true; |
|||
this.#reject?.(reason); |
|||
}; |
|||
|
|||
const onCancel = (cancelHandler: () => void): void => { |
|||
if (this.#isResolved || this.#isRejected || this.#isCancelled) { |
|||
return; |
|||
} |
|||
this.#cancelHandlers.push(cancelHandler); |
|||
}; |
|||
|
|||
Object.defineProperty(onCancel, 'isResolved', { |
|||
get: (): boolean => this.#isResolved, |
|||
}); |
|||
|
|||
Object.defineProperty(onCancel, 'isRejected', { |
|||
get: (): boolean => this.#isRejected, |
|||
}); |
|||
|
|||
Object.defineProperty(onCancel, 'isCancelled', { |
|||
get: (): boolean => this.#isCancelled, |
|||
}); |
|||
|
|||
return executor(onResolve, onReject, onCancel as OnCancel); |
|||
}); |
|||
} |
|||
|
|||
get [Symbol.toStringTag]() { |
|||
return "Cancellable Promise"; |
|||
} |
|||
|
|||
public then<TResult1 = T, TResult2 = never>( |
|||
onFulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null, |
|||
onRejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null |
|||
): Promise<TResult1 | TResult2> { |
|||
return this.#promise.then(onFulfilled, onRejected); |
|||
} |
|||
|
|||
public catch<TResult = never>( |
|||
onRejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null |
|||
): Promise<T | TResult> { |
|||
return this.#promise.catch(onRejected); |
|||
} |
|||
|
|||
public finally(onFinally?: (() => void) | null): Promise<T> { |
|||
return this.#promise.finally(onFinally); |
|||
} |
|||
|
|||
public cancel(): void { |
|||
if (this.#isResolved || this.#isRejected || this.#isCancelled) { |
|||
return; |
|||
} |
|||
this.#isCancelled = true; |
|||
if (this.#cancelHandlers.length) { |
|||
try { |
|||
for (const cancelHandler of this.#cancelHandlers) { |
|||
cancelHandler(); |
|||
} |
|||
} catch (error) { |
|||
console.warn('Cancellation threw an error', error); |
|||
return; |
|||
} |
|||
} |
|||
this.#cancelHandlers.length = 0; |
|||
this.#reject?.(new CancelError('Request aborted')); |
|||
} |
|||
|
|||
public get isCancelled(): boolean { |
|||
return this.#isCancelled; |
|||
} |
|||
} |
@ -0,0 +1,32 @@ |
|||
/* generated using openapi-typescript-codegen -- do no edit */ |
|||
/* istanbul ignore file */ |
|||
/* tslint:disable */ |
|||
/* eslint-disable */ |
|||
import type { ApiRequestOptions } from './ApiRequestOptions'; |
|||
|
|||
type Resolver<T> = (options: ApiRequestOptions) => Promise<T>; |
|||
type Headers = Record<string, string>; |
|||
|
|||
export type OpenAPIConfig = { |
|||
BASE: string; |
|||
VERSION: string; |
|||
WITH_CREDENTIALS: boolean; |
|||
CREDENTIALS: 'include' | 'omit' | 'same-origin'; |
|||
TOKEN?: string | Resolver<string> | undefined; |
|||
USERNAME?: string | Resolver<string> | undefined; |
|||
PASSWORD?: string | Resolver<string> | undefined; |
|||
HEADERS?: Headers | Resolver<Headers> | undefined; |
|||
ENCODE_PATH?: ((path: string) => string) | undefined; |
|||
}; |
|||
|
|||
export const OpenAPI: OpenAPIConfig = { |
|||
BASE: '', |
|||
VERSION: '0.1.0', |
|||
WITH_CREDENTIALS: false, |
|||
CREDENTIALS: 'include', |
|||
TOKEN: undefined, |
|||
USERNAME: undefined, |
|||
PASSWORD: undefined, |
|||
HEADERS: undefined, |
|||
ENCODE_PATH: undefined, |
|||
}; |
@ -0,0 +1,319 @@ |
|||
/* generated using openapi-typescript-codegen -- do no edit */ |
|||
/* istanbul ignore file */ |
|||
/* tslint:disable */ |
|||
/* eslint-disable */ |
|||
import axios from 'axios'; |
|||
import type { AxiosError, AxiosRequestConfig, AxiosResponse, AxiosInstance } from 'axios'; |
|||
import FormData from 'form-data'; |
|||
|
|||
import { ApiError } from './ApiError'; |
|||
import type { ApiRequestOptions } from './ApiRequestOptions'; |
|||
import type { ApiResult } from './ApiResult'; |
|||
import { CancelablePromise } from './CancelablePromise'; |
|||
import type { OnCancel } from './CancelablePromise'; |
|||
import type { OpenAPIConfig } from './OpenAPI'; |
|||
|
|||
export const isDefined = <T>(value: T | null | undefined): value is Exclude<T, null | undefined> => { |
|||
return value !== undefined && value !== null; |
|||
}; |
|||
|
|||
export const isString = (value: any): value is string => { |
|||
return typeof value === 'string'; |
|||
}; |
|||
|
|||
export const isStringWithValue = (value: any): value is string => { |
|||
return isString(value) && value !== ''; |
|||
}; |
|||
|
|||
export const isBlob = (value: any): value is Blob => { |
|||
return ( |
|||
typeof value === 'object' && |
|||
typeof value.type === 'string' && |
|||
typeof value.stream === 'function' && |
|||
typeof value.arrayBuffer === 'function' && |
|||
typeof value.constructor === 'function' && |
|||
typeof value.constructor.name === 'string' && |
|||
/^(Blob|File)$/.test(value.constructor.name) && |
|||
/^(Blob|File)$/.test(value[Symbol.toStringTag]) |
|||
); |
|||
}; |
|||
|
|||
export const isFormData = (value: any): value is FormData => { |
|||
return value instanceof FormData; |
|||
}; |
|||
|
|||
export const isSuccess = (status: number): boolean => { |
|||
return status >= 200 && status < 300; |
|||
}; |
|||
|
|||
export const base64 = (str: string): string => { |
|||
try { |
|||
return btoa(str); |
|||
} catch (err) { |
|||
// @ts-ignore
|
|||
return Buffer.from(str).toString('base64'); |
|||
} |
|||
}; |
|||
|
|||
export const getQueryString = (params: Record<string, any>): string => { |
|||
const qs: string[] = []; |
|||
|
|||
const append = (key: string, value: any) => { |
|||
qs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`); |
|||
}; |
|||
|
|||
const process = (key: string, value: any) => { |
|||
if (isDefined(value)) { |
|||
if (Array.isArray(value)) { |
|||
value.forEach(v => { |
|||
process(key, v); |
|||
}); |
|||
} else if (typeof value === 'object') { |
|||
Object.entries(value).forEach(([k, v]) => { |
|||
process(`${key}[${k}]`, v); |
|||
}); |
|||
} else { |
|||
append(key, value); |
|||
} |
|||
} |
|||
}; |
|||
|
|||
Object.entries(params).forEach(([key, value]) => { |
|||
process(key, value); |
|||
}); |
|||
|
|||
if (qs.length > 0) { |
|||
return `?${qs.join('&')}`; |
|||
} |
|||
|
|||
return ''; |
|||
}; |
|||
|
|||
const getUrl = (config: OpenAPIConfig, options: ApiRequestOptions): string => { |
|||
const encoder = config.ENCODE_PATH || encodeURI; |
|||
|
|||
const path = options.url |
|||
.replace('{api-version}', config.VERSION) |
|||
.replace(/{(.*?)}/g, (substring: string, group: string) => { |
|||
if (options.path?.hasOwnProperty(group)) { |
|||
return encoder(String(options.path[group])); |
|||
} |
|||
return substring; |
|||
}); |
|||
|
|||
const url = `${config.BASE}${path}`; |
|||
if (options.query) { |
|||
return `${url}${getQueryString(options.query)}`; |
|||
} |
|||
return url; |
|||
}; |
|||
|
|||
export const getFormData = (options: ApiRequestOptions): FormData | undefined => { |
|||
if (options.formData) { |
|||
const formData = new FormData(); |
|||
|
|||
const process = (key: string, value: any) => { |
|||
if (isString(value) || isBlob(value)) { |
|||
formData.append(key, value); |
|||
} else { |
|||
formData.append(key, JSON.stringify(value)); |
|||
} |
|||
}; |
|||
|
|||
Object.entries(options.formData) |
|||
.filter(([_, value]) => isDefined(value)) |
|||
.forEach(([key, value]) => { |
|||
if (Array.isArray(value)) { |
|||
value.forEach(v => process(key, v)); |
|||
} else { |
|||
process(key, value); |
|||
} |
|||
}); |
|||
|
|||
return formData; |
|||
} |
|||
return undefined; |
|||
}; |
|||
|
|||
type Resolver<T> = (options: ApiRequestOptions) => Promise<T>; |
|||
|
|||
export const resolve = async <T>(options: ApiRequestOptions, resolver?: T | Resolver<T>): Promise<T | undefined> => { |
|||
if (typeof resolver === 'function') { |
|||
return (resolver as Resolver<T>)(options); |
|||
} |
|||
return resolver; |
|||
}; |
|||
|
|||
export const getHeaders = async (config: OpenAPIConfig, options: ApiRequestOptions, formData?: FormData): Promise<Record<string, string>> => { |
|||
const token = await resolve(options, config.TOKEN); |
|||
const username = await resolve(options, config.USERNAME); |
|||
const password = await resolve(options, config.PASSWORD); |
|||
const additionalHeaders = await resolve(options, config.HEADERS); |
|||
const formHeaders = typeof formData?.getHeaders === 'function' && formData?.getHeaders() || {} |
|||
|
|||
const headers = Object.entries({ |
|||
Accept: 'application/json', |
|||
...additionalHeaders, |
|||
...options.headers, |
|||
...formHeaders, |
|||
}) |
|||
.filter(([_, value]) => isDefined(value)) |
|||
.reduce((headers, [key, value]) => ({ |
|||
...headers, |
|||
[key]: String(value), |
|||
}), {} as Record<string, string>); |
|||
|
|||
if (isStringWithValue(token)) { |
|||
headers['Authorization'] = `Bearer ${token}`; |
|||
} |
|||
|
|||
if (isStringWithValue(username) && isStringWithValue(password)) { |
|||
const credentials = base64(`${username}:${password}`); |
|||
headers['Authorization'] = `Basic ${credentials}`; |
|||
} |
|||
|
|||
if (options.body) { |
|||
if (options.mediaType) { |
|||
headers['Content-Type'] = options.mediaType; |
|||
} else if (isBlob(options.body)) { |
|||
headers['Content-Type'] = options.body.type || 'application/octet-stream'; |
|||
} else if (isString(options.body)) { |
|||
headers['Content-Type'] = 'text/plain'; |
|||
} else if (!isFormData(options.body)) { |
|||
headers['Content-Type'] = 'application/json'; |
|||
} |
|||
} |
|||
|
|||
return headers; |
|||
}; |
|||
|
|||
export const getRequestBody = (options: ApiRequestOptions): any => { |
|||
if (options.body) { |
|||
return options.body; |
|||
} |
|||
return undefined; |
|||
}; |
|||
|
|||
export const sendRequest = async <T>( |
|||
config: OpenAPIConfig, |
|||
options: ApiRequestOptions, |
|||
url: string, |
|||
body: any, |
|||
formData: FormData | undefined, |
|||
headers: Record<string, string>, |
|||
onCancel: OnCancel, |
|||
axiosClient: AxiosInstance |
|||
): Promise<AxiosResponse<T>> => { |
|||
const source = axios.CancelToken.source(); |
|||
|
|||
const requestConfig: AxiosRequestConfig = { |
|||
url, |
|||
headers, |
|||
data: body ?? formData, |
|||
method: options.method, |
|||
withCredentials: config.WITH_CREDENTIALS, |
|||
cancelToken: source.token, |
|||
}; |
|||
|
|||
onCancel(() => source.cancel('The user aborted a request.')); |
|||
|
|||
try { |
|||
return await axiosClient.request(requestConfig); |
|||
} catch (error) { |
|||
const axiosError = error as AxiosError<T>; |
|||
if (axiosError.response) { |
|||
return axiosError.response; |
|||
} |
|||
throw error; |
|||
} |
|||
}; |
|||
|
|||
export const getResponseHeader = (response: AxiosResponse<any>, responseHeader?: string): string | undefined => { |
|||
if (responseHeader) { |
|||
const content = response.headers[responseHeader]; |
|||
if (isString(content)) { |
|||
return content; |
|||
} |
|||
} |
|||
return undefined; |
|||
}; |
|||
|
|||
export const getResponseBody = (response: AxiosResponse<any>): any => { |
|||
if (response.status !== 204) { |
|||
return response.data; |
|||
} |
|||
return undefined; |
|||
}; |
|||
|
|||
export const catchErrorCodes = (options: ApiRequestOptions, result: ApiResult): void => { |
|||
const errors: Record<number, string> = { |
|||
400: 'Bad Request', |
|||
401: 'Unauthorized', |
|||
403: 'Forbidden', |
|||
404: 'Not Found', |
|||
500: 'Internal Server Error', |
|||
502: 'Bad Gateway', |
|||
503: 'Service Unavailable', |
|||
...options.errors, |
|||
} |
|||
|
|||
const error = errors[result.status]; |
|||
if (error) { |
|||
throw new ApiError(options, result, error); |
|||
} |
|||
|
|||
if (!result.ok) { |
|||
const errorStatus = result.status ?? 'unknown'; |
|||
const errorStatusText = result.statusText ?? 'unknown'; |
|||
const errorBody = (() => { |
|||
try { |
|||
return JSON.stringify(result.body, null, 2); |
|||
} catch (e) { |
|||
return undefined; |
|||
} |
|||
})(); |
|||
|
|||
throw new ApiError(options, result, |
|||
`Generic Error: status: ${errorStatus}; status text: ${errorStatusText}; body: ${errorBody}` |
|||
); |
|||
} |
|||
}; |
|||
|
|||
/** |
|||
* Request method |
|||
* @param config The OpenAPI configuration object |
|||
* @param options The request options from the service |
|||
* @param axiosClient The axios client instance to use |
|||
* @returns CancelablePromise<T> |
|||
* @throws ApiError |
|||
*/ |
|||
export const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions, axiosClient: AxiosInstance = axios): CancelablePromise<T> => { |
|||
return new CancelablePromise(async (resolve, reject, onCancel) => { |
|||
try { |
|||
const url = getUrl(config, options); |
|||
const formData = getFormData(options); |
|||
const body = getRequestBody(options); |
|||
const headers = await getHeaders(config, options, formData); |
|||
|
|||
if (!onCancel.isCancelled) { |
|||
const response = await sendRequest<T>(config, options, url, body, formData, headers, onCancel, axiosClient); |
|||
const responseBody = getResponseBody(response); |
|||
const responseHeader = getResponseHeader(response, options.responseHeader); |
|||
|
|||
const result: ApiResult = { |
|||
url, |
|||
ok: isSuccess(response.status), |
|||
status: response.status, |
|||
statusText: response.statusText, |
|||
body: responseHeader ?? responseBody, |
|||
}; |
|||
|
|||
catchErrorCodes(options, result); |
|||
|
|||
resolve(result.body); |
|||
} |
|||
} catch (error) { |
|||
reject(error); |
|||
} |
|||
}); |
|||
}; |
@ -0,0 +1,27 @@ |
|||
/* generated using openapi-typescript-codegen -- do no edit */ |
|||
/* istanbul ignore file */ |
|||
/* tslint:disable */ |
|||
/* eslint-disable */ |
|||
export { ApiError } from './core/ApiError'; |
|||
export { CancelablePromise, CancelError } from './core/CancelablePromise'; |
|||
export { OpenAPI } from './core/OpenAPI'; |
|||
export type { OpenAPIConfig } from './core/OpenAPI'; |
|||
|
|||
export type { Body_login_login_access_token } from './models/Body_login_login_access_token'; |
|||
export type { Body_login_reset_password } from './models/Body_login_reset_password'; |
|||
export type { HTTPValidationError } from './models/HTTPValidationError'; |
|||
export type { ItemCreate } from './models/ItemCreate'; |
|||
export type { ItemOut } from './models/ItemOut'; |
|||
export type { ItemUpdate } from './models/ItemUpdate'; |
|||
export type { Msg } from './models/Msg'; |
|||
export type { Token } from './models/Token'; |
|||
export type { User } from './models/User'; |
|||
export type { UserCreate } from './models/UserCreate'; |
|||
export type { UserCreateOpen } from './models/UserCreateOpen'; |
|||
export type { UserOut } from './models/UserOut'; |
|||
export type { ValidationError } from './models/ValidationError'; |
|||
|
|||
export { ItemsService } from './services/ItemsService'; |
|||
export { LoginService } from './services/LoginService'; |
|||
export { UsersService } from './services/UsersService'; |
|||
export { UtilsService } from './services/UtilsService'; |
@ -0,0 +1,13 @@ |
|||
/* generated using openapi-typescript-codegen -- do no edit */ |
|||
/* istanbul ignore file */ |
|||
/* tslint:disable */ |
|||
/* eslint-disable */ |
|||
|
|||
export type Body_login_login_access_token = { |
|||
grant_type?: string; |
|||
username: string; |
|||
password: string; |
|||
scope?: string; |
|||
client_id?: string; |
|||
client_secret?: string; |
|||
}; |
@ -0,0 +1,9 @@ |
|||
/* generated using openapi-typescript-codegen -- do no edit */ |
|||
/* istanbul ignore file */ |
|||
/* tslint:disable */ |
|||
/* eslint-disable */ |
|||
|
|||
export type Body_login_reset_password = { |
|||
token: string; |
|||
new_password: string; |
|||
}; |
@ -0,0 +1,10 @@ |
|||
/* generated using openapi-typescript-codegen -- do no edit */ |
|||
/* istanbul ignore file */ |
|||
/* tslint:disable */ |
|||
/* eslint-disable */ |
|||
|
|||
import type { ValidationError } from './ValidationError'; |
|||
|
|||
export type HTTPValidationError = { |
|||
detail?: Array<ValidationError>; |
|||
}; |
@ -0,0 +1,9 @@ |
|||
/* generated using openapi-typescript-codegen -- do no edit */ |
|||
/* istanbul ignore file */ |
|||
/* tslint:disable */ |
|||
/* eslint-disable */ |
|||
|
|||
export type ItemCreate = { |
|||
title: string; |
|||
description?: string; |
|||
}; |
@ -0,0 +1,10 @@ |
|||
/* generated using openapi-typescript-codegen -- do no edit */ |
|||
/* istanbul ignore file */ |
|||
/* tslint:disable */ |
|||
/* eslint-disable */ |
|||
|
|||
export type ItemOut = { |
|||
title: string; |
|||
description?: string; |
|||
id: number; |
|||
}; |
@ -0,0 +1,9 @@ |
|||
/* generated using openapi-typescript-codegen -- do no edit */ |
|||
/* istanbul ignore file */ |
|||
/* tslint:disable */ |
|||
/* eslint-disable */ |
|||
|
|||
export type ItemUpdate = { |
|||
title?: string; |
|||
description?: string; |
|||
}; |
@ -0,0 +1,8 @@ |
|||
/* generated using openapi-typescript-codegen -- do no edit */ |
|||
/* istanbul ignore file */ |
|||
/* tslint:disable */ |
|||
/* eslint-disable */ |
|||
|
|||
export type Msg = { |
|||
msg: string; |
|||
}; |
@ -0,0 +1,9 @@ |
|||
/* generated using openapi-typescript-codegen -- do no edit */ |
|||
/* istanbul ignore file */ |
|||
/* tslint:disable */ |
|||
/* eslint-disable */ |
|||
|
|||
export type Token = { |
|||
access_token: string; |
|||
token_type: string; |
|||
}; |
@ -0,0 +1,12 @@ |
|||
/* generated using openapi-typescript-codegen -- do no edit */ |
|||
/* istanbul ignore file */ |
|||
/* tslint:disable */ |
|||
/* eslint-disable */ |
|||
|
|||
export type User = { |
|||
email?: string; |
|||
is_active?: boolean; |
|||
is_superuser?: boolean; |
|||
full_name?: string; |
|||
id?: number; |
|||
}; |
@ -0,0 +1,12 @@ |
|||
/* generated using openapi-typescript-codegen -- do no edit */ |
|||
/* istanbul ignore file */ |
|||
/* tslint:disable */ |
|||
/* eslint-disable */ |
|||
|
|||
export type UserCreate = { |
|||
email: string; |
|||
is_active?: boolean; |
|||
is_superuser?: boolean; |
|||
full_name?: string; |
|||
password: string; |
|||
}; |
@ -0,0 +1,10 @@ |
|||
/* generated using openapi-typescript-codegen -- do no edit */ |
|||
/* istanbul ignore file */ |
|||
/* tslint:disable */ |
|||
/* eslint-disable */ |
|||
|
|||
export type UserCreateOpen = { |
|||
email: string; |
|||
password: string; |
|||
full_name?: string; |
|||
}; |
@ -0,0 +1,12 @@ |
|||
/* generated using openapi-typescript-codegen -- do no edit */ |
|||
/* istanbul ignore file */ |
|||
/* tslint:disable */ |
|||
/* eslint-disable */ |
|||
|
|||
export type UserOut = { |
|||
email: string; |
|||
is_active?: boolean; |
|||
is_superuser?: boolean; |
|||
full_name?: string; |
|||
id: number; |
|||
}; |
@ -0,0 +1,10 @@ |
|||
/* generated using openapi-typescript-codegen -- do no edit */ |
|||
/* istanbul ignore file */ |
|||
/* tslint:disable */ |
|||
/* eslint-disable */ |
|||
|
|||
export type ValidationError = { |
|||
loc: Array<(string | number)>; |
|||
msg: string; |
|||
type: string; |
|||
}; |
@ -0,0 +1,136 @@ |
|||
/* generated using openapi-typescript-codegen -- do no edit */ |
|||
/* istanbul ignore file */ |
|||
/* tslint:disable */ |
|||
/* eslint-disable */ |
|||
import type { ItemCreate } from '../models/ItemCreate'; |
|||
import type { ItemOut } from '../models/ItemOut'; |
|||
import type { ItemUpdate } from '../models/ItemUpdate'; |
|||
|
|||
import type { CancelablePromise } from '../core/CancelablePromise'; |
|||
import { OpenAPI } from '../core/OpenAPI'; |
|||
import { request as __request } from '../core/request'; |
|||
|
|||
export class ItemsService { |
|||
|
|||
/** |
|||
* Read Items |
|||
* Retrieve items. |
|||
* @returns ItemOut Successful Response |
|||
* @throws ApiError |
|||
*/ |
|||
public static readItems({ |
|||
skip, |
|||
limit = 100, |
|||
}: { |
|||
skip?: number, |
|||
limit?: number, |
|||
}): CancelablePromise<Array<ItemOut>> { |
|||
return __request(OpenAPI, { |
|||
method: 'GET', |
|||
url: '/api/v1/items/', |
|||
query: { |
|||
'skip': skip, |
|||
'limit': limit, |
|||
}, |
|||
errors: { |
|||
422: `Validation Error`, |
|||
}, |
|||
}); |
|||
} |
|||
|
|||
/** |
|||
* Create Item |
|||
* Create new item. |
|||
* @returns ItemOut Successful Response |
|||
* @throws ApiError |
|||
*/ |
|||
public static createItem({ |
|||
requestBody, |
|||
}: { |
|||
requestBody: ItemCreate, |
|||
}): CancelablePromise<ItemOut> { |
|||
return __request(OpenAPI, { |
|||
method: 'POST', |
|||
url: '/api/v1/items/', |
|||
body: requestBody, |
|||
mediaType: 'application/json', |
|||
errors: { |
|||
422: `Validation Error`, |
|||
}, |
|||
}); |
|||
} |
|||
|
|||
/** |
|||
* Read Item |
|||
* Get item by ID. |
|||
* @returns ItemOut Successful Response |
|||
* @throws ApiError |
|||
*/ |
|||
public static readItem({ |
|||
id, |
|||
}: { |
|||
id: number, |
|||
}): CancelablePromise<ItemOut> { |
|||
return __request(OpenAPI, { |
|||
method: 'GET', |
|||
url: '/api/v1/items/{id}', |
|||
path: { |
|||
'id': id, |
|||
}, |
|||
errors: { |
|||
422: `Validation Error`, |
|||
}, |
|||
}); |
|||
} |
|||
|
|||
/** |
|||
* Update Item |
|||
* Update an item. |
|||
* @returns ItemOut Successful Response |
|||
* @throws ApiError |
|||
*/ |
|||
public static updateItem({ |
|||
id, |
|||
requestBody, |
|||
}: { |
|||
id: number, |
|||
requestBody: ItemUpdate, |
|||
}): CancelablePromise<ItemOut> { |
|||
return __request(OpenAPI, { |
|||
method: 'PUT', |
|||
url: '/api/v1/items/{id}', |
|||
path: { |
|||
'id': id, |
|||
}, |
|||
body: requestBody, |
|||
mediaType: 'application/json', |
|||
errors: { |
|||
422: `Validation Error`, |
|||
}, |
|||
}); |
|||
} |
|||
|
|||
/** |
|||
* Delete Item |
|||
* Delete an item. |
|||
* @returns ItemOut Successful Response |
|||
* @throws ApiError |
|||
*/ |
|||
public static deleteItem({ |
|||
id, |
|||
}: { |
|||
id: number, |
|||
}): CancelablePromise<ItemOut> { |
|||
return __request(OpenAPI, { |
|||
method: 'DELETE', |
|||
url: '/api/v1/items/{id}', |
|||
path: { |
|||
'id': id, |
|||
}, |
|||
errors: { |
|||
422: `Validation Error`, |
|||
}, |
|||
}); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,97 @@ |
|||
/* generated using openapi-typescript-codegen -- do no edit */ |
|||
/* istanbul ignore file */ |
|||
/* tslint:disable */ |
|||
/* eslint-disable */ |
|||
import type { Body_login_login_access_token } from '../models/Body_login_login_access_token'; |
|||
import type { Body_login_reset_password } from '../models/Body_login_reset_password'; |
|||
import type { Msg } from '../models/Msg'; |
|||
import type { Token } from '../models/Token'; |
|||
import type { User } from '../models/User'; |
|||
|
|||
import type { CancelablePromise } from '../core/CancelablePromise'; |
|||
import { OpenAPI } from '../core/OpenAPI'; |
|||
import { request as __request } from '../core/request'; |
|||
|
|||
export class LoginService { |
|||
|
|||
/** |
|||
* Login Access Token |
|||
* OAuth2 compatible token login, get an access token for future requests |
|||
* @returns Token Successful Response |
|||
* @throws ApiError |
|||
*/ |
|||
public static loginAccessToken({ |
|||
formData, |
|||
}: { |
|||
formData: Body_login_login_access_token, |
|||
}): CancelablePromise<Token> { |
|||
return __request(OpenAPI, { |
|||
method: 'POST', |
|||
url: '/api/v1/login/access-token', |
|||
formData: formData, |
|||
mediaType: 'application/x-www-form-urlencoded', |
|||
errors: { |
|||
422: `Validation Error`, |
|||
}, |
|||
}); |
|||
} |
|||
|
|||
/** |
|||
* Test Token |
|||
* Test access token |
|||
* @returns User Successful Response |
|||
* @throws ApiError |
|||
*/ |
|||
public static testToken(): CancelablePromise<User> { |
|||
return __request(OpenAPI, { |
|||
method: 'POST', |
|||
url: '/api/v1/login/test-token', |
|||
}); |
|||
} |
|||
|
|||
/** |
|||
* Recover Password |
|||
* Password Recovery |
|||
* @returns Msg Successful Response |
|||
* @throws ApiError |
|||
*/ |
|||
public static recoverPassword({ |
|||
email, |
|||
}: { |
|||
email: string, |
|||
}): CancelablePromise<Msg> { |
|||
return __request(OpenAPI, { |
|||
method: 'POST', |
|||
url: '/api/v1/password-recovery/{email}', |
|||
path: { |
|||
'email': email, |
|||
}, |
|||
errors: { |
|||
422: `Validation Error`, |
|||
}, |
|||
}); |
|||
} |
|||
|
|||
/** |
|||
* Reset Password |
|||
* Reset password |
|||
* @returns Msg Successful Response |
|||
* @throws ApiError |
|||
*/ |
|||
public static resetPassword({ |
|||
requestBody, |
|||
}: { |
|||
requestBody: Body_login_reset_password, |
|||
}): CancelablePromise<Msg> { |
|||
return __request(OpenAPI, { |
|||
method: 'POST', |
|||
url: '/api/v1/reset-password/', |
|||
body: requestBody, |
|||
mediaType: 'application/json', |
|||
errors: { |
|||
422: `Validation Error`, |
|||
}, |
|||
}); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,121 @@ |
|||
/* generated using openapi-typescript-codegen -- do no edit */ |
|||
/* istanbul ignore file */ |
|||
/* tslint:disable */ |
|||
/* eslint-disable */ |
|||
import type { UserCreate } from '../models/UserCreate'; |
|||
import type { UserCreateOpen } from '../models/UserCreateOpen'; |
|||
import type { UserOut } from '../models/UserOut'; |
|||
|
|||
import type { CancelablePromise } from '../core/CancelablePromise'; |
|||
import { OpenAPI } from '../core/OpenAPI'; |
|||
import { request as __request } from '../core/request'; |
|||
|
|||
export class UsersService { |
|||
|
|||
/** |
|||
* Read Users |
|||
* Retrieve users. |
|||
* @returns UserOut Successful Response |
|||
* @throws ApiError |
|||
*/ |
|||
public static readUsers({ |
|||
skip, |
|||
limit = 100, |
|||
}: { |
|||
skip?: number, |
|||
limit?: number, |
|||
}): CancelablePromise<Array<UserOut>> { |
|||
return __request(OpenAPI, { |
|||
method: 'GET', |
|||
url: '/api/v1/users/', |
|||
query: { |
|||
'skip': skip, |
|||
'limit': limit, |
|||
}, |
|||
errors: { |
|||
422: `Validation Error`, |
|||
}, |
|||
}); |
|||
} |
|||
|
|||
/** |
|||
* Create User |
|||
* Create new user. |
|||
* @returns UserOut Successful Response |
|||
* @throws ApiError |
|||
*/ |
|||
public static createUser({ |
|||
requestBody, |
|||
}: { |
|||
requestBody: UserCreate, |
|||
}): CancelablePromise<UserOut> { |
|||
return __request(OpenAPI, { |
|||
method: 'POST', |
|||
url: '/api/v1/users/', |
|||
body: requestBody, |
|||
mediaType: 'application/json', |
|||
errors: { |
|||
422: `Validation Error`, |
|||
}, |
|||
}); |
|||
} |
|||
|
|||
/** |
|||
* Read User Me |
|||
* Get current user. |
|||
* @returns UserOut Successful Response |
|||
* @throws ApiError |
|||
*/ |
|||
public static readUserMe(): CancelablePromise<UserOut> { |
|||
return __request(OpenAPI, { |
|||
method: 'GET', |
|||
url: '/api/v1/users/me', |
|||
}); |
|||
} |
|||
|
|||
/** |
|||
* Create User Open |
|||
* Create new user without the need to be logged in. |
|||
* @returns UserOut Successful Response |
|||
* @throws ApiError |
|||
*/ |
|||
public static createUserOpen({ |
|||
requestBody, |
|||
}: { |
|||
requestBody: UserCreateOpen, |
|||
}): CancelablePromise<UserOut> { |
|||
return __request(OpenAPI, { |
|||
method: 'POST', |
|||
url: '/api/v1/users/open', |
|||
body: requestBody, |
|||
mediaType: 'application/json', |
|||
errors: { |
|||
422: `Validation Error`, |
|||
}, |
|||
}); |
|||
} |
|||
|
|||
/** |
|||
* Read User By Id |
|||
* Get a specific user by id. |
|||
* @returns UserOut Successful Response |
|||
* @throws ApiError |
|||
*/ |
|||
public static readUserById({ |
|||
userId, |
|||
}: { |
|||
userId: number, |
|||
}): CancelablePromise<UserOut> { |
|||
return __request(OpenAPI, { |
|||
method: 'GET', |
|||
url: '/api/v1/users/{user_id}', |
|||
path: { |
|||
'user_id': userId, |
|||
}, |
|||
errors: { |
|||
422: `Validation Error`, |
|||
}, |
|||
}); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,58 @@ |
|||
/* generated using openapi-typescript-codegen -- do no edit */ |
|||
/* istanbul ignore file */ |
|||
/* tslint:disable */ |
|||
/* eslint-disable */ |
|||
import type { Msg } from '../models/Msg'; |
|||
|
|||
import type { CancelablePromise } from '../core/CancelablePromise'; |
|||
import { OpenAPI } from '../core/OpenAPI'; |
|||
import { request as __request } from '../core/request'; |
|||
|
|||
export class UtilsService { |
|||
|
|||
/** |
|||
* Test Celery |
|||
* Test Celery worker. |
|||
* @returns Msg Successful Response |
|||
* @throws ApiError |
|||
*/ |
|||
public static testCelery({ |
|||
requestBody, |
|||
}: { |
|||
requestBody: Msg, |
|||
}): CancelablePromise<Msg> { |
|||
return __request(OpenAPI, { |
|||
method: 'POST', |
|||
url: '/api/v1/utils/test-celery/', |
|||
body: requestBody, |
|||
mediaType: 'application/json', |
|||
errors: { |
|||
422: `Validation Error`, |
|||
}, |
|||
}); |
|||
} |
|||
|
|||
/** |
|||
* Test Email |
|||
* Test emails. |
|||
* @returns Msg Successful Response |
|||
* @throws ApiError |
|||
*/ |
|||
public static testEmail({ |
|||
emailTo, |
|||
}: { |
|||
emailTo: string, |
|||
}): CancelablePromise<Msg> { |
|||
return __request(OpenAPI, { |
|||
method: 'POST', |
|||
url: '/api/v1/utils/test-email/', |
|||
query: { |
|||
'email_to': emailTo, |
|||
}, |
|||
errors: { |
|||
422: `Validation Error`, |
|||
}, |
|||
}); |
|||
} |
|||
|
|||
} |
Loading…
Reference in new issue