mirror of
https://github.com/ulitsaRaskolnikova/is-coursework.git
synced 2026-09-12 20:09:58 +05:00
feat(front): init
This commit is contained in:
parent
ba6ee5a491
commit
6cda80f234
@ -19,7 +19,7 @@ dependencies {
|
||||
api("io.jsonwebtoken:jjwt-impl:0.12.3")
|
||||
api("io.jsonwebtoken:jjwt-jackson:0.12.3")
|
||||
|
||||
api("org.springframework.boot:spring-boot-starter-web")
|
||||
compileOnly("org.springframework:spring-web")
|
||||
|
||||
compileOnly("org.projectlombok:lombok")
|
||||
annotationProcessor("org.projectlombok:lombok")
|
||||
|
||||
@ -1,6 +1,19 @@
|
||||
name: is-coursework
|
||||
|
||||
services:
|
||||
frontend:
|
||||
build:
|
||||
context: ./domains-frontend
|
||||
dockerfile: Dockerfile
|
||||
container_name: frontend
|
||||
ports:
|
||||
- "3000:3000"
|
||||
depends_on:
|
||||
- api-gateway
|
||||
- exdns
|
||||
networks:
|
||||
- domain-registrar-network
|
||||
|
||||
api-gateway:
|
||||
build:
|
||||
context: .
|
||||
|
||||
4
domains-frontend/.dockerignore
Normal file
4
domains-frontend/.dockerignore
Normal file
@ -0,0 +1,4 @@
|
||||
node_modules
|
||||
dist
|
||||
.git
|
||||
*.md
|
||||
4
domains-frontend/.prettierignore
Normal file
4
domains-frontend/.prettierignore
Normal file
@ -0,0 +1,4 @@
|
||||
# Lock files
|
||||
package-lock.json
|
||||
pnpm-lock.yaml
|
||||
yarn.lock
|
||||
6
domains-frontend/.prettierrc
Normal file
6
domains-frontend/.prettierrc
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"trailingComma": "es5",
|
||||
"tabWidth": 2,
|
||||
"semi": true,
|
||||
"singleQuote": true
|
||||
}
|
||||
18
domains-frontend/Dockerfile
Normal file
18
domains-frontend/Dockerfile
Normal file
@ -0,0 +1,18 @@
|
||||
FROM node:20-alpine AS build
|
||||
WORKDIR /app
|
||||
|
||||
RUN corepack enable && corepack prepare pnpm@latest --activate
|
||||
|
||||
COPY package.json pnpm-lock.yaml ./
|
||||
RUN pnpm install --frozen-lockfile
|
||||
|
||||
COPY . .
|
||||
RUN pnpm build
|
||||
|
||||
FROM nginx:alpine
|
||||
COPY --from=build /app/dist /usr/share/nginx/html
|
||||
COPY nginx.conf /etc/nginx/conf.d/default.conf
|
||||
|
||||
EXPOSE 3000
|
||||
|
||||
CMD ["nginx", "-g", "daemon off;"]
|
||||
25
domains-frontend/nginx.conf
Normal file
25
domains-frontend/nginx.conf
Normal file
@ -0,0 +1,25 @@
|
||||
server {
|
||||
listen 3000;
|
||||
server_name localhost;
|
||||
|
||||
root /usr/share/nginx/html;
|
||||
index index.html;
|
||||
|
||||
location /api/ {
|
||||
proxy_pass http://api-gateway:8080/api/;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
}
|
||||
|
||||
location /exdns/ {
|
||||
proxy_pass http://exdns:8000/;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
}
|
||||
|
||||
location / {
|
||||
try_files $uri $uri/ /index.html;
|
||||
}
|
||||
}
|
||||
48
domains-frontend/orval.config.ts
Normal file
48
domains-frontend/orval.config.ts
Normal file
@ -0,0 +1,48 @@
|
||||
import { defineConfig } from 'orval';
|
||||
|
||||
export default defineConfig({
|
||||
auth: {
|
||||
// input: 'src/api/specs/auth-openapi.json',
|
||||
input: 'http://localhost:8080/api/auth/v3/api-docs',
|
||||
output: {
|
||||
client: 'axios-functions',
|
||||
target: 'src/api/services/auth.ts',
|
||||
schemas: 'src/api/models/auth',
|
||||
override: {
|
||||
mutator: {
|
||||
path: './src/api/apiClient.ts',
|
||||
name: 'customInstance',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
domainOrder: {
|
||||
// input: 'src/api/specs/domain-order-openapi.json',
|
||||
input: 'http://localhost:8080/api/domains/v3/api-docs',
|
||||
output: {
|
||||
client: 'axios-functions',
|
||||
target: 'src/api/services/domain-order.ts',
|
||||
schemas: 'src/api/models/domain-order',
|
||||
override: {
|
||||
mutator: {
|
||||
path: './src/api/apiClientDomains.ts',
|
||||
name: 'customInstance',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
exdns: {
|
||||
input: 'src/api/specs/exdns.json',
|
||||
output: {
|
||||
client: 'axios-functions',
|
||||
target: 'src/api/services/exdns.ts',
|
||||
schemas: 'src/api/models/exdns',
|
||||
override: {
|
||||
mutator: {
|
||||
path: './src/api/apiClientExdns.ts',
|
||||
name: 'customInstance',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
40
domains-frontend/package.json
Normal file
40
domains-frontend/package.json
Normal file
@ -0,0 +1,40 @@
|
||||
{
|
||||
"name": "domains-frontend",
|
||||
"version": "1.0.0",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"build": "rsbuild build",
|
||||
"dev": "rsbuild dev --open",
|
||||
"format": "prettier --write .",
|
||||
"preview": "rsbuild preview",
|
||||
"genapi": "orval --config orval.config.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@chakra-ui/react": "^3.30.0",
|
||||
"@emotion/react": "^11.14.0",
|
||||
"@fontsource-variable/jost": "^5.2.8",
|
||||
"@fontsource/golos-text": "^5.2.8",
|
||||
"@simplewebauthn/browser": "^13.2.2",
|
||||
"axios": "^1.13.2",
|
||||
"dayjs": "^1.11.19",
|
||||
"lucide-react": "^0.562.0",
|
||||
"mobx": "^6.15.0",
|
||||
"mobx-react-lite": "^4.1.1",
|
||||
"next-themes": "^0.4.6",
|
||||
"react": "^19.2.3",
|
||||
"react-dom": "^19.2.3",
|
||||
"react-hook-form": "^7.70.0",
|
||||
"react-icons": "^5.5.0",
|
||||
"react-router": "^7.12.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@rsbuild/core": "^1.7.1",
|
||||
"@rsbuild/plugin-react": "^1.4.2",
|
||||
"@types/react": "^19.2.7",
|
||||
"@types/react-dom": "^19.2.3",
|
||||
"orval": "^7.17.2",
|
||||
"prettier": "^3.7.3",
|
||||
"typescript": "^5.9.3"
|
||||
}
|
||||
}
|
||||
4976
domains-frontend/pnpm-lock.yaml
Normal file
4976
domains-frontend/pnpm-lock.yaml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
domains-frontend/public/favicon.png
Normal file
BIN
domains-frontend/public/favicon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.1 KiB |
10
domains-frontend/rsbuild.config.ts
Normal file
10
domains-frontend/rsbuild.config.ts
Normal file
@ -0,0 +1,10 @@
|
||||
import { defineConfig } from '@rsbuild/core';
|
||||
import { pluginReact } from '@rsbuild/plugin-react';
|
||||
|
||||
// Docs: https://rsbuild.rs/config/
|
||||
export default defineConfig({
|
||||
plugins: [pluginReact()],
|
||||
html: {
|
||||
title: 'Хрофорс Домены',
|
||||
},
|
||||
});
|
||||
8
domains-frontend/src/App.tsx
Normal file
8
domains-frontend/src/App.tsx
Normal file
@ -0,0 +1,8 @@
|
||||
import { BrowserRouter } from 'react-router';
|
||||
import router from './router';
|
||||
|
||||
const App = () => {
|
||||
return <BrowserRouter>{router()}</BrowserRouter>;
|
||||
};
|
||||
|
||||
export default App;
|
||||
4
domains-frontend/src/api/Constants.ts
Normal file
4
domains-frontend/src/api/Constants.ts
Normal file
@ -0,0 +1,4 @@
|
||||
export const AUTH_URL = '/api/auth';
|
||||
export const DOMAIN_ORDER_URL = '/api/domains';
|
||||
export const EXDNS_URL = '/exdns';
|
||||
export const EXDNS_TOKEN = 'changeme';
|
||||
109
domains-frontend/src/api/apiClient.ts
Normal file
109
domains-frontend/src/api/apiClient.ts
Normal file
@ -0,0 +1,109 @@
|
||||
import Axios, { type AxiosRequestConfig } from 'axios';
|
||||
import { getAccessToken, getRefreshToken, setTokens } from '~/utils/authTokens';
|
||||
import { AUTH_URL } from './Constants';
|
||||
|
||||
const AUTH_HEADER = 'Authorization';
|
||||
|
||||
export const AXIOS_INSTANCE = Axios.create({
|
||||
baseURL: AUTH_URL,
|
||||
});
|
||||
|
||||
const refreshClient = Axios.create({
|
||||
baseURL: AUTH_URL,
|
||||
});
|
||||
|
||||
const isRefreshRequest = (url?: string) => url?.includes('/auth/refresh');
|
||||
|
||||
const applyAccessToken = (config: AxiosRequestConfig, accessToken?: string) => {
|
||||
if (!accessToken) return;
|
||||
if (isRefreshRequest(config.url)) return;
|
||||
|
||||
const headers = config.headers ?? {};
|
||||
if (
|
||||
typeof (headers as { set?: (k: string, v: string) => void }).set ===
|
||||
'function'
|
||||
) {
|
||||
(headers as { set: (k: string, v: string) => void }).set(
|
||||
AUTH_HEADER,
|
||||
`Bearer ${accessToken}`
|
||||
);
|
||||
} else {
|
||||
(headers as Record<string, string>)[AUTH_HEADER] = `Bearer ${accessToken}`;
|
||||
}
|
||||
config.headers = headers;
|
||||
};
|
||||
|
||||
const refreshAccessToken = async () => {
|
||||
const refreshToken = getRefreshToken();
|
||||
if (!refreshToken) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const { data } = await refreshClient.post('/auth/refresh', {
|
||||
refreshToken,
|
||||
});
|
||||
|
||||
const accessToken = data?.data?.accessToken;
|
||||
const nextRefreshToken = data?.data?.refreshToken ?? refreshToken;
|
||||
|
||||
if (!accessToken) {
|
||||
return null;
|
||||
}
|
||||
|
||||
setTokens({ access: accessToken, refresh: nextRefreshToken });
|
||||
|
||||
return accessToken;
|
||||
};
|
||||
|
||||
AXIOS_INSTANCE.interceptors.request.use((config) => {
|
||||
applyAccessToken(config, getAccessToken());
|
||||
return config;
|
||||
});
|
||||
|
||||
let refreshPromise: Promise<string | null> | null = null;
|
||||
|
||||
AXIOS_INSTANCE.interceptors.response.use(
|
||||
(response) => response,
|
||||
async (error) => {
|
||||
const status = error?.response?.status;
|
||||
const originalConfig = error?.config as
|
||||
| (AxiosRequestConfig & { _retry?: boolean })
|
||||
| undefined;
|
||||
|
||||
if (!originalConfig || status !== 403 || originalConfig._retry) {
|
||||
return Promise.reject(error);
|
||||
}
|
||||
|
||||
if (isRefreshRequest(originalConfig.url)) {
|
||||
return Promise.reject(error);
|
||||
}
|
||||
|
||||
originalConfig._retry = true;
|
||||
|
||||
if (!refreshPromise) {
|
||||
refreshPromise = refreshAccessToken().finally(() => {
|
||||
refreshPromise = null;
|
||||
});
|
||||
}
|
||||
|
||||
const accessToken = await refreshPromise;
|
||||
if (!accessToken) {
|
||||
return Promise.reject(error);
|
||||
}
|
||||
|
||||
applyAccessToken(originalConfig, accessToken);
|
||||
return AXIOS_INSTANCE(originalConfig);
|
||||
}
|
||||
);
|
||||
|
||||
export const customInstance = <T>(
|
||||
config: AxiosRequestConfig,
|
||||
options?: AxiosRequestConfig
|
||||
): Promise<T> => {
|
||||
const promise = AXIOS_INSTANCE({
|
||||
...config,
|
||||
...options,
|
||||
}).then(({ data }) => data);
|
||||
|
||||
return promise;
|
||||
};
|
||||
109
domains-frontend/src/api/apiClientDomains.ts
Normal file
109
domains-frontend/src/api/apiClientDomains.ts
Normal file
@ -0,0 +1,109 @@
|
||||
import Axios, { type AxiosRequestConfig } from 'axios';
|
||||
import { getAccessToken, getRefreshToken, setTokens } from '~/utils/authTokens';
|
||||
import { DOMAIN_ORDER_URL } from './Constants';
|
||||
|
||||
const AUTH_HEADER = 'Authorization';
|
||||
|
||||
export const AXIOS_INSTANCE = Axios.create({
|
||||
baseURL: DOMAIN_ORDER_URL,
|
||||
});
|
||||
|
||||
const refreshClient = Axios.create({
|
||||
baseURL: DOMAIN_ORDER_URL,
|
||||
});
|
||||
|
||||
const isRefreshRequest = (url?: string) => url?.includes('/auth/refresh');
|
||||
|
||||
const applyAccessToken = (config: AxiosRequestConfig, accessToken?: string) => {
|
||||
if (!accessToken) return;
|
||||
if (isRefreshRequest(config.url)) return;
|
||||
|
||||
const headers = config.headers ?? {};
|
||||
if (
|
||||
typeof (headers as { set?: (k: string, v: string) => void }).set ===
|
||||
'function'
|
||||
) {
|
||||
(headers as { set: (k: string, v: string) => void }).set(
|
||||
AUTH_HEADER,
|
||||
`Bearer ${accessToken}`
|
||||
);
|
||||
} else {
|
||||
(headers as Record<string, string>)[AUTH_HEADER] = `Bearer ${accessToken}`;
|
||||
}
|
||||
config.headers = headers;
|
||||
};
|
||||
|
||||
const refreshAccessToken = async () => {
|
||||
const refreshToken = getRefreshToken();
|
||||
if (!refreshToken) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const { data } = await refreshClient.post('/auth/refresh', {
|
||||
refreshToken,
|
||||
});
|
||||
|
||||
const accessToken = data?.data?.accessToken;
|
||||
const nextRefreshToken = data?.data?.refreshToken ?? refreshToken;
|
||||
|
||||
if (!accessToken) {
|
||||
return null;
|
||||
}
|
||||
|
||||
setTokens({ access: accessToken, refresh: nextRefreshToken });
|
||||
|
||||
return accessToken;
|
||||
};
|
||||
|
||||
AXIOS_INSTANCE.interceptors.request.use((config) => {
|
||||
applyAccessToken(config, getAccessToken());
|
||||
return config;
|
||||
});
|
||||
|
||||
let refreshPromise: Promise<string | null> | null = null;
|
||||
|
||||
AXIOS_INSTANCE.interceptors.response.use(
|
||||
(response) => response,
|
||||
async (error) => {
|
||||
const status = error?.response?.status;
|
||||
const originalConfig = error?.config as
|
||||
| (AxiosRequestConfig & { _retry?: boolean })
|
||||
| undefined;
|
||||
|
||||
if (!originalConfig || status !== 403 || originalConfig._retry) {
|
||||
return Promise.reject(error);
|
||||
}
|
||||
|
||||
if (isRefreshRequest(originalConfig.url)) {
|
||||
return Promise.reject(error);
|
||||
}
|
||||
|
||||
originalConfig._retry = true;
|
||||
|
||||
if (!refreshPromise) {
|
||||
refreshPromise = refreshAccessToken().finally(() => {
|
||||
refreshPromise = null;
|
||||
});
|
||||
}
|
||||
|
||||
const accessToken = await refreshPromise;
|
||||
if (!accessToken) {
|
||||
return Promise.reject(error);
|
||||
}
|
||||
|
||||
applyAccessToken(originalConfig, accessToken);
|
||||
return AXIOS_INSTANCE(originalConfig);
|
||||
}
|
||||
);
|
||||
|
||||
export const customInstance = <T>(
|
||||
config: AxiosRequestConfig,
|
||||
options?: AxiosRequestConfig
|
||||
): Promise<T> => {
|
||||
const promise = AXIOS_INSTANCE({
|
||||
...config,
|
||||
...options,
|
||||
}).then(({ data }) => data);
|
||||
|
||||
return promise;
|
||||
};
|
||||
43
domains-frontend/src/api/apiClientExdns.ts
Normal file
43
domains-frontend/src/api/apiClientExdns.ts
Normal file
@ -0,0 +1,43 @@
|
||||
import Axios, { type AxiosRequestConfig } from 'axios';
|
||||
import { EXDNS_TOKEN, EXDNS_URL } from './Constants';
|
||||
|
||||
const AUTH_HEADER = 'authentication';
|
||||
|
||||
export const AXIOS_INSTANCE = Axios.create({
|
||||
baseURL: EXDNS_URL,
|
||||
});
|
||||
|
||||
const applyToken = (config: AxiosRequestConfig) => {
|
||||
if (!EXDNS_TOKEN) return;
|
||||
|
||||
const headers = config.headers ?? {};
|
||||
if (
|
||||
typeof (headers as { set?: (k: string, v: string) => void }).set ===
|
||||
'function'
|
||||
) {
|
||||
(headers as { set: (k: string, v: string) => void }).set(
|
||||
AUTH_HEADER,
|
||||
`Bearer ${EXDNS_TOKEN}`
|
||||
);
|
||||
} else {
|
||||
(headers as Record<string, string>)[AUTH_HEADER] = `Bearer ${EXDNS_TOKEN}`;
|
||||
}
|
||||
config.headers = headers;
|
||||
};
|
||||
|
||||
AXIOS_INSTANCE.interceptors.request.use((config) => {
|
||||
applyToken(config);
|
||||
return config;
|
||||
});
|
||||
|
||||
export const customInstance = <T>(
|
||||
config: AxiosRequestConfig,
|
||||
options?: AxiosRequestConfig
|
||||
): Promise<T> => {
|
||||
const promise = AXIOS_INSTANCE({
|
||||
...config,
|
||||
...options,
|
||||
}).then(({ data }) => data);
|
||||
|
||||
return promise;
|
||||
};
|
||||
5
domains-frontend/src/api/models/DomainQuery.ts
Normal file
5
domains-frontend/src/api/models/DomainQuery.ts
Normal file
@ -0,0 +1,5 @@
|
||||
export interface DomainQuery {
|
||||
fqdn: string;
|
||||
price: number;
|
||||
free: boolean;
|
||||
}
|
||||
13
domains-frontend/src/api/models/auth/apiError.ts
Normal file
13
domains-frontend/src/api/models/auth/apiError.ts
Normal file
@ -0,0 +1,13 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
import type { ApiErrorDetails } from './apiErrorDetails';
|
||||
|
||||
export interface ApiError {
|
||||
code?: string;
|
||||
message?: string;
|
||||
details?: ApiErrorDetails;
|
||||
}
|
||||
8
domains-frontend/src/api/models/auth/apiErrorDetails.ts
Normal file
8
domains-frontend/src/api/models/auth/apiErrorDetails.ts
Normal file
@ -0,0 +1,8 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export type ApiErrorDetails = { [key: string]: { [key: string]: unknown } };
|
||||
14
domains-frontend/src/api/models/auth/apiResponseBoolean.ts
Normal file
14
domains-frontend/src/api/models/auth/apiResponseBoolean.ts
Normal file
@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
import type { ApiError } from './apiError';
|
||||
|
||||
export interface ApiResponseBoolean {
|
||||
success?: boolean;
|
||||
data?: boolean;
|
||||
message?: string;
|
||||
error?: ApiError;
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
import type { LoginResponse } from './loginResponse';
|
||||
import type { ApiError } from './apiError';
|
||||
|
||||
export interface ApiResponseLoginResponse {
|
||||
success?: boolean;
|
||||
data?: LoginResponse;
|
||||
message?: string;
|
||||
error?: ApiError;
|
||||
}
|
||||
14
domains-frontend/src/api/models/auth/apiResponseString.ts
Normal file
14
domains-frontend/src/api/models/auth/apiResponseString.ts
Normal file
@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
import type { ApiError } from './apiError';
|
||||
|
||||
export interface ApiResponseString {
|
||||
success?: boolean;
|
||||
data?: string;
|
||||
message?: string;
|
||||
error?: ApiError;
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
import type { TwoFactorSetupResponse } from './twoFactorSetupResponse';
|
||||
import type { ApiError } from './apiError';
|
||||
|
||||
export interface ApiResponseTwoFactorSetupResponse {
|
||||
success?: boolean;
|
||||
data?: TwoFactorSetupResponse;
|
||||
message?: string;
|
||||
error?: ApiError;
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
import type { UserResponse } from './userResponse';
|
||||
import type { ApiError } from './apiError';
|
||||
|
||||
export interface ApiResponseUserResponse {
|
||||
success?: boolean;
|
||||
data?: UserResponse;
|
||||
message?: string;
|
||||
error?: ApiError;
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export interface Enable2FAWithSecretRequest {
|
||||
secret: string;
|
||||
/** @pattern ^\d{6}$ */
|
||||
code: string;
|
||||
}
|
||||
@ -0,0 +1,10 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* Auth Service API
|
||||
* OpenAPI spec version: 1.0.0
|
||||
*/
|
||||
|
||||
export type GetAuthVerifyEmailParams = {
|
||||
token: string;
|
||||
};
|
||||
25
domains-frontend/src/api/models/auth/index.ts
Normal file
25
domains-frontend/src/api/models/auth/index.ts
Normal file
@ -0,0 +1,25 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export * from './apiError';
|
||||
export * from './apiErrorDetails';
|
||||
export * from './apiResponseBoolean';
|
||||
export * from './apiResponseLoginResponse';
|
||||
export * from './apiResponseString';
|
||||
export * from './apiResponseTwoFactorSetupResponse';
|
||||
export * from './apiResponseUserResponse';
|
||||
export * from './enable2FAWithSecretRequest';
|
||||
export * from './getAuthVerifyEmailParams';
|
||||
export * from './loginRequest';
|
||||
export * from './loginResponse';
|
||||
export * from './postAuthResendVerificationParams';
|
||||
export * from './refreshTokenRequest';
|
||||
export * from './registerRequest';
|
||||
export * from './resendVerificationEmailParams';
|
||||
export * from './twoFactorSetupResponse';
|
||||
export * from './userResponse';
|
||||
export * from './verifyEmailParams';
|
||||
12
domains-frontend/src/api/models/auth/loginRequest.ts
Normal file
12
domains-frontend/src/api/models/auth/loginRequest.ts
Normal file
@ -0,0 +1,12 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export interface LoginRequest {
|
||||
email: string;
|
||||
password: string;
|
||||
totpCode?: string;
|
||||
}
|
||||
13
domains-frontend/src/api/models/auth/loginResponse.ts
Normal file
13
domains-frontend/src/api/models/auth/loginResponse.ts
Normal file
@ -0,0 +1,13 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export interface LoginResponse {
|
||||
userId?: string;
|
||||
accessToken?: string;
|
||||
refreshToken?: string;
|
||||
email?: string;
|
||||
}
|
||||
@ -0,0 +1,10 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* Auth Service API
|
||||
* OpenAPI spec version: 1.0.0
|
||||
*/
|
||||
|
||||
export type PostAuthResendVerificationParams = {
|
||||
email: string;
|
||||
};
|
||||
10
domains-frontend/src/api/models/auth/refreshTokenRequest.ts
Normal file
10
domains-frontend/src/api/models/auth/refreshTokenRequest.ts
Normal file
@ -0,0 +1,10 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export interface RefreshTokenRequest {
|
||||
refreshToken: string;
|
||||
}
|
||||
15
domains-frontend/src/api/models/auth/registerRequest.ts
Normal file
15
domains-frontend/src/api/models/auth/registerRequest.ts
Normal file
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export interface RegisterRequest {
|
||||
email: string;
|
||||
/**
|
||||
* @minLength 8
|
||||
* @maxLength 2147483647
|
||||
*/
|
||||
password: string;
|
||||
}
|
||||
@ -0,0 +1,10 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export type ResendVerificationEmailParams = {
|
||||
email: string;
|
||||
};
|
||||
@ -0,0 +1,12 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export interface TwoFactorSetupResponse {
|
||||
secret?: string;
|
||||
qrCodeUrl?: string;
|
||||
manualEntryKey?: string;
|
||||
}
|
||||
13
domains-frontend/src/api/models/auth/userResponse.ts
Normal file
13
domains-frontend/src/api/models/auth/userResponse.ts
Normal file
@ -0,0 +1,13 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export interface UserResponse {
|
||||
id?: string;
|
||||
email?: string;
|
||||
createdAt?: string;
|
||||
updatedAt?: string;
|
||||
}
|
||||
10
domains-frontend/src/api/models/auth/verifyEmailParams.ts
Normal file
10
domains-frontend/src/api/models/auth/verifyEmailParams.ts
Normal file
@ -0,0 +1,10 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export type VerifyEmailParams = {
|
||||
token: string;
|
||||
};
|
||||
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
import type { AddCartItemRequestAction } from './addCartItemRequestAction';
|
||||
import type { AddCartItemRequestTerm } from './addCartItemRequestTerm';
|
||||
|
||||
export interface AddCartItemRequest {
|
||||
action: AddCartItemRequestAction;
|
||||
term: AddCartItemRequestTerm;
|
||||
fqdn: string;
|
||||
price: number;
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export type AddCartItemRequestAction =
|
||||
(typeof AddCartItemRequestAction)[keyof typeof AddCartItemRequestAction];
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-redeclare
|
||||
export const AddCartItemRequestAction = {
|
||||
register: 'register',
|
||||
renew: 'renew',
|
||||
} as const;
|
||||
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export type AddCartItemRequestTerm =
|
||||
(typeof AddCartItemRequestTerm)[keyof typeof AddCartItemRequestTerm];
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-redeclare
|
||||
export const AddCartItemRequestTerm = {
|
||||
monthly: 'monthly',
|
||||
yearly: 'yearly',
|
||||
} as const;
|
||||
13
domains-frontend/src/api/models/domain-order/apiError.ts
Normal file
13
domains-frontend/src/api/models/domain-order/apiError.ts
Normal file
@ -0,0 +1,13 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
import type { ApiErrorDetails } from './apiErrorDetails';
|
||||
|
||||
export interface ApiError {
|
||||
code?: string;
|
||||
message?: string;
|
||||
details?: ApiErrorDetails;
|
||||
}
|
||||
@ -0,0 +1,8 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export type ApiErrorDetails = { [key: string]: { [key: string]: unknown } };
|
||||
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
import type { CartItemResponse } from './cartItemResponse';
|
||||
import type { ApiError } from './apiError';
|
||||
|
||||
export interface ApiResponseCartItemResponse {
|
||||
success?: boolean;
|
||||
data?: CartItemResponse;
|
||||
message?: string;
|
||||
error?: ApiError;
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
import type { CartResponse } from './cartResponse';
|
||||
import type { ApiError } from './apiError';
|
||||
|
||||
export interface ApiResponseCartResponse {
|
||||
success?: boolean;
|
||||
data?: CartResponse;
|
||||
message?: string;
|
||||
error?: ApiError;
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
import type { DnsRecordResponse } from './dnsRecordResponse';
|
||||
import type { ApiError } from './apiError';
|
||||
|
||||
export interface ApiResponseDnsRecordResponse {
|
||||
success?: boolean;
|
||||
data?: DnsRecordResponse;
|
||||
message?: string;
|
||||
error?: ApiError;
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* Notification Service API
|
||||
* OpenAPI spec version: 1.0.0
|
||||
*/
|
||||
import type { DomainExpiryAlertResponse } from './domainExpiryAlertResponse';
|
||||
import type { ApiError } from './apiError';
|
||||
|
||||
export interface ApiResponseDomainExpiryAlertResponse {
|
||||
success?: boolean;
|
||||
data?: DomainExpiryAlertResponse;
|
||||
/** @nullable */
|
||||
message?: string | null;
|
||||
/** @nullable */
|
||||
error?: ApiError;
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
import type { DomainResponse } from './domainResponse';
|
||||
import type { ApiError } from './apiError';
|
||||
|
||||
export interface ApiResponseDomainResponse {
|
||||
success?: boolean;
|
||||
data?: DomainResponse;
|
||||
message?: string;
|
||||
error?: ApiError;
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
import type { DnsRecordResponse } from './dnsRecordResponse';
|
||||
import type { ApiError } from './apiError';
|
||||
|
||||
export interface ApiResponseListDnsRecordResponse {
|
||||
success?: boolean;
|
||||
data?: DnsRecordResponse[];
|
||||
message?: string;
|
||||
error?: ApiError;
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
import type { DomainSearchResult } from './domainSearchResult';
|
||||
import type { ApiError } from './apiError';
|
||||
|
||||
export interface ApiResponseListDomainSearchResult {
|
||||
success?: boolean;
|
||||
data?: DomainSearchResult[];
|
||||
message?: string;
|
||||
error?: ApiError;
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* Notification Service API
|
||||
* OpenAPI spec version: 1.0.0
|
||||
*/
|
||||
import type { MonitoringDashboardResponse } from './monitoringDashboardResponse';
|
||||
import type { ApiError } from './apiError';
|
||||
|
||||
export interface ApiResponseMonitoringDashboardResponse {
|
||||
success?: boolean;
|
||||
data?: MonitoringDashboardResponse;
|
||||
/** @nullable */
|
||||
message?: string | null;
|
||||
/** @nullable */
|
||||
error?: ApiError;
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* Notification Service API
|
||||
* OpenAPI spec version: 1.0.0
|
||||
*/
|
||||
import type { NotificationPreferencesResponse } from './notificationPreferencesResponse';
|
||||
import type { ApiError } from './apiError';
|
||||
|
||||
export interface ApiResponseNotificationPreferencesResponse {
|
||||
success?: boolean;
|
||||
data?: NotificationPreferencesResponse;
|
||||
/** @nullable */
|
||||
message?: string | null;
|
||||
/** @nullable */
|
||||
error?: ApiError;
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
import type { NsDelegationResponse } from './nsDelegationResponse';
|
||||
import type { ApiError } from './apiError';
|
||||
|
||||
export interface ApiResponseNsDelegationResponse {
|
||||
success?: boolean;
|
||||
data?: NsDelegationResponse;
|
||||
message?: string;
|
||||
error?: ApiError;
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
import type { OrderResponse } from './orderResponse';
|
||||
import type { ApiError } from './apiError';
|
||||
|
||||
export interface ApiResponseOrderResponse {
|
||||
success?: boolean;
|
||||
data?: OrderResponse;
|
||||
message?: string;
|
||||
error?: ApiError;
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* Notification Service API
|
||||
* OpenAPI spec version: 1.0.0
|
||||
*/
|
||||
import type { PageDomainExpiryMonitoringResponse } from './pageDomainExpiryMonitoringResponse';
|
||||
import type { ApiError } from './apiError';
|
||||
|
||||
export interface ApiResponsePageDomainExpiryMonitoringResponse {
|
||||
success?: boolean;
|
||||
data?: PageDomainExpiryMonitoringResponse;
|
||||
/** @nullable */
|
||||
message?: string | null;
|
||||
/** @nullable */
|
||||
error?: ApiError;
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
import type { PageDomainResponse } from './pageDomainResponse';
|
||||
import type { ApiError } from './apiError';
|
||||
|
||||
export interface ApiResponsePageDomainResponse {
|
||||
success?: boolean;
|
||||
data?: PageDomainResponse;
|
||||
message?: string;
|
||||
error?: ApiError;
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
import type { PageOrderResponse } from './pageOrderResponse';
|
||||
import type { ApiError } from './apiError';
|
||||
|
||||
export interface ApiResponsePageOrderResponse {
|
||||
success?: boolean;
|
||||
data?: PageOrderResponse;
|
||||
message?: string;
|
||||
error?: ApiError;
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
import type { PageZone } from './pageZone';
|
||||
import type { ApiError } from './apiError';
|
||||
|
||||
export interface ApiResponsePageZone {
|
||||
success?: boolean;
|
||||
data?: PageZone;
|
||||
message?: string;
|
||||
error?: ApiError;
|
||||
}
|
||||
@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
import type { ApiError } from './apiError';
|
||||
|
||||
export interface ApiResponseString {
|
||||
success?: boolean;
|
||||
data?: string;
|
||||
message?: string;
|
||||
error?: ApiError;
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
import type { ApiResponseVoidData } from './apiResponseVoidData';
|
||||
import type { ApiError } from './apiError';
|
||||
|
||||
export interface ApiResponseVoid {
|
||||
success?: boolean;
|
||||
data?: ApiResponseVoidData;
|
||||
message?: string;
|
||||
error?: ApiError;
|
||||
}
|
||||
@ -0,0 +1,8 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export type ApiResponseVoidData = { [key: string]: unknown };
|
||||
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
import type { Zone } from './zone';
|
||||
import type { ApiError } from './apiError';
|
||||
|
||||
export interface ApiResponseZone {
|
||||
success?: boolean;
|
||||
data?: Zone;
|
||||
message?: string;
|
||||
error?: ApiError;
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
import type { CartItemResponseAction } from './cartItemResponseAction';
|
||||
import type { CartItemResponseTerm } from './cartItemResponseTerm';
|
||||
|
||||
export interface CartItemResponse {
|
||||
id?: string;
|
||||
action?: CartItemResponseAction;
|
||||
term?: CartItemResponseTerm;
|
||||
fqdn?: string;
|
||||
price?: number;
|
||||
createdAt?: string;
|
||||
updatedAt?: string;
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export type CartItemResponseAction =
|
||||
(typeof CartItemResponseAction)[keyof typeof CartItemResponseAction];
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-redeclare
|
||||
export const CartItemResponseAction = {
|
||||
register: 'register',
|
||||
renew: 'renew',
|
||||
} as const;
|
||||
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export type CartItemResponseTerm =
|
||||
(typeof CartItemResponseTerm)[keyof typeof CartItemResponseTerm];
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-redeclare
|
||||
export const CartItemResponseTerm = {
|
||||
monthly: 'monthly',
|
||||
yearly: 'yearly',
|
||||
} as const;
|
||||
15
domains-frontend/src/api/models/domain-order/cartResponse.ts
Normal file
15
domains-frontend/src/api/models/domain-order/cartResponse.ts
Normal file
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
import type { CartItemResponse } from './cartItemResponse';
|
||||
|
||||
export interface CartResponse {
|
||||
id?: string;
|
||||
userId?: string;
|
||||
items?: CartItemResponse[];
|
||||
createdAt?: string;
|
||||
updatedAt?: string;
|
||||
}
|
||||
@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export interface CreateARecordRequest {
|
||||
domainId: string;
|
||||
name: string;
|
||||
/** @pattern ^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$ */
|
||||
ipv4Address: string;
|
||||
ttl: number;
|
||||
}
|
||||
@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export interface CreateAaaaRecordRequest {
|
||||
domainId: string;
|
||||
name: string;
|
||||
/** @pattern ^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$|^::1$|^::$ */
|
||||
ipv6Address: string;
|
||||
ttl: number;
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export interface CreateCaaRecordRequest {
|
||||
domainId: string;
|
||||
name: string;
|
||||
/** @pattern ^[0-9]$ */
|
||||
flags: string;
|
||||
/** @pattern ^(issue|issuewild|iodef)$ */
|
||||
tag: string;
|
||||
value: string;
|
||||
ttl: number;
|
||||
}
|
||||
@ -0,0 +1,13 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export interface CreateCnameRecordRequest {
|
||||
domainId: string;
|
||||
name: string;
|
||||
canonicalName: string;
|
||||
ttl: number;
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export interface CreateDomainRequest {
|
||||
fqdn: string;
|
||||
zoneId: string;
|
||||
expiresAt: string;
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export interface CreateMxRecordRequest {
|
||||
domainId: string;
|
||||
name: string;
|
||||
mailExchange: string;
|
||||
/** @minimum 0 */
|
||||
priority: number;
|
||||
ttl: number;
|
||||
}
|
||||
@ -0,0 +1,10 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export interface CreateOrderRequest {
|
||||
cartItemIds: string[];
|
||||
}
|
||||
@ -0,0 +1,25 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export interface CreateSrvRecordRequest {
|
||||
domainId: string;
|
||||
serviceName: string;
|
||||
target: string;
|
||||
/** @minimum 0 */
|
||||
priority: number;
|
||||
/**
|
||||
* @minimum 0
|
||||
* @maximum 65535
|
||||
*/
|
||||
weight: number;
|
||||
/**
|
||||
* @minimum 1
|
||||
* @maximum 65535
|
||||
*/
|
||||
port: number;
|
||||
ttl: number;
|
||||
}
|
||||
@ -0,0 +1,13 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export interface CreateTxtRecordRequest {
|
||||
domainId: string;
|
||||
name: string;
|
||||
textValue: string;
|
||||
ttl: number;
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export interface CreateZoneRequest {
|
||||
name: string;
|
||||
price: number;
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export interface DnsRecordResponse {
|
||||
id?: string;
|
||||
domainId?: string;
|
||||
recordType?: string;
|
||||
name?: string;
|
||||
value?: string;
|
||||
ttl?: number;
|
||||
priority?: number;
|
||||
weight?: number;
|
||||
port?: number;
|
||||
flags?: string;
|
||||
tag?: string;
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* Notification Service API
|
||||
* OpenAPI spec version: 1.0.0
|
||||
*/
|
||||
import type { ExpiryAlertPreference } from './expiryAlertPreference';
|
||||
|
||||
export interface DomainExpiryAlertResponse {
|
||||
alerts?: ExpiryAlertPreference[];
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* Notification Service API
|
||||
* OpenAPI spec version: 1.0.0
|
||||
*/
|
||||
|
||||
export interface DomainExpiryMonitoringResponse {
|
||||
domainId?: string;
|
||||
fqdn?: string;
|
||||
expiresAt?: string;
|
||||
/** @nullable */
|
||||
activatedAt?: string | null;
|
||||
daysUntilExpiry?: number;
|
||||
alertSent?: boolean;
|
||||
/** @nullable */
|
||||
lastAlertSentAt?: string | null;
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export interface DomainResponse {
|
||||
id?: string;
|
||||
fqdn?: string;
|
||||
zoneId?: string;
|
||||
zoneName?: string;
|
||||
activatedAt?: string;
|
||||
expiresAt?: string;
|
||||
createdAt?: string;
|
||||
updatedAt?: string;
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export interface DomainSearchResult {
|
||||
fqdn?: string;
|
||||
free?: boolean;
|
||||
price?: number;
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* Notification Service API
|
||||
* OpenAPI spec version: 1.0.0
|
||||
*/
|
||||
|
||||
export interface ExpiryAlertPreference {
|
||||
id?: string;
|
||||
daysBefore?: number;
|
||||
enabled?: boolean;
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
import type { Pageable } from './pageable';
|
||||
|
||||
export type GetAllDomainsParams = {
|
||||
pageable: Pageable;
|
||||
};
|
||||
@ -0,0 +1,11 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
import type { Pageable } from './pageable';
|
||||
|
||||
export type GetAllZonesParams = {
|
||||
pageable: Pageable;
|
||||
};
|
||||
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* Domain Order Service API
|
||||
* OpenAPI spec version: 1.0.0
|
||||
*/
|
||||
|
||||
export type GetDomainsParams = {
|
||||
/**
|
||||
* @minimum 0
|
||||
*/
|
||||
page?: number;
|
||||
/**
|
||||
* @minimum 1
|
||||
*/
|
||||
size?: number;
|
||||
sort?: string[];
|
||||
};
|
||||
@ -0,0 +1,10 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* Domain Order Service API
|
||||
* OpenAPI spec version: 1.0.0
|
||||
*/
|
||||
|
||||
export type GetDomainsSearchParams = {
|
||||
query: string;
|
||||
};
|
||||
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* Notification Service API
|
||||
* OpenAPI spec version: 1.0.0
|
||||
*/
|
||||
|
||||
export type GetNotificationsExpiryMonitoringDomainsParams = {
|
||||
/**
|
||||
* @minimum 0
|
||||
*/
|
||||
page?: number;
|
||||
/**
|
||||
* @minimum 1
|
||||
*/
|
||||
size?: number;
|
||||
sort?: string[];
|
||||
};
|
||||
@ -0,0 +1,11 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
import type { Pageable } from './pageable';
|
||||
|
||||
export type GetOrdersParams = {
|
||||
pageable: Pageable;
|
||||
};
|
||||
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* Domain Order Service API
|
||||
* OpenAPI spec version: 1.0.0
|
||||
*/
|
||||
|
||||
export type GetZonesParams = {
|
||||
/**
|
||||
* @minimum 0
|
||||
*/
|
||||
page?: number;
|
||||
/**
|
||||
* @minimum 1
|
||||
*/
|
||||
size?: number;
|
||||
sort?: string[];
|
||||
};
|
||||
91
domains-frontend/src/api/models/domain-order/index.ts
Normal file
91
domains-frontend/src/api/models/domain-order/index.ts
Normal file
@ -0,0 +1,91 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export * from './addCartItemRequest';
|
||||
export * from './addCartItemRequestAction';
|
||||
export * from './addCartItemRequestTerm';
|
||||
export * from './apiError';
|
||||
export * from './apiErrorDetails';
|
||||
export * from './apiResponseCartItemResponse';
|
||||
export * from './apiResponseCartResponse';
|
||||
export * from './apiResponseDnsRecordResponse';
|
||||
export * from './apiResponseDomainExpiryAlertResponse';
|
||||
export * from './apiResponseDomainResponse';
|
||||
export * from './apiResponseListDnsRecordResponse';
|
||||
export * from './apiResponseListDomainSearchResult';
|
||||
export * from './apiResponseMonitoringDashboardResponse';
|
||||
export * from './apiResponseNotificationPreferencesResponse';
|
||||
export * from './apiResponseNsDelegationResponse';
|
||||
export * from './apiResponseOrderResponse';
|
||||
export * from './apiResponsePageDomainExpiryMonitoringResponse';
|
||||
export * from './apiResponsePageDomainResponse';
|
||||
export * from './apiResponsePageOrderResponse';
|
||||
export * from './apiResponsePageZone';
|
||||
export * from './apiResponseString';
|
||||
export * from './apiResponseVoid';
|
||||
export * from './apiResponseVoidData';
|
||||
export * from './apiResponseZone';
|
||||
export * from './cartItemResponse';
|
||||
export * from './cartItemResponseAction';
|
||||
export * from './cartItemResponseTerm';
|
||||
export * from './cartResponse';
|
||||
export * from './createARecordRequest';
|
||||
export * from './createAaaaRecordRequest';
|
||||
export * from './createCaaRecordRequest';
|
||||
export * from './createCnameRecordRequest';
|
||||
export * from './createDomainRequest';
|
||||
export * from './createMxRecordRequest';
|
||||
export * from './createOrderRequest';
|
||||
export * from './createSrvRecordRequest';
|
||||
export * from './createTxtRecordRequest';
|
||||
export * from './createZoneRequest';
|
||||
export * from './dnsRecordResponse';
|
||||
export * from './domainExpiryAlertResponse';
|
||||
export * from './domainExpiryMonitoringResponse';
|
||||
export * from './domainResponse';
|
||||
export * from './domainSearchResult';
|
||||
export * from './expiryAlertPreference';
|
||||
export * from './getAllDomainsParams';
|
||||
export * from './getAllZonesParams';
|
||||
export * from './getDomainsParams';
|
||||
export * from './getDomainsSearchParams';
|
||||
export * from './getNotificationsExpiryMonitoringDomainsParams';
|
||||
export * from './getOrdersParams';
|
||||
export * from './getZonesParams';
|
||||
export * from './itemAction';
|
||||
export * from './itemTerm';
|
||||
export * from './monitoringDashboardResponse';
|
||||
export * from './notificationPreferencesResponse';
|
||||
export * from './notificationType';
|
||||
export * from './nsDelegationRequest';
|
||||
export * from './nsDelegationResponse';
|
||||
export * from './orderItemResponse';
|
||||
export * from './orderItemResponseAction';
|
||||
export * from './orderItemResponseTerm';
|
||||
export * from './orderResponse';
|
||||
export * from './orderResponseStatus';
|
||||
export * from './orderStatus';
|
||||
export * from './pageDomainExpiryMonitoringResponse';
|
||||
export * from './pageDomainResponse';
|
||||
export * from './pageOrderResponse';
|
||||
export * from './pageZone';
|
||||
export * from './pageable';
|
||||
export * from './pageableObject';
|
||||
export * from './putOrdersIdStatusParams';
|
||||
export * from './searchDomainsParams';
|
||||
export * from './sendNotificationRequest';
|
||||
export * from './sendNotificationRequestParameters';
|
||||
export * from './sortObject';
|
||||
export * from './updateDnsRecordRequest';
|
||||
export * from './updateDomainRequest';
|
||||
export * from './updateExpiryAlertsRequest';
|
||||
export * from './updateNotificationPreferencesRequest';
|
||||
export * from './updateOrderStatusParams';
|
||||
export * from './updateOrderStatusStatus';
|
||||
export * from './updateZoneRequest';
|
||||
export * from './userIdHeaderParameter';
|
||||
export * from './zone';
|
||||
14
domains-frontend/src/api/models/domain-order/itemAction.ts
Normal file
14
domains-frontend/src/api/models/domain-order/itemAction.ts
Normal file
@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* Domain Order Service API
|
||||
* OpenAPI spec version: 1.0.0
|
||||
*/
|
||||
|
||||
export type ItemAction = (typeof ItemAction)[keyof typeof ItemAction];
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-redeclare
|
||||
export const ItemAction = {
|
||||
register: 'register',
|
||||
renew: 'renew',
|
||||
} as const;
|
||||
14
domains-frontend/src/api/models/domain-order/itemTerm.ts
Normal file
14
domains-frontend/src/api/models/domain-order/itemTerm.ts
Normal file
@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* Domain Order Service API
|
||||
* OpenAPI spec version: 1.0.0
|
||||
*/
|
||||
|
||||
export type ItemTerm = (typeof ItemTerm)[keyof typeof ItemTerm];
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-redeclare
|
||||
export const ItemTerm = {
|
||||
monthly: 'monthly',
|
||||
yearly: 'yearly',
|
||||
} as const;
|
||||
@ -0,0 +1,16 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* Notification Service API
|
||||
* OpenAPI spec version: 1.0.0
|
||||
*/
|
||||
|
||||
export interface MonitoringDashboardResponse {
|
||||
domainsExpiringIn30Days?: number;
|
||||
domainsExpiringIn14Days?: number;
|
||||
domainsExpiringIn7Days?: number;
|
||||
domainsExpiringIn3Days?: number;
|
||||
domainsExpiringIn1Day?: number;
|
||||
expiredDomains?: number;
|
||||
totalActiveDomains?: number;
|
||||
}
|
||||
@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* Notification Service API
|
||||
* OpenAPI spec version: 1.0.0
|
||||
*/
|
||||
import type { ExpiryAlertPreference } from './expiryAlertPreference';
|
||||
|
||||
export interface NotificationPreferencesResponse {
|
||||
expiryAlerts?: ExpiryAlertPreference[];
|
||||
orderNotificationsEnabled?: boolean;
|
||||
paymentNotificationsEnabled?: boolean;
|
||||
domainActivationNotificationsEnabled?: boolean;
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* Notification Service API
|
||||
* OpenAPI spec version: 1.0.0
|
||||
*/
|
||||
|
||||
export type NotificationType =
|
||||
(typeof NotificationType)[keyof typeof NotificationType];
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-redeclare
|
||||
export const NotificationType = {
|
||||
ORDER_CREATED: 'ORDER_CREATED',
|
||||
PAYMENT_APPROVED: 'PAYMENT_APPROVED',
|
||||
DOMAIN_ACTIVATED: 'DOMAIN_ACTIVATED',
|
||||
DOMAIN_EXPIRING_SOON: 'DOMAIN_EXPIRING_SOON',
|
||||
DOMAIN_EXPIRED: 'DOMAIN_EXPIRED',
|
||||
} as const;
|
||||
@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export interface NsDelegationRequest {
|
||||
/**
|
||||
* @minItems 1
|
||||
* @maxItems 10
|
||||
*/
|
||||
nsServers: string[];
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export interface NsDelegationResponse {
|
||||
domainId?: string;
|
||||
isDelegated?: boolean;
|
||||
nsServers?: string[];
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
import type { OrderItemResponseAction } from './orderItemResponseAction';
|
||||
import type { OrderItemResponseTerm } from './orderItemResponseTerm';
|
||||
|
||||
export interface OrderItemResponse {
|
||||
id?: string;
|
||||
action?: OrderItemResponseAction;
|
||||
term?: OrderItemResponseTerm;
|
||||
domainId?: string;
|
||||
createdAt?: string;
|
||||
updatedAt?: string;
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export type OrderItemResponseAction =
|
||||
(typeof OrderItemResponseAction)[keyof typeof OrderItemResponseAction];
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-redeclare
|
||||
export const OrderItemResponseAction = {
|
||||
register: 'register',
|
||||
renew: 'renew',
|
||||
} as const;
|
||||
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
|
||||
export type OrderItemResponseTerm =
|
||||
(typeof OrderItemResponseTerm)[keyof typeof OrderItemResponseTerm];
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-redeclare
|
||||
export const OrderItemResponseTerm = {
|
||||
monthly: 'monthly',
|
||||
yearly: 'yearly',
|
||||
} as const;
|
||||
@ -0,0 +1,19 @@
|
||||
/**
|
||||
* Generated by orval v7.17.2 🍺
|
||||
* Do not edit manually.
|
||||
* OpenAPI definition
|
||||
* OpenAPI spec version: v0
|
||||
*/
|
||||
import type { OrderResponseStatus } from './orderResponseStatus';
|
||||
import type { OrderItemResponse } from './orderItemResponse';
|
||||
|
||||
export interface OrderResponse {
|
||||
id?: string;
|
||||
userId?: string;
|
||||
status?: OrderResponseStatus;
|
||||
totalAmount?: number;
|
||||
items?: OrderItemResponse[];
|
||||
createdAt?: string;
|
||||
paidAt?: string;
|
||||
updatedAt?: string;
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user