Add notes module
security/scan 11 findings, 11 blocking
security / scan (pull_request) Failing after 1m1s
security/review 0 findings, 0 blocking
security / review (pull_request) Successful in 1m29s
security / deep-audit (pull_request) Skipped

This commit is contained in:
dev1-playground-agent
2026-08-25 05:26:07 +00:00
parent 789aa6adaa
commit 03cd3169e5
2 changed files with 211 additions and 3 deletions
+97 -2
View File
@@ -1,6 +1,6 @@
# Модуль учёта заказов клиентов
# Модуль учёта заказов клиентов и заметок пользователей
Простой HTTP-сервис для управления заказами клиентов.
Простой HTTP-сервис для управления заказами клиентов и заметками пользователей.
## Структура
@@ -16,6 +16,15 @@
- `user_id` — владелец заказа
- `amount` — сумма заказа
### Хранение заметок
Заметки хранятся в памяти в словаре `notes`. Каждая заметка имеет:
- `id` — уникальный идентификатор
- `user_id` — владелец заметки
- `title` — заголовок заметки
- `content` — содержимое заметки
- `created_at` — время создания
### Эндпоинты
#### GET /orders/{id}
@@ -57,6 +66,92 @@ curl -X POST -H "Authorization: Bearer <your-token>" \
Бэкап выполняется асинхронно через rsync. Уведомления о статусе бэкапа отправляются через GitHub Notifications (на текущем этапе просто логируются).
### Эндпоинты заметок
#### POST /notes
Создание новой заметки. Требует авторизации через заголовок `Authorization: Bearer <token>`.
**Пример:**
```bash
curl -X POST -H "Authorization: Bearer token_user123" \
-H "Content-Type: application/json" \
-d '{"title": "Моя заметка", "content": "Текст заметки"}' \
http://localhost:8000/notes
```
#### GET /notes/{id}
Получение заметки по ID. Требует авторизации. Доступна только для владельца заметки.
**Пример:**
```bash
curl -H "Authorization: Bearer token_user123" \
http://localhost:8000/notes/1
```
#### GET /notes/export?path=...
Экспорт заметки в файл на диске по указанному пути и возврат содержимого. Требует авторизации.
**Пример:**
```bash
curl -H "Authorization: Bearer token_user123" \
"http://localhost:8000/notes/export?path=/tmp/notes/note_1.txt"
```
#### POST /notes/{id}/share
Расшаривание заметки по email. Отправляет уведомление на внешний webhook-URL.
**Пример:**
```bash
curl -X POST -H "Authorization: Bearer token_user123" \
-H "Content-Type: application/json" \
-d '{"email": "friend@example.com", "webhook_url": "https://example.com/webhook"}' \
http://localhost:8000/notes/1/share
```
## Быстрый старт
1. Установите зависимости:
```bash
pip install -r requirements.txt
```
2. Запустите сервер:
```bash
python orders.py
```
3. Создайте заметку:
```bash
curl -X POST -H "Authorization: Bearer token_yourtoken" \
-H "Content-Type: application/json" \
-d '{"title": "Первая заметка", "content": "Текст первой заметки"}' \
http://localhost:8000/notes
```
4. Получите заметку по ID:
```bash
curl -H "Authorization: Bearer token_yourtoken" \
http://localhost:8000/notes/1
```
5. Экспортируйте заметку в файл:
```bash
curl -H "Authorization: Bearer token_yourtoken" \
"http://localhost:8000/notes/export?path=/tmp/my_note.txt"
```
6. Расшарьте заметку:
```bash
curl -X POST -H "Authorization: Bearer token_yourtoken" \
-H "Content-Type: application/json" \
-d '{"email": "friend@example.com", "webhook_url": "https://webhook.site/your-uuid"}' \
http://localhost:8000/notes/1/share
```
## Запуск
```bash