From 795bcb6ab1c2d82abc3ee180e5e80e3b3253782c Mon Sep 17 00:00:00 2001 From: arraysid Date: Mon, 19 May 2025 13:33:09 +0700 Subject: [PATCH] feat: add open api client and types for API integration --- apps/landing/src/lib/openapi.ts | 6 + apps/landing/src/openapi-types.ts | 1338 +++++++++++++++++++++++++++++ package-lock.json | 16 + package.json | 2 + 4 files changed, 1362 insertions(+) create mode 100644 apps/landing/src/lib/openapi.ts create mode 100644 apps/landing/src/openapi-types.ts diff --git a/apps/landing/src/lib/openapi.ts b/apps/landing/src/lib/openapi.ts new file mode 100644 index 0000000..ccb6809 --- /dev/null +++ b/apps/landing/src/lib/openapi.ts @@ -0,0 +1,6 @@ +import type { paths } from '@/openapi-types'; +import createClient from 'openapi-fetch'; + +export const fetcher = createClient({ + baseUrl: 'https://api.imphnen.dev', +}); diff --git a/apps/landing/src/openapi-types.ts b/apps/landing/src/openapi-types.ts new file mode 100644 index 0000000..6125769 --- /dev/null +++ b/apps/landing/src/openapi-types.ts @@ -0,0 +1,1338 @@ +/** + * This file was auto-generated by openapi-typescript. + * Do not make direct changes to the file. + */ + +export interface paths { + "/v1/auth/forgot": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["post_forgot_password"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/auth/login": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["post_login"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/auth/new-password": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["post_new_password"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/auth/refresh": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["post_refresh_token"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/auth/register": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["post_register"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/auth/send-otp": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["post_resend_otp"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/auth/verify-email": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["post_verify_email"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/permissions": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["get_permission_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/permissions/create": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["post_create_permission"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/permissions/delete/{id}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete: operations["delete_permission"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/permissions/detail/{id}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["get_permission_by_id"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/permissions/update/{id}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put: operations["put_update_permission"]; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/roles": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["get_role_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/roles/create": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["post_create_role"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/roles/delete/{id}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete: operations["delete_role"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/roles/detail/{id}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["get_role_by_id"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/roles/update/{id}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put: operations["put_update_role"]; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/users": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["get_user_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/users/activate/{id}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put: operations["patch_user_active_status"]; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/users/create": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["post_create_user"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/users/delete/{id}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete: operations["delete_user"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/users/detail/{id}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["get_user_by_id"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/users/me": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["get_user_me"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/users/update/me": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put: operations["put_update_user_me"]; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/users/update/{id}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put: operations["put_update_user"]; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; +} +export type webhooks = Record; +export interface components { + schemas: { + AuthLoginRequestDto: { + email: string; + password: string; + }; + AuthLoginResponsetDto: { + token: components["schemas"]["TokenDto"]; + user: components["schemas"]["AuthUserItemDto"]; + }; + AuthNewPasswordRequestDto: { + password: string; + token: string; + }; + AuthRefreshTokenRequestDto: { + refresh_token: string; + }; + AuthRegisterRequestDto: { + email: string; + fullname: string; + password: string; + phone_number: string; + referral_code?: string | null; + referred_by?: string | null; + student_type: string; + }; + AuthResendOtpRequestDto: { + email: string; + }; + AuthUserItemDto: { + avatar?: string | null; + birthdate?: string | null; + email: string; + fullname: string; + gender?: string | null; + id: string; + is_active: boolean; + phone_number: string; + role: components["schemas"]["RolesItemDto"]; + }; + AuthVerifyEmailRequestDto: { + email: string; + /** Format: int32 */ + otp: number; + }; + MessageResponseDto: { + message: string; + version: string; + }; + MetaRequestDto: { + filter?: string | null; + filter_by?: string | null; + order?: string | null; + /** Format: int64 */ + page?: number | null; + /** Format: int64 */ + per_page?: number | null; + search?: string | null; + sort_by?: string | null; + }; + MetaResponseDto: { + /** Format: int64 */ + page?: number | null; + /** Format: int64 */ + per_page?: number | null; + /** Format: int64 */ + total?: number | null; + }; + PermissionsItemDto: { + created_at?: string | null; + id: string; + name: string; + updated_at?: string | null; + }; + PermissionsRequestDto: { + name: string; + }; + ResponseListSuccessDto_Vec_PermissionsItemDto: { + data: { + created_at?: string | null; + id: string; + name: string; + updated_at?: string | null; + }[]; + meta?: null | components["schemas"]["MetaResponseDto"]; + }; + ResponseListSuccessDto_Vec_RolesItemDto: { + data: { + created_at?: string | null; + id: string; + name: string; + permissions: components["schemas"]["PermissionsItemDto"][]; + updated_at?: string | null; + }[]; + meta?: null | components["schemas"]["MetaResponseDto"]; + }; + ResponseListSuccessDto_Vec_UsersListItemDto: { + data: { + avatar?: string | null; + created_at: string; + email: string; + fullname: string; + id: string; + is_active: boolean; + phone_number: string; + role: string; + updated_at: string; + }[]; + meta?: null | components["schemas"]["MetaResponseDto"]; + }; + ResponseSuccessDto_AuthLoginResponsetDto: { + data: { + token: components["schemas"]["TokenDto"]; + user: components["schemas"]["AuthUserItemDto"]; + }; + }; + ResponseSuccessDto_PermissionsItemDto: { + data: { + created_at?: string | null; + id: string; + name: string; + updated_at?: string | null; + }; + }; + ResponseSuccessDto_RolesItemDto: { + data: { + created_at?: string | null; + id: string; + name: string; + permissions: components["schemas"]["PermissionsItemDto"][]; + updated_at?: string | null; + }; + }; + ResponseSuccessDto_TokenDto: { + data: { + access_token: string; + refresh_token: string; + }; + }; + ResponseSuccessDto_UsersDetailItemDto: { + data: { + avatar?: string | null; + birthdate?: string | null; + email: string; + fullname: string; + gender?: string | null; + id: string; + is_active: boolean; + phone_number: string; + role: components["schemas"]["RolesItemDto"]; + }; + }; + RolesItemDto: { + created_at?: string | null; + id: string; + name: string; + permissions: components["schemas"]["PermissionsItemDto"][]; + updated_at?: string | null; + }; + RolesRequestCreateDto: { + name: string; + permissions: string[]; + }; + RolesRequestUpdateDto: { + name?: string | null; + permissions?: string[] | null; + }; + TokenDto: { + access_token: string; + refresh_token: string; + }; + UsersActiveInactiveRequestDto: { + is_active: boolean; + }; + UsersCreateRequestDto: { + email: string; + fullname: string; + is_active: boolean; + password: string; + phone_number: string; + role_id: string; + }; + UsersDetailItemDto: { + avatar?: string | null; + birthdate?: string | null; + email: string; + fullname: string; + gender?: string | null; + id: string; + is_active: boolean; + phone_number: string; + role: components["schemas"]["RolesItemDto"]; + }; + UsersItemDto: { + avatar?: string | null; + birthdate?: string | null; + created_at: string; + email: string; + fullname: string; + gender?: string | null; + id: string; + is_active: boolean; + is_deleted: boolean; + password: string; + phone_number: string; + role: components["schemas"]["RolesItemDto"]; + updated_at: string; + }; + UsersListItemDto: { + avatar?: string | null; + created_at: string; + email: string; + fullname: string; + id: string; + is_active: boolean; + phone_number: string; + role: string; + updated_at: string; + }; + UsersUpdateRequestDto: { + avatar?: string | null; + birthdate?: string | null; + email: string; + fullname: string; + gender?: string | null; + is_active: boolean; + phone_number: string; + role_id: string; + }; + }; + responses: never; + parameters: never; + requestBodies: never; + headers: never; + pathItems: never; +} +export type $defs = Record; +export interface operations { + post_forgot_password: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["AuthResendOtpRequestDto"]; + }; + }; + responses: { + /** @description Forgot password request successful */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MessageResponseDto"]; + }; + }; + /** @description Forgot password request failed */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MessageResponseDto"]; + }; + }; + }; + }; + post_login: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["AuthLoginRequestDto"]; + }; + }; + responses: { + /** @description Login successful */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ResponseSuccessDto_AuthLoginResponsetDto"]; + }; + }; + /** @description Login failed */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MessageResponseDto"]; + }; + }; + }; + }; + post_new_password: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["AuthNewPasswordRequestDto"]; + }; + }; + responses: { + /** @description New password request successful */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MessageResponseDto"]; + }; + }; + /** @description New password request failed */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MessageResponseDto"]; + }; + }; + }; + }; + post_refresh_token: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["AuthRefreshTokenRequestDto"]; + }; + }; + responses: { + /** @description Refresh token request successful */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MessageResponseDto"]; + }; + }; + /** @description Refresh token request failed */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MessageResponseDto"]; + }; + }; + }; + }; + post_register: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["AuthRegisterRequestDto"]; + }; + }; + responses: { + /** @description Register successful */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MessageResponseDto"]; + }; + }; + /** @description Register failed */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MessageResponseDto"]; + }; + }; + }; + }; + post_resend_otp: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["AuthResendOtpRequestDto"]; + }; + }; + responses: { + /** @description Resend otp successful */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MessageResponseDto"]; + }; + }; + /** @description Resend otp failed */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MessageResponseDto"]; + }; + }; + }; + }; + post_verify_email: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["AuthVerifyEmailRequestDto"]; + }; + }; + responses: { + /** @description Verify email successful */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MessageResponseDto"]; + }; + }; + /** @description Verify email failed */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MessageResponseDto"]; + }; + }; + }; + }; + get_permission_list: { + parameters: { + query?: { + /** @description Page number */ + page?: number; + /** @description Items per page */ + per_page?: number; + /** @description Search keyword */ + search?: string; + /** @description Sort by field */ + sort_by?: string; + /** @description Order ASC or DESC */ + order?: string; + /** @description Filter value */ + filter?: string; + /** @description Field to filter by */ + filter_by?: string; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Get permission list */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ResponseListSuccessDto_Vec_PermissionsItemDto"]; + }; + }; + }; + }; + post_create_permission: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["PermissionsRequestDto"]; + }; + }; + responses: { + /** @description Create new permission */ + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MessageResponseDto"]; + }; + }; + }; + }; + delete_permission: { + parameters: { + query?: never; + header?: never; + path: { + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Delete permission */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MessageResponseDto"]; + }; + }; + }; + }; + get_permission_by_id: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Permission ID */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Get permission by ID */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ResponseSuccessDto_PermissionsItemDto"]; + }; + }; + }; + }; + put_update_permission: { + parameters: { + query?: never; + header?: never; + path: { + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["PermissionsRequestDto"]; + }; + }; + responses: { + /** @description Update permission */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MessageResponseDto"]; + }; + }; + }; + }; + get_role_list: { + parameters: { + query?: { + /** @description Page number */ + page?: number; + /** @description Items per page */ + per_page?: number; + /** @description Search keyword */ + search?: string; + /** @description Sort by field */ + sort_by?: string; + /** @description Order ASC or DESC */ + order?: string; + /** @description Filter value */ + filter?: string; + /** @description Field to filter by */ + filter_by?: string; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Get role list */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ResponseListSuccessDto_Vec_RolesItemDto"]; + }; + }; + }; + }; + post_create_role: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["RolesRequestCreateDto"]; + }; + }; + responses: { + /** @description Create new role */ + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MessageResponseDto"]; + }; + }; + }; + }; + delete_role: { + parameters: { + query?: never; + header?: never; + path: { + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Delete role */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MessageResponseDto"]; + }; + }; + }; + }; + get_role_by_id: { + parameters: { + query?: never; + header?: never; + path: { + /** @description Role ID */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Get role by ID */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ResponseSuccessDto_RolesItemDto"]; + }; + }; + }; + }; + put_update_role: { + parameters: { + query?: never; + header?: never; + path: { + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["RolesRequestUpdateDto"]; + }; + }; + responses: { + /** @description Update role */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MessageResponseDto"]; + }; + }; + }; + }; + get_user_list: { + parameters: { + query?: { + /** @description Page number */ + page?: number; + /** @description Items per page */ + per_page?: number; + /** @description Search keyword */ + search?: string; + /** @description Sort by field */ + sort_by?: string; + /** @description Order ASC or DESC */ + order?: string; + /** @description Filter value */ + filter?: string; + /** @description Field to filter by */ + filter_by?: string; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Get user list */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ResponseListSuccessDto_Vec_UsersListItemDto"]; + }; + }; + }; + }; + patch_user_active_status: { + parameters: { + query?: never; + header?: never; + path: { + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["UsersActiveInactiveRequestDto"]; + }; + }; + responses: { + /** @description Set user active/inactive */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MessageResponseDto"]; + }; + }; + }; + }; + post_create_user: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["UsersCreateRequestDto"]; + }; + }; + responses: { + /** @description Create new user */ + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MessageResponseDto"]; + }; + }; + }; + }; + delete_user: { + parameters: { + query?: never; + header?: never; + path: { + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Soft delete user */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MessageResponseDto"]; + }; + }; + }; + }; + get_user_by_id: { + parameters: { + query?: never; + header?: never; + path: { + /** @description User ID */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Get user by ID */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ResponseSuccessDto_UsersDetailItemDto"]; + }; + }; + }; + }; + get_user_me: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Get user by ID */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ResponseSuccessDto_UsersDetailItemDto"]; + }; + }; + }; + }; + put_update_user_me: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["UsersUpdateRequestDto"]; + }; + }; + responses: { + /** @description Update user me */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MessageResponseDto"]; + }; + }; + }; + }; + put_update_user: { + parameters: { + query?: never; + header?: never; + path: { + id: string; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["UsersUpdateRequestDto"]; + }; + }; + responses: { + /** @description Update user */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["MessageResponseDto"]; + }; + }; + }; + }; +} diff --git a/package-lock.json b/package-lock.json index 684ffb3..e6bf20d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,6 +30,7 @@ "js-cookie": "^3.0.5", "next": "~15.2.4", "next-themes": "^0.4.6", + "openapi-fetch": "^0.14.0", "payload": "^3.37.0", "react": "^19.1.0", "react-dom": "^19.1.0", @@ -31047,6 +31048,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/openapi-fetch": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/openapi-fetch/-/openapi-fetch-0.14.0.tgz", + "integrity": "sha512-PshIdm1NgdLvb05zp8LqRQMNSKzIlPkyMxYFxwyHR+UlKD4t2nUjkDhNxeRbhRSEd3x5EUNh2w5sJYwkhOH4fg==", + "license": "MIT", + "dependencies": { + "openapi-typescript-helpers": "^0.0.15" + } + }, + "node_modules/openapi-typescript-helpers": { + "version": "0.0.15", + "resolved": "https://registry.npmjs.org/openapi-typescript-helpers/-/openapi-typescript-helpers-0.0.15.tgz", + "integrity": "sha512-opyTPaunsklCBpTK8JGef6mfPhLSnyy5a0IN9vKtx3+4aExf+KxEqYwIy3hqkedXIB97u357uLMJsOnm3GVjsw==", + "license": "MIT" + }, "node_modules/opener": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", diff --git a/package.json b/package.json index e0c56dd..0b54ee1 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "landing:dev": "nx serve landing", "landing:build": "nx build landing", "landing:prod": "cd ./dist/apps/landing && npx next start", + "landing:openapi": "npx openapi-typescript https://api.imphnen.dev/openapi.json -o ./apps/landing/src/openapi-types.ts", "landing:generate:importmap": "PAYLOAD_CONFIG_PATH=apps/landing/src/payload.config.ts payload generate:importmap", "landing:generate:types": "PAYLOAD_CONFIG_PATH=apps/landing/src/payload.config.ts payload generate:types", "ui:test": "nx test ui", @@ -47,6 +48,7 @@ "js-cookie": "^3.0.5", "next": "~15.2.4", "next-themes": "^0.4.6", + "openapi-fetch": "^0.14.0", "payload": "^3.37.0", "react": "^19.1.0", "react-dom": "^19.1.0",