140500
This commit is contained in:
13
FRONTEND/API/ARTICLE.md
Normal file
13
FRONTEND/API/ARTICLE.md
Normal file
@@ -0,0 +1,13 @@
|
||||
Код представляет собой модуль для работы с API проекта, который использует константу `API_BASE_URL` из файла `constants` и пути API из файла `openapi.gen` для отправки запросов на сервер и обработки ответов.
|
||||
|
||||
**Импорт константы API_BASE_URL из файла constants**:
|
||||
```
|
||||
import { API_BASE_URL } from '~/constants'
|
||||
```
|
||||
**Импорт путей API из файла openapi.gen**:
|
||||
```
|
||||
import type { paths } from '~/openapi.gen'
|
||||
```
|
||||
**Типы ответов на запросы к API**
|
||||
**Функции для отправки запросов к API**
|
||||
**Функции для добавления и удаления статьи из избранного**
|
||||
28
FRONTEND/API/AUTH.md
Normal file
28
FRONTEND/API/AUTH.md
Normal file
@@ -0,0 +1,28 @@
|
||||
**Импорт константы API_BASE_URL из файла constants**:
|
||||
```
|
||||
import { API_BASE_URL } from '~/constants'
|
||||
```
|
||||
**Импорт путей API из файла openapi.gen**:
|
||||
```
|
||||
import type { paths } from '~/openapi.gen'
|
||||
```
|
||||
**Типы запроса и ответа для аутентификации пользователя**:
|
||||
```
|
||||
type LoginUserRequest =
|
||||
paths['/users/login']['post']['requestBody']['content']['application/json'];
|
||||
|
||||
type LoginUserResponse =
|
||||
paths['/users/login']['post']['responses']['200']['content']['application/json'];
|
||||
```
|
||||
**Функция для отправки запроса на аутентификацию пользователя**:
|
||||
```
|
||||
export const login = (user: LoginUserRequest) => {
|
||||
return $fetch<LoginUserResponse>(`${API_BASE_URL}/users/login`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: user, // Передаем данные пользователя в теле запроса
|
||||
});
|
||||
};
|
||||
```
|
||||
10
FRONTEND/API/TAG.md
Normal file
10
FRONTEND/API/TAG.md
Normal file
@@ -0,0 +1,10 @@
|
||||
**Импорт путей API из файла openapi.gen**:
|
||||
```
|
||||
import type { paths } from '~/openapi.gen'
|
||||
```
|
||||
**Тип ответа на запрос получения тегов**:
|
||||
```
|
||||
export type GetTagsResponse =
|
||||
paths['/tags']['get']['responses']['200']['content']['application/json'];
|
||||
```
|
||||
Кода определяется тип данных `GetTagsResponse`, который представляет собой ответ на запрос получения тегов из вашего API. Тип строится на основе структуры определенного пути `/tags` и кода состояния ответа 200 (успешный запрос) с типом содержимого `application/json`.
|
||||
0
FRONTEND/API/TEAM.md
Normal file
0
FRONTEND/API/TEAM.md
Normal file
34
FRONTEND/API/TENANT.md
Normal file
34
FRONTEND/API/TENANT.md
Normal file
@@ -0,0 +1,34 @@
|
||||
**Импорт константы API_BASE_URL из файла constants**:
|
||||
```
|
||||
import { API_BASE_URL } from '~/constants'
|
||||
```
|
||||
**Импорт путей API из файла openapi.gen**:
|
||||
```
|
||||
import type { paths } from '~/openapi.gen'
|
||||
```
|
||||
**Типы ответов на запросы к API для получения арендаторов и арендатора по ID**:
|
||||
```
|
||||
export type GetTenantsResponse =
|
||||
paths['/tenants']['get']['responses']['200']['content']['application/json'];
|
||||
export type GetTenantResponse =
|
||||
paths['/tenants/{id}']['get']['responses']['200']['content']['application/json'];
|
||||
```
|
||||
**Типы запросов для создания и обновления арендатора**:
|
||||
```
|
||||
type CreateTenantRequest =
|
||||
paths['/tenants']['post']['requestBody']['content']['application/json'];
|
||||
type UpdateTenantRequest =
|
||||
paths['/tenants/{id}']['put']['requestBody']['content']['application/json'];
|
||||
```
|
||||
**Типы ответа при создании и обновлении арендатора**:
|
||||
```
|
||||
export type CreateTenantResponse =
|
||||
paths['/tenants']['post']['responses']['201']['content']['application/json'];
|
||||
export type UpdateTenantResponse =
|
||||
paths['/tenants/{id}']['put']['responses']['200']['content']['application/json'];
|
||||
```
|
||||
**Функции для работы с арендаторами и их контактами**:
|
||||
- `createTenant`: Функция для создания нового арендатора.
|
||||
- `updateTenant`: Функция для обновления данных арендатора.
|
||||
- `removeTenant`: Функция для удаления арендатора.
|
||||
- `createTenantContact`: Функция для добавления контакта к арендатору.
|
||||
32
FRONTEND/API/TODO.md
Normal file
32
FRONTEND/API/TODO.md
Normal file
@@ -0,0 +1,32 @@
|
||||
**Импорт константы API_BASE_URL из файла constants**:
|
||||
```
|
||||
import { API_BASE_URL } from '~/constants'
|
||||
```
|
||||
**Импорт путей API из файла openapi.gen**:
|
||||
```
|
||||
import type { paths } from '~/openapi.gen'
|
||||
```
|
||||
**Типы ответов на запросы к API для получения задач и комментариев**:
|
||||
```
|
||||
export type GetTodosResponse =
|
||||
paths['/todos']['get']['responses']['200']['content']['application/json'];
|
||||
export type GetTodoResponse =
|
||||
paths['/todos/{id}']['get']['responses']['200']['content']['application/json'];
|
||||
export type GetTodoCommentsResponse =
|
||||
paths['/todos/{id}/comments']['get']['responses']['200']['content']['application/json'];
|
||||
```
|
||||
**Типы запросов для создания задачи и комментария к задаче**:
|
||||
```
|
||||
type CreateTodosRequest =
|
||||
paths['/todos']['post']['requestBody']['content']['application/json'];
|
||||
type CreateTodoCommentRequest =
|
||||
paths['/todos/{id}/comments']['post']['requestBody']['content']['application/json'];
|
||||
```
|
||||
**Функции для работы с задачами и их комментариями**:
|
||||
- `createTodo`: Функция для создания новой задачи.
|
||||
- `updateTodo`: Функция для обновления данных задачи.
|
||||
- `removeTodo`: Функция для удаления задачи.
|
||||
- `createTodoComment`: Функция для добавления комментария к задаче.
|
||||
**Функции для работы с избранными задачами**:
|
||||
- `addTodoToFavorites`: Функция для добавления задачи в избранное.
|
||||
- `removeTodoFromFavorites`: Функция для удаления задачи из избранного.
|
||||
32
FRONTEND/API/USER.md
Normal file
32
FRONTEND/API/USER.md
Normal file
@@ -0,0 +1,32 @@
|
||||
**Импорт константы API_BASE_URL из файла constants**:
|
||||
```
|
||||
import { API_BASE_URL } from '~/constants'
|
||||
```
|
||||
**Импорт путей API из файла openapi.gen**:
|
||||
```
|
||||
import type { paths } from '~/openapi.gen'
|
||||
```
|
||||
**Типы запросов и ответов для обновления и создания пользователя**:
|
||||
```
|
||||
type UserSetting =
|
||||
paths['/user']['put']['requestBody']['content']['application/json'];
|
||||
type UpdateUserResponse =
|
||||
paths['/user']['put']['responses']['200']['content']['application/json'];
|
||||
type CreateUserResponse =
|
||||
paths['/users']['post']['responses']['201']['content']['application/json'];
|
||||
```
|
||||
**Функции для работы с пользователями**:
|
||||
- `updateUser`: Функция для обновления данных пользователя.
|
||||
- `createUser`: Функция для создания нового пользователя.
|
||||
- `getUser`: Функция для получения данных пользователя.
|
||||
|
||||
**Типы и функции для подписки и отписки от пользователя**:
|
||||
```
|
||||
export type FollowUserResponse =
|
||||
paths['/profiles/{username}/follow']['post']['responses']['200']['content']['application/json'];
|
||||
export type UnfollowUserResponse =
|
||||
paths['/profiles/{username}/follow']['delete']['responses']['200']['content']['application/json'];
|
||||
```
|
||||
**Функции для подписки и отписки от пользователя**:
|
||||
- `followUser`: Функция для подписки на пользователя.
|
||||
- `unfollowUser`: Функция для отписки от пользователя.
|
||||
7
FRONTEND/CONSTANTS.TS.md
Normal file
7
FRONTEND/CONSTANTS.TS.md
Normal file
@@ -0,0 +1,7 @@
|
||||
Код представляет собой файл конфигурации для приложения, где определены несколько констант, включая название приложения (`APP_NAME`) и базовый URL для взаимодействия с API (`API_BASE_URL`):
|
||||
|
||||
1. **`export const APP_NAME = 'We.PRO';`**: Здесь определена константа `APP_NAME`, которая содержит название приложения. Это полезно, если вам нужно использовать название приложения в различных частях вашего приложения, таких как заголовки, мета-теги и т.д.
|
||||
|
||||
3. **`export const API_BASE_URL = 'https://fipi.pro/api';`**: Это текущее значение константы `API_BASE_URL`, которое указывает на базовый URL для взаимодействия с вашим API.
|
||||
|
||||
Эти константы могут быть использованы в приложении для обращения к API с помощью Axios или другой библиотеки HTTP.
|
||||
14
FRONTEND/OPENAPI.YML.md
Normal file
14
FRONTEND/OPENAPI.YML.md
Normal file
@@ -0,0 +1,14 @@
|
||||
1. **openapi: 3.0.1**: Это версия спецификации OpenAPI.
|
||||
|
||||
2. **info**: Здесь содержится информация о нашем API, такая как название, описание, контактная информация, лицензия и версия API.
|
||||
|
||||
3. **tags**: Теги используются для группировки различных эндпоинтов вашего API.
|
||||
|
||||
4. **servers**: Здесь указываются серверы, на которых размещено ваше API. В нашем случае, это `http://127.0.0.1:8001/api`.
|
||||
|
||||
5. **paths**: Здесь описываются пути к различным ресурсам вашего API, такие как CRUD операции для статей, комментариев, задач и других сущностей.
|
||||
|
||||
6. **components**: Здесь определены компоненты вашего API, такие как схемы данных (schemas), ответы (responses), тела запросов (requestBodies), параметры (parameters) и схемы безопасности (securitySchemes). Эти компоненты могут быть использованы в различных запросах и ответах вашего API.
|
||||
|
||||
|
||||
В контексте проекта на Nuxt.js, мы можем использовать эту спецификацию OpenAPI для генерации типов TypeScript для взаимодействия с нашим API. Например, вы можете использовать инструменты, такие как Swagger Codegen, для автоматической генерации клиентских библиотек API на основе этой спецификации, что поможет вам упростить работу с вашим API внутри вашего приложения на Nuxt.js.
|
||||
45
FRONTEND/STORE/AUTH.TS.md
Normal file
45
FRONTEND/STORE/AUTH.TS.md
Normal file
@@ -0,0 +1,45 @@
|
||||
**Импорт функции defineStore из библиотеки pinia для создания хранилища**:
|
||||
```
|
||||
import { defineStore } from 'pinia'
|
||||
```
|
||||
**Импорт типа User из файла с типами '@/types'**:
|
||||
```
|
||||
import { User } from '@/types'
|
||||
```
|
||||
**Определение типа состояния для хранилища auth**:
|
||||
```
|
||||
type authState = {
|
||||
currentUser: User | undefined;
|
||||
};
|
||||
```
|
||||
В этом блоке определяется тип `authState`, который представляет состояние хранилища. `currentUser` может быть типа `User` или `undefined`.
|
||||
|
||||
**Начальное состояние хранилища**:
|
||||
```
|
||||
const defaultState: authState = {
|
||||
currentUser: undefined,
|
||||
};
|
||||
```
|
||||
Здесь устанавливается начальное состояние хранилища `authStore`, в котором `currentUser` равен `undefined`.
|
||||
|
||||
**Экспорт хранилища authStore с использованием defineStore**:
|
||||
```
|
||||
export const authStore = defineStore({
|
||||
id: 'auth',
|
||||
state: () => defaultState,
|
||||
getters: {
|
||||
isAuthenticated: (state) => state.currentUser !== undefined,
|
||||
jwtToken: (state) => state.currentUser?.token,
|
||||
},
|
||||
actions: {
|
||||
signIn(user: User) {
|
||||
this.currentUser = user;
|
||||
},
|
||||
signOut() {
|
||||
this.currentUser = undefined;
|
||||
},
|
||||
},
|
||||
persist: true,
|
||||
});
|
||||
```
|
||||
Здесь мы используем `defineStore` для создания хранилища `authStore` с определенными состоянием (`state`), геттерами (`getters`) для проверки аутентификации и получения токена, а также с действиями (`actions`) для входа и выхода пользователя. Флаг `persist: true` указывает, что состояние хранилища должно сохраняться между перезагрузками страницы.
|
||||
50
FRONTEND/STORE/UI.TS.md
Normal file
50
FRONTEND/STORE/UI.TS.md
Normal file
@@ -0,0 +1,50 @@
|
||||
**Импорт функции defineStore из библиотеки pinia для создания хранилища**:
|
||||
```
|
||||
import { defineStore } from 'pinia';
|
||||
```
|
||||
**Определение типа данных ConfirmationModalDataType**:
|
||||
```
|
||||
type ConfirmationModalDataType = {
|
||||
text: string,
|
||||
action: () => any
|
||||
};
|
||||
```
|
||||
Здесь определяется тип данных `ConfirmationModalDataType`, который содержит текст модального окна и функцию действия при подтверждении.
|
||||
|
||||
**Определение типа состояния для хранилища ui**:
|
||||
```
|
||||
type uiState = {
|
||||
confirmationModalStatus: boolean;
|
||||
confirmationModalData: ConfirmationModalDataType | undefined;
|
||||
};
|
||||
```
|
||||
В этом блоке определяется тип состояния `uiState` для хранилища. `confirmationModalStatus` указывает на состояние модального окна (открыто или закрыто), а `confirmationModalData` содержит данные для модального окна подтверждения.
|
||||
|
||||
**Начальное состояние хранилища**:
|
||||
```
|
||||
const defaultState: uiState = {
|
||||
confirmationModalStatus: false,
|
||||
confirmationModalData: undefined,
|
||||
};
|
||||
```
|
||||
Здесь устанавливается начальное состояние хранилища `uiStore`, в котором модальное окно подтверждения изначально закрыто и данные для него не определены.
|
||||
|
||||
**Экспорт хранилища uiStore с использованием defineStore**:
|
||||
```
|
||||
export const uiStore = defineStore({
|
||||
id: 'ui',
|
||||
state: () => defaultState,
|
||||
actions: {
|
||||
openConfirmationModal(text: string, action: () => any) {
|
||||
this.confirmationModalData = { text, action };
|
||||
this.confirmationModalStatus = true;
|
||||
},
|
||||
closeConfirmationModal() {
|
||||
this.confirmationModalData = undefined;
|
||||
this.confirmationModalStatus = false;
|
||||
},
|
||||
},
|
||||
persist: true,
|
||||
});
|
||||
```
|
||||
Здесь мы используем `defineStore` для создания хранилища `uiStore` с определенным состоянием (`state`), действиями (`actions`) для открытия и закрытия модального окна подтверждения, а также флагом `persist: true`, чтобы сохранять состояние хранилища между перезагрузками страницы.
|
||||
19
FRONTEND/TYPES.TS.md
Normal file
19
FRONTEND/TYPES.TS.md
Normal file
@@ -0,0 +1,19 @@
|
||||
|
||||
**Импорт типов компонентов из сгенерированного файла OpenAPI**:
|
||||
```
|
||||
openapi.gen import { components } from '~/openapi.gen'
|
||||
```
|
||||
**Определение пользовательских типов на основе схем OpenAPI**:
|
||||
- `User`, `Article`, `ArticleComment` - типы данных, соответствующие схемам `User`, `Article`, `Comment` из OpenAPI.
|
||||
- `Todo`, `TodoComment` - типы данных для задачи и комментария к задаче соответственно.
|
||||
- `Tenant`, `TenantContact` - типы данных для арендаторов и контактов к арендаторам.
|
||||
- `Team` - тип данных для команды.
|
||||
|
||||
**Определение типа состояния Формы (CREATE | UPDATE):**
|
||||
```
|
||||
// Тип состояния Формы (создвть | изменить)
|
||||
export enum FormMode {
|
||||
CREATE,
|
||||
UPDATE
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user