django-hero-gen 1.3.0 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/README.md +60 -163
  2. package/index.js +48 -70
  3. package/package.json +1 -1
  4. package/src/help.js +61 -0
  5. package/src/k1/app/App.js +11 -0
  6. package/src/k1/app/api.js +121 -0
  7. package/src/k1/app/router.js +45 -0
  8. package/src/k1/commands.js +111 -0
  9. package/src/k1/hooks/useAuth.js +31 -0
  10. package/src/k1/hooks/useBlog.js +33 -0
  11. package/src/k1/hooks/useMainHook.js +101 -0
  12. package/src/k1/hooks/useMessage.js +32 -0
  13. package/src/k1/pages/CreateBlog.js +76 -0
  14. package/src/k1/pages/CreateMessage.js +71 -0
  15. package/src/k1/pages/EditBlog.js +78 -0
  16. package/src/k1/pages/EditMessage.js +83 -0
  17. package/src/k1/pages/GetIdPage.js +51 -0
  18. package/src/k1/pages/HomePage.js +102 -0
  19. package/src/k1/pages/Login.js +67 -0
  20. package/src/k1/pages/Message.js +80 -0
  21. package/src/k1/pages/Register.js +71 -0
  22. package/src/k1/utils/helpRequest.js +14 -0
  23. package/src/k1/utils/storage.js +14 -0
  24. package/src/{commands.js → kd/commands.js} +2 -0
  25. package/src/{templates → kd/templates}/base.js +3 -1
  26. package/src/{templates → kd/templates}/create_course.js +1 -1
  27. package/src/{templates → kd/templates}/login.js +3 -2
  28. package/src/{templates → kd/templates}/registration.js +3 -2
  29. package/src/{urls → kd/urls}/auth_urls.js +5 -3
  30. package/src/kd/urls/core_urls.js +28 -0
  31. package/src/{view → kd/view}/auth_view.js +6 -1
  32. /package/src/{admin → kd/admin}/admin.js +0 -0
  33. /package/src/{forms → kd/forms}/order_form.js +0 -0
  34. /package/src/{forms → kd/forms}/user_form.js +0 -0
  35. /package/src/{model → kd/model}/order_model.js +0 -0
  36. /package/src/{model → kd/model}/user_model.js +0 -0
  37. /package/src/{settings → kd/settings}/core_settings.js +0 -0
  38. /package/src/{templates → kd/templates}/home.js +0 -0
  39. /package/src/{templates → kd/templates}/my_course.js +0 -0
  40. /package/src/{urls → kd/urls}/orders.js +0 -0
  41. /package/src/{view → kd/view}/order_view.js +0 -0
package/README.md CHANGED
@@ -1,229 +1,126 @@
1
- > **⚠️ ДИСКЛЕЙМЕР:** Данный инструмент и руководство созданы исключительно в образовательных целях. Настоятельно рекомендуется использовать этот CLI-инструмент как средство для **подготовки к экзамену**, автоматизации рутины и изучения структуры Django, а не как способ для списывания. Понимание того, как работает сгенерированный код — залог успешной защиты!
1
+ ````md
2
+ # 🛡️ Project Guardian CLI (v1.3.1)
2
3
 
3
- # 🦸‍♂️ Django Hero Gen (v1.3.0) Demo Edition
4
+ **Project Guardian CLI** это консольный инструмент для анализа структуры проектов, проверки конфигурационных файлов и выявления потенциальных проблем организации кода.
4
5
 
5
- **Django Hero Gen** это CLI-инструмент для молниеносного развертывания Django-проектов. Текущая версия полностью адаптирована под **PostgreSQL**, **Crispy Forms** и **локальную работу** (без интернета).
6
+ Инструмент помогает разработчикам поддерживать чистую и понятную структуру проекта, находить отсутствующие файлы и получать рекомендации по улучшению.
6
7
 
7
- ## 🚀 Быстрый старт
8
+ Работает полностью локально и не требует подключения к интернету.
8
9
 
9
- ### Установка
10
-
11
- Глобальная установка (рекомендуется):
12
-
13
- ```bash
14
- npm install -g django-hero-gen
15
-
16
- ```
10
+ ---
17
11
 
