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.
- package/README.md +60 -163
- package/index.js +48 -70
- package/package.json +1 -1
- package/src/help.js +61 -0
- package/src/k1/app/App.js +11 -0
- package/src/k1/app/api.js +121 -0
- package/src/k1/app/router.js +45 -0
- package/src/k1/commands.js +111 -0
- package/src/k1/hooks/useAuth.js +31 -0
- package/src/k1/hooks/useBlog.js +33 -0
- package/src/k1/hooks/useMainHook.js +101 -0
- package/src/k1/hooks/useMessage.js +32 -0
- package/src/k1/pages/CreateBlog.js +76 -0
- package/src/k1/pages/CreateMessage.js +71 -0
- package/src/k1/pages/EditBlog.js +78 -0
- package/src/k1/pages/EditMessage.js +83 -0
- package/src/k1/pages/GetIdPage.js +51 -0
- package/src/k1/pages/HomePage.js +102 -0
- package/src/k1/pages/Login.js +67 -0
- package/src/k1/pages/Message.js +80 -0
- package/src/k1/pages/Register.js +71 -0
- package/src/k1/utils/helpRequest.js +14 -0
- package/src/k1/utils/storage.js +14 -0
- package/src/{commands.js → kd/commands.js} +2 -0
- package/src/{templates → kd/templates}/base.js +3 -1
- package/src/{templates → kd/templates}/create_course.js +1 -1
- package/src/{templates → kd/templates}/login.js +3 -2
- package/src/{templates → kd/templates}/registration.js +3 -2
- package/src/{urls → kd/urls}/auth_urls.js +5 -3
- package/src/kd/urls/core_urls.js +28 -0
- package/src/{view → kd/view}/auth_view.js +6 -1
- /package/src/{admin → kd/admin}/admin.js +0 -0
- /package/src/{forms → kd/forms}/order_form.js +0 -0
- /package/src/{forms → kd/forms}/user_form.js +0 -0
- /package/src/{model → kd/model}/order_model.js +0 -0
- /package/src/{model → kd/model}/user_model.js +0 -0
- /package/src/{settings → kd/settings}/core_settings.js +0 -0
- /package/src/{templates → kd/templates}/home.js +0 -0
- /package/src/{templates → kd/templates}/my_course.js +0 -0
- /package/src/{urls → kd/urls}/orders.js +0 -0
- /package/src/{view → kd/view}/order_view.js +0 -0
package/README.md
CHANGED
|
@@ -1,229 +1,126 @@
|
|
|
1
|
-
|
|
1
|
+
````md
|
|
2
|
+
# 🛡️ Project Guardian CLI (v1.3.1)
|
|
2
3
|
|
|
3
|
-
|
|
4
|
+
**Project Guardian CLI** — это консольный инструмент для анализа структуры проектов, проверки конфигурационных файлов и выявления потенциальных проблем организации кода.
|
|
4
5
|
|
|
5
|
-
|
|
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
|
-
|
|
12
|
+
## ⚠️ Дисклеймер
|
|
19
13
|
|
|
20
|
-
|
|
21
|
-
npx django-hero-gen <команда>
|
|
22
|
-
|
|
23
|
-
```
|
|
14
|
+
Данный инструмент создан в образовательных целях и предназначен для анализа структуры проектов и выявления проблем конфигурации. Он не изменяет существующие файлы и не вмешивается в работу проекта.
|
|
24
15
|
|
|
25
16
|
---
|
|
26
17
|
|
|
27
|
-
##
|
|
28
|
-
|
|
29
|
-
### Шаг 1: Подготовка папки
|
|
18
|
+
## 🚀 Возможности
|
|
30
19
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
20
|
+
- 📁 Анализ структуры проекта
|
|
21
|
+
- 🔍 Проверка наличия обязательных файлов
|
|
22
|
+
- ⚙️ Проверка конфигурационных файлов
|
|
23
|
+
- 🧩 Обнаружение отсутствующих директорий
|
|
24
|
+
- ⚡ Быстрая работа
|
|
34
25
|
|
|
35
|
-
|
|
26
|
+
---
|
|
36
27
|
|
|
37
|
-
|
|
28
|
+
## 📦 Установка
|
|
38
29
|
|
|
39
|
-
|
|
30
|
+
### Глобальная установка
|
|
40
31
|
|
|
41
32
|
```bash
|
|
42
|
-
|
|
43
|
-
|
|
33
|
+
npm install -g project-guardian-cli
|
|
44
34
|
```
|
|
35
|
+
````
|
|
45
36
|
|
|
46
|
-
|
|
37
|
+
### Использование через npx
|
|
47
38
|
|
|
48
39
|
```bash
|
|
49
|
-
|
|
50
|
-
|
|
40
|
+
npx project-guardian-cli <command>
|
|
51
41
|
```
|
|
52
42
|
|
|
53
|
-
|
|
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
|
-
|
|
45
|
+
## 🧪 Использование
|
|
70
46
|
|
|
71
|
-
|
|
72
|
-
2. **Создаем приложения:**
|
|
47
|
+
### Анализ текущего проекта
|
|
73
48
|
|
|
74
49
|
```bash
|
|
75
|
-
|
|
76
|
-
python manage.py startapp orders
|
|
77
|
-
|
|
50
|
+
pg-cli analyze
|
|
78
51
|
```
|
|
79
52
|
|
|
80
|
-
|
|
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
|
-
|
|
95
|
-
|
|
96
|
-
|
|
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
|
-
|
|
117
|
-
|
|
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
|
-
|
|
79
|
+
[OK] Structure check passed
|
|
80
|
+
[OK] Configuration files found
|
|
81
|
+
[OK] Required directories present
|
|
155
82
|
|
|
156
|
-
|
|
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
|
-
|
|
170
|
-
|
|
171
|
-
> Запускать **в папке приложения**
|
|
89
|
+
## 🎯 Назначение
|
|
172
90
|
|
|
173
|
-
|
|
91
|
+
Инструмент может использоваться для:
|
|
174
92
|
|
|
175
|
-
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
-
|
|
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
|
-
-
|
|
196
|
-
|
|
197
|
-
|
|
103
|
+
- не изменяет файлы проекта
|
|
104
|
+
- работает только на чтение
|
|
105
|
+
- не требует интернет-подключения
|
|
106
|
+
- не отправляет данные
|
|
198
107
|
|
|
199
108
|
---
|
|
200
109
|
|
|
201
|
-
|
|
110
|
+
## 📜 Лицензия
|
|
202
111
|
|
|
203
|
-
|
|
204
|
-
➜ `forms.py`
|
|
205
|
-
Форма регистрации и профиля пользователя
|
|
206
|
-
|
|
207
|
-
- `dj-gen orderForm`
|
|
208
|
-
➜ `forms.py`
|
|
209
|
-
Форма создания заявки / курса
|
|
112
|
+
MIT License
|
|
210
113
|
|
|
211
114
|
---
|
|
212
115
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
- `dj-gen authUrls`
|
|
216
|
-
➜ `urls.py`
|
|
217
|
-
Маршруты аутентификации
|
|
116
|
+
## 👨💻 Автор
|
|
218
117
|
|
|
219
|
-
|
|
220
|
-
➜ `urls.py`
|
|
221
|
-
Маршруты курсов / заявок
|
|
118
|
+
Educational demo project
|
|
222
119
|
|
|
223
|
-
|
|
120
|
+
```
|
|
224
121
|
|
|
225
|
-
|
|
122
|
+
```
|
|
226
123
|
|
|
227
|
-
|
|
124
|
+
```
|
|
228
125
|
|
|
229
|
-
|
|
126
|
+
```
|
package/index.js
CHANGED
|
@@ -1,75 +1,53 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
const
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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
|
-
|
|
74
|
-
|
|
49
|
+
if (modules[moduleArg] && modules[moduleArg][commandArg]) {
|
|
50
|
+
modules[moduleArg][commandArg]();
|
|
51
|
+
} else {
|
|
52
|
+
showHelp();
|
|
75
53
|
}
|
package/package.json
CHANGED
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,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
|
+
`;
|