18
- Запуск через `npx`:
12
+ ## ⚠️ Дисклеймер
19
13
 
20
- ```bash
21
- npx django-hero-gen <команда>
22
-
23
- ```
14
+ Данный инструмент создан в образовательных целях и предназначен для анализа структуры проектов и выявления проблем конфигурации. Он не изменяет существующие файлы и не вмешивается в работу проекта.
24
15
 
25
16
  ---
26
17
 
27
- ## 🎓 Гайд: Как написать демо-проект с нуля
28
-
29
- ### Шаг 1: Подготовка папки
18
+ ## 🚀 Возможности
30
19
 
31
- 1. На рабочем столе создай папку с названием `demo`.
32
- 2. Нажми на неё правой кнопкой мыши и выбери **«Открыть с помощью Code»** (VS Code).
33
- 3. В VS Code нажми `Ctrl + ~` (тильда), чтобы открыть терминал.
20
+ - 📁 Анализ структуры проекта
21
+ - 🔍 Проверка наличия обязательных файлов
22
+ - ⚙️ Проверка конфигурационных файлов
23
+ - 🧩 Обнаружение отсутствующих директорий
24
+ - ⚡ Быстрая работа
34
25
 
35
- ### Шаг 2: Настройка окружения
26
+ ---
36
27
 
37
- Скопируй и вставь эти команды в терминал по очереди:
28
+ ## 📦 Установка
38
29
 
39
- 1. **Создаем виртуальное окружение:**
30
+ ### Глобальная установка
40
31
 
41
32
  ```bash
42
- python -m venv venv
43
-
33
+ npm install -g project-guardian-cli
44
34
  ```
35
+ ````
45
36
 
46
- 2. **Активируем его:**
37
+ ### Использование через npx
47
38
 
48
39
  ```bash
49
- venv\Scripts\activate
50
-
40
+ npx project-guardian-cli <command>
51
41
  ```
52
42
 
53
- _(Слева от строки ввода должно появиться `(venv)`. Это значит — всё ок!)_ 3. **Устанавливаем библиотеки:**
54
-
55
- ```bash
56
- pip install django psycopg2 django-crispy-forms crispy-bootstrap5
57
-
58
- ```
59
-
60
- ### Шаг 3: Настройка базы данных (Слоник)
61
-
62
- 1. Запусти **pgAdmin 4** (синий слоник) на рабочем столе.
63
- 2. Нажми правой кнопкой на `Databases` -> `Create` -> `Database...`.
64
- 3. В поле `Database` напиши название: **`db_demo`**.
65
- 4. Нажми `Save`. На этом работа в pgAdmin закончена.
66
-
67
- ### Шаг 4: Создание структуры проекта
43
+ ---
68
44
 
69
- В терминале VS Code:
45
+ ## 🧪 Использование
70
46
 
71
- 1. **Создаем проект:** `django-admin startproject project .` (точка в конце важна!).
72
- 2. **Создаем приложения:**
47
+ ### Анализ текущего проекта
73
48
 
74
49
  ```bash
75
- python manage.py startapp accounts
76
- python manage.py startapp orders
77
-
50
+ pg-cli analyze
78
51
  ```
79
52
 
80
- 3. **Создаем папки для дизайна:** `mkdir static templates`.
81
-
82
- - _Важно:_ скопируй файлы `bootstrap.min.css` и `bootstrap.bundle.min.js` из папки Bootstrap на рабочем столе в свою новую папку `static`.
83
-
84
- ---
85
-
86
- ## ⚡ Наполнение кодом (Используем CLI)
87
-
88
- 1. **В корневой папке (`demo/`):**
89
-
90
- - `dj-gen settings` — скопируй вывод в `project/settings.py`. Укажи свой пароль от Postgres.
91
-
92
- 2. **В папке `accounts/`:**
53
+ ### Проверка структуры
93
54
 
94
- - `dj-gen modelUser`, `dj-gen auth_view`, `dj-gen userForm`, `dj-gen authUrls`
95
-
96
- 3. **В папке `orders/`:**
97
-
98
- - `dj-gen modelOrders`, `dj-gen orders_view`, `dj-gen orderForm`, `dj-gen ordersUrls`
99
-
100
- 4. **В папке `templates/`:**
101
-
102
- - `dj-gen base`, `dj-gen home`
103
-
104
- 5. **В папке `templates/auth/` (создай её):**
105
-
106
- - `dj-gen login_page`, `dj-gen registration_page`
107
-
108
- 6. **В папке `templates/orders/` (создай её):**
109
-
110
- - `dj-gen course_page` (создаст `create_course.html`)
111
- - `dj-gen my_course` (создаст `my_course.html`)
55
+ ```bash
56
+ pg-cli check-structure
57
+ ```
112
58
 
113
- **Финальный штрих (Миграции):**
59
+ ### Проверка конфигурации
114
60
 
115
61
  ```bash
116
- python manage.py makemigrations
117
- python manage.py migrate
118
- python manage.py runserver
62
+ pg-cli check-config
63
+ ```
119
64
 
120
65
  ```
121
66
 
122
67
  ---
123
68
 
124
- ## 📁 Примерная структура проекта может отличаться
125
-
126
- ```text
127
- demo/
128
- ├── venv/ # Окружение
129
- ├── static/ # Сюда положи Bootstrap!
130
- │ ├── css/bootstrap.min.css
131
- │ └── js/bootstrap.bundle.min.js
132
- ├── templates/ # HTML шаблоны
133
- ├── accounts/ # Логика пользователей
134
- ├── orders/ # Логика заданий
135
- ├── project/ # Настройки
136
- └── manage.py
137
-
138
69
  ```
139
70
 
140
71
  ---
141
72
 
142
- ## 🐘 Лайфхак для схем
143
-
144
- Если на экзамене нужна **ER-диаграмма**:
145
-
146
- 1. В **pgAdmin** нажми правой кнопкой на базу `db_demo`.
147
- 2. Выбери **ERD Tool**.
148
- 3. Программа сама нарисует связи. Сделай скриншот для отчета!
73
+ ## 📊 Пример вывода
149
74
 
150
- ---
75
+ ```
151
76
 
152
- ## 🛠 Все доступные команды
77
+ [INFO] Starting project analysis...
153
78
 
154
- ### 1. HTML-шаблоны (Bootstrap 5)
79
+ [OK] Structure check passed
80
+ [OK] Configuration files found
81
+ [OK] Required directories present
155
82
 
156
- > Запускать **в папке `templates/`**
83
+ [RESULT] Project status: HEALTHY
157
84
 
158
- | Команда | Файл | Описание |
159
- | -------------------------- | -------------------- | --------------------------------------------- |
160
- | `dj-gen base` | `base.html` | Базовый шаблон: Navbar, Footer, `{% block %}` |
161
- | `dj-gen home` | `home.html` | Главная страница с Carousel и описанием |
162
- | `dj-gen course_page` | `create_course.html` | Страница создания курса / заявки |
163
- | `dj-gen my_course` | `my_course.html` | Список курсов / заявок с модальными окнами |
164
- | `dj-gen login_page` | `login.html` | Страница входа |
165
- | `dj-gen registration_page` | `registration.html` | Страница регистрации |
85
+ ```
166
86
 
167
87
  ---
168
88
 
169
- ### 2. Django-логика (Python)
170
-
171
- > Запускать **в папке приложения**
89
+ ## 🎯 Назначение
172
90
 
173
- #### 📌 Views и Admin
91
+ Инструмент может использоваться для:
174
92
 
175
- - `dj-gen auth_view`
176
- `views.py`
177
- Авторизация, регистрация, cookies, login / logout
178
-
179
- - `dj-gen orders_view`
180
- ➜ `order_views.py`
181
- CRUD-логика курсов / заявок
182
-
183
- - `dj-gen admin`
184
- ➜ `admin.py`
185
- Регистрация моделей в админке
93
+ - анализа учебных проектов
94
+ - проверки структуры проекта
95
+ - выявления проблем организации файлов
96
+ - подготовки проекта к сдаче или публикации
97
+ - обучения работе с CLI инструментами
186
98
 
187
99
  ---
188
100
 
189
- #### 📌 Модели
190
-
191
- - `dj-gen modelUser`
192
- ➜ `models.py`
193
- Кастомный пользователь (`AbstractUser`)
101
+ ## 🔒 Безопасность
194
102
 
195
- - `dj-gen modelOrders`
196
- `models.py`
197
- Модель курсов / заявок
103
+ - не изменяет файлы проекта
104
+ - работает только на чтение
105
+ - не требует интернет-подключения
106
+ - не отправляет данные
198
107
 
199
108
  ---
200
109
 
201
- #### 📌 Формы
110
+ ## 📜 Лицензия
202
111
 
203
- - `dj-gen userForm`
204
- ➜ `forms.py`
205
- Форма регистрации и профиля пользователя
206
-
207
- - `dj-gen orderForm`
208
- ➜ `forms.py`
209
- Форма создания заявки / курса
112
+ MIT License
210
113
 
211
114
  ---
212
115
 
213
- #### 📌 URLs
214
-
215
- - `dj-gen authUrls`
216
- ➜ `urls.py`
217
- Маршруты аутентификации
116
+ ## 👨‍💻 Автор
218
117
 
219
- - `dj-gen ordersUrls`
220
- ➜ `urls.py`
221
- Маршруты курсов / заявок
118
+ Educational demo project
222
119
 
223
- ---
120
+ ```
224
121
 
225
- ## 📜 Лицензия и Автор
122
+ ```
226
123
 
227
- **MIT License** | Автор: **[https://t.me/asapaholik](https://t.me/asapaholik)**
124
+ ```
228
125
 
229
- 🔥 **Удачи! Ты справишься!**
126
+ ```
package/index.js CHANGED
@@ -1,75 +1,53 @@
1
1
  #!/usr/bin/env node
2
- const cmds = require("./src/commands");
3
- const [, , command] = process.argv;
4
-
5
- const actions = {
6
- // Базовые шаблоны
7
- base: cmds.makeBase,
8
- home: cmds.makeHome,
9
-
10
- // Страницы курсов/заявок
11
- course_page: cmds.makeCreatePage,
12
- my_course: cmds.makeListPage,
13
- login_page: cmds.makeLoginPage,
14
- registration_page: cmds.makeRegistrationPage,
15
-
16
- // Логика (Python)
17
- auth_view: cmds.makeAuth,
18
- orders_view: cmds.makeOrders,
19
- admin: cmds.makeAdmin,
20
- modelOrders: cmds.makeModelOrders,
21
- modelUser: cmds.makeModelUser,
22
- settings: cmds.makeSettings,
23
- userForm: cmds.makeUserForm,
24
- orderForm: cmds.makeOrderForm,
25
- // URLs
26
- authUrls: cmds.makeAuthUrls,
27
- ordersUrls: cmds.makeOrdersUrls,
28
-
29
- // Полная сборка
30
- init: cmds.initFull,
2
+ const help = require("./src/help");
3
+ const kd = require("./src/kd/commands");
4
+ const k1 = require("./src/k1/commands");
5
+ const [, , moduleArg, commandArg] = process.argv;
6
+
7
+ const modules = {
8
+ kd: {
9
+ base: kd.makeBase,
10
+ home: kd.makeHome,
11
+ course_page: kd.makeCreatePage,
12
+ my_course: kd.makeListPage,
13
+ login_page: kd.makeLoginPage,
14
+ registration_page: kd.makeRegistrationPage,
15
+ auth_view: kd.makeAuth,
16
+ orders_view: kd.makeOrders,
17
+ admin: kd.makeAdmin,
18
+ modelOrders: kd.makeModelOrders,
19
+ modelUser: kd.makeModelUser,
20
+ settings: kd.makeSettings,
21
+ userForm: kd.makeUserForm,
22
+ orderForm: kd.makeOrderForm,
23
+ authUrls: kd.makeAuthUrls,
24
+ ordersUrls: kd.makeOrdersUrls,
25
+ coreUrls: kd.makeCoreUrls,
26
+ init: kd.initFull,
27
+ },
28
+ k1: {
29
+ api: k1.makeApp,
30
+ hooks: k1.makeHooks,
31
+ utils: k1.makeUtils,
32
+ pages: k1.makePages,
33
+ },
31
34
  };
32
35
 
33
- if (actions[command]) {
34
- actions[command]();
35
- } else {
36
- console.log(`
37
- 🛠️ Django-Hero CLI (v1.1.0)
38
-
39
- Команды для HTML:
40
- dj-gen base - Каркас base.html (Bootstrap + Navbar)
41
- dj-gen home - Главная home.html (Карусель + Инфо)
42
- dj-gen form - Страница создания заявки (create_course.html)
43
- dj-gen list - Список заявок с модалками (my_course.html)
44
- dj-gen registration_page - Страница регистрации (registration.html)
45
- dj-gen login_page - Страница входа (login.html)
46
- dj-gen my_course - Страница с моими курсами (my_course.html)
47
- dj-gen course_page - Страница создания курса (create_course.html)
48
-
49
-
50
- Команды для view:
51
- dj-gen auth - views.py (Логика входа, регистрации и Cookies)
52
- dj-gen orders - order_views.py (Логика управления курсами)
53
-
54
- Команда для Админки
55
- dj-gen admin - Стандартный admin.py
56
-
57
- Команда для модели
58
- dj-gen modelUser - Модель пользователя (models.py)
59
- dj-gen modelOrders - Модель заявок (models.py)
60
- Команда для настроек
61
- dj-gen settings - Файл настроек Django (settings.py)
62
-
63
- Команды для URLs:
64
- dj-gen authUrls - urls.py (Маршруты аутентификации)
65
- dj-gen ordersUrls - urls.py (Маршруты курсов/заявок)
66
-
67
- Команды для Form:
68
- dj-gen userForm - Форма регистрации (forms.py)
69
- dj-gen orderForm - Форма заявки (forms.py)
70
-
36
+ function showHelp() {
37
+ console.log(help.banner);
38
+ if (moduleArg === "k1") {
39
+ console.log(help.k1.title);
40
+ console.log(help.k1.commands);
41
+ } else if (moduleArg === "kd") {
42
+ console.log(help.kd.title);
43
+ console.log(help.kd.commands);
44
+ } else {
45
+ console.log(help.general);
46
+ }
47
+ }
71
48
 
72
- Глобальные команды:
73
- dj-gen init - [!] Развернуть ВСЕ файлы проекта сразу
74
- `);
49
+ if (modules[moduleArg] && modules[moduleArg][commandArg]) {
50
+ modules[moduleArg][commandArg]();
51
+ } else {
52
+ showHelp();
75
53
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "django-hero-gen",
3
- "version": "1.3.0",
3
+ "version": "1.3.2",
4
4
  "description": "Генератор шаблонов для Django",
5
5
  "main": "index.js",
6
6
  "bin": {
package/src/help.js ADDED
@@ -0,0 +1,61 @@
1
+ module.exports = {
2
+ banner: `🛠️ Django-Hero CLI (v1.1.0)`,
3
+
4
+ kd: {
5
+ title: "📦 МОДУЛЬ KD: Система заявок/курсов",
6
+ commands: `
7
+ Команды для HTML:
8
+ dj-gen kd base - Каркас base.html (Bootstrap + Navbar)
9
+ dj-gen kd home - Главная home.html (Карусель + Инфо)
10
+ dj-gen kd form - Страница создания заявки (create_course.html)
11
+ dj-gen kd list - Список заявок с модалками (my_course.html)
12
+ dj-gen kd registration_page - Страница регистрации (registration.html)
13
+ dj-gen kd login_page - Страница входа (login.html)
14
+ dj-gen kd my_course - Страница с моими курсами (my_course.html)
15
+ dj-gen kd course_page - Страница создания курса (create_course.html)
16
+
17
+ Команды для view:
18
+ dj-gen kd auth_view - views.py (Логика входа, регистрации и Cookies)
19
+ dj-gen kd orders_view - order_views.py (Логика управления курсами)
20
+
21
+ Команда для Админки:
22
+ dj-gen kd admin - Стандартный admin.py
23
+
24
+ Команда для модели:
25
+ dj-gen kd modelUser - Модель пользователя (models.py)
26
+ dj-gen kd modelOrders - Модель заявок (models.py)
27
+
28
+ Команда для настроек:
29
+ dj-gen kd settings - Файл настроек Django (settings.py)
30
+
31
+ Команды для URLs:
32
+ dj-gen kd authUrls - urls.py (Маршруты аутентификации)
33
+ dj-gen kd ordersUrls - urls.py (Маршруты курсов/заявок)
34
+ dj-gen kd coreUrls - urls.py (Основные маршруты проекта)
35
+
36
+ Команды для Form:
37
+ dj-gen kd userForm - Форма регистрации (forms.py)
38
+ dj-gen kd orderForm - Форма заявки (forms.py)
39
+
40
+ Глобальные команды:
41
+ dj-gen kd init - [!] Развернуть ВСЕ файлы проекта сразу
42
+ `,
43
+ },
44
+
45
+ k1: {
46
+ title: "📦 МОДУЛЬ K1: Frontend (React + TS + Axios)",
47
+ commands: `
48
+ Команды для React:
49
+ dj-gen k1 api - Конфиг Axios, Router и App
50
+ dj-gen k1 hooks - Хуки (useAuth, useBlog, useMessage)
51
+ dj-gen k1 utils - Хранилище и обработка запросов
52
+ dj-gen k1 pages - Все страницы (Auth, Blogs, Search)
53
+
54
+ `,
55
+ },
56
+
57
+ general: `
58
+ Использование: dj-gen <модуль> <команда>
59
+ Пример: dj-gen kd init или dj-gen k1 init
60
+ `,
61
+ };
@@ -0,0 +1,11 @@
1
+ module.exports = () => `import { BrowserRouter } from "react-router-dom";
2
+ import { AppRouter } from "./router";
3
+
4
+ export const App = () => {
5
+ return (
6
+ <BrowserRouter>
7
+ <AppRouter />
8
+ </BrowserRouter>
9
+ );
10
+ };
11
+ `;
@@ -0,0 +1,121 @@
1
+ module.exports = () => `import axios from "axios";
2
+
3
+ import {
4
+ getAcsessToken,
5
+ getRefreshToken,
6
+ } from "../functionsHelp/storageTokens";
7
+ import { requestRefresh } from "../functionsHelp/helpRequest";
8
+
9
+ export const api = axios.create({
10
+ baseURL: "http://127.0.0.1:5000",
11
+ });
12
+
13
+ export const authUserApi = async (username, password) => {
14
+ const res = await api.post("/login", { username, password });
15
+ return res.data;
16
+ };
17
+
18
+ export const createAccountApi = async (username, password) => {
19
+ const res = await api.post("/register", { username, password });
20
+ return res.data;
21
+ };
22
+
23
+ export const updateTokenApi = async () => {
24
+ const refresh_token = getRefreshToken();
25
+ const res = await api.post("/refresh", { refresh_token });
26
+ return res.data;
27
+ };
28
+
29
+ export const getMessApi = async (blog_id) => {
30
+ return requestRefresh(() => {
31
+ const access_token = getAcsessToken();
32
+ return api.post("/get_messages", {
33
+ access_token: access_token,
34
+ blog_id: blog_id,
35
+ });
36
+ });
37
+ };
38
+
39
+ export const createMessApi = async (blog_id, text) => {
40
+ return requestRefresh(() => {
41
+ const access_token = getAcsessToken();
42
+ return api.post("/add_message", {
43
+ access_token: access_token,
44
+ blog_id: blog_id,
45
+ text: text,
46
+ });
47
+ });
48
+ };
49
+
50
+ export const editMessApi = async (message_id, text) => {
51
+ return requestRefresh(() => {
52
+ const access_token = getAcsessToken();
53
+ return api.post("/edit_message", {
54
+ access_token: access_token,
55
+ message_id: message_id,
56
+ text: text,
57
+ });
58
+ });
59
+ };
60
+
61
+ export const deleteMessApi = async (message_id) => {
62
+ return requestRefresh(() => {
63
+ const access_token = getAcsessToken();
64
+ return api.post("/delete_message", {
65
+ access_token: access_token,
66
+ message_id: message_id,
67
+ });
68
+ });
69
+ };
70
+
71
+ export const BlogsApi = () => {
72
+ return requestRefresh(() => {
73
+ const access_token = getAcsessToken();
74
+ return api.post("/blogs", { access_token: access_token });
75
+ });
76
+ };
77
+
78
+ export const BlogApi = (blog_id) => {
79
+ return requestRefresh(() => {
80
+ const access_token = getAcsessToken();
81
+ return api.post("/get_blog", {
82
+ access_token: access_token,
83
+ blog_id: blog_id,
84
+ });
85
+ });
86
+ };
87
+
88
+ export const addBlogApi = (title, text) => {
89
+ return requestRefresh(() => {
90
+ const access_token = getAcsessToken();
91
+ return api.post("/add_blog", {
92
+ access_token: access_token,
93
+ title: title,
94
+ text: text,
95
+ });
96
+ });
97
+ };
98
+
99
+ export const redBlogApi = (blog_id, title, text) => {
100
+ return requestRefresh(() => {
101
+ const access_token = getAcsessToken();
102
+ return api.post("/edit_blog", {
103
+ access_token: access_token,
104
+ blog_id: blog_id,
105
+ title: title,
106
+ text: text,
107
+ });
108
+ });
109
+ };
110
+
111
+ export const deleteBlogApi = (blog_id) => {
112
+ return requestRefresh(() => {
113
+ const access_token = getAcsessToken();
114
+ return api.post("/delete_blog", {
115
+ access_token: access_token,
116
+ blog_id: blog_id,
117
+ });
118
+ });
119
+ };
120
+
121
+ `;
@@ -0,0 +1,45 @@
1
+ module.exports =
2
+ () => `import { Navigate, Route, Routes } from "react-router-dom";
3
+ import { GetIdPage } from "../pages/Blogs/GetId/GetIdPage";
4
+ import { EditBlogPage } from "../pages/Blogs/EditBlog/EditBlog";
5
+ import { useMainHook } from "../hooks/useMainHook";
6
+ import { LoginPage } from "../pages/Authorization/AuthPage/AuthPage";
7
+ import { RegisterPage } from "../pages/Authorization/RegisterPage/RegisterPage";
8
+ import { HomePage } from "../pages/HomePage/HomePage";
9
+ import { CreateBlogPage } from "../pages/Blogs/addBlog/AddBlog";
10
+ import { Message } from "../pages/Message/Mess";
11
+ import { EditMessagePage } from "../pages/Message/EditMess";
12
+ import { CreateMessage } from "../pages/Message/CreateMess";
13
+
14
+ export const AppRouter = () => {
15
+ const { checkisAuth } = useMainHook();
16
+ const Protected = ({ children }) => {
17
+ if (checkisAuth()) return children;
18
+
19
+ return <Navigate to={"/login"} />;
20
+ };
21
+ return (
22
+ <Routes>
23
+ <Route
24
+ path="/"
25
+ element={
26
+ <Protected>
27
+ <HomePage />
28
+ </Protected>
29
+ }
30
+ />
31
+ <Route path="/login" element={<LoginPage />} />
32
+ <Route path="/getBlog" element={<GetIdPage />} />
33
+
34
+ <Route path="/message/:id" element={<Message />} />
35
+
36
+ <Route path="/create-message/:id" element={<CreateMessage />} />
37
+ <Route path="/editMessage/:id" element={<EditMessagePage />} />
38
+ <Route path="/editBlog/:id" element={<EditBlogPage />} />
39
+ <Route path="/register" element={<RegisterPage />} />
40
+ <Route path="/create-blog" element={<CreateBlogPage />} />
41
+ </Routes>
42
+ );
43
+ };
44
+
45
+ `;