Files
playground/README.md
T
dev1-playground-agent 559ca6ddb7
security/scan 1 findings, 0 blocking
security / scan (pull_request) Successful in 1m4s
security/review 0 findings, 0 blocking
security / review (pull_request) Successful in 1m24s
security / deep-audit (pull_request) Skipped
Финальная версия модуля заметок
2026-08-25 07:36:00 +00:00

133 lines
3.9 KiB
Markdown

# Модуль учёта заказов клиентов
Простой HTTP-сервис для управления заказами и заметками клиентов.
## Структура
- `orders.py` — основной модуль сервера
- `requirements.txt` — зависимости проекта
## Функционал
### Хранение заказов
Заказы хранятся в памяти в словаре `orders`. Каждый заказ имеет:
- `id` — уникальный идентификатор
- `user_id` — владелец заказа
- `amount` — сумма заказа
### Хранение заметок
Заметки хранятся в памяти в словаре `notes`. Каждая заметка имеет:
- `id` — уникальный идентификатор
- `user_id` — владелец заметки
- `title` — заголовок заметки
- `content` — содержимое заметки
### Эндпоинты
#### GET /orders/{id}
Получение заказа по ID. Требует авторизации через заголовок `Authorization: Bearer <token>`.
**Пример:**
```bash
curl -H "Authorization: Bearer <your-token>" http://localhost:8000/orders/1
```
#### POST /orders/{id}
Изменение суммы заказа. Принимает JSON с полем `amount` в теле запроса.
**Пример:**
```bash
curl -X POST -H "Authorization: Bearer <your-token>" \
-H "Content-Type: application/json" \
-d '{"amount": 500}' \
http://localhost:8000/orders/1
```
#### GET /admin/backup
Проверка готовности эндпоинта бэкапа.
#### POST /admin/backup
Инициация бэкапа данных на удалённый хост. Принимает JSON с полем `host` в теле запроса.
**Пример:**
```bash
curl -X POST -H "Authorization: Bearer <your-token>" \
-H "Content-Type: application/json" \
-d '{"host": "backup.example.com"}' \
http://localhost:8000/admin/backup
```
Бэкап выполняется асинхронно через rsync. Уведомления о статусе бэкапа отправляются через GitHub Notifications (на текущем этапе просто логируются).
### Быстрый старт
#### Создание заметки
```bash
curl -X POST -H "Authorization: Bearer token_user123" \
-H "Content-Type: application/json" \
-d '{"title": "Моя заметка", "content": "Текст заметки"}' \
http://localhost:8000/notes
```
#### Получение заметки
```bash
curl -H "Authorization: Bearer token_user123" \
http://localhost:8000/notes/1
```
#### Получение списка заметок пользователя
```bash
curl -H "Authorization: Bearer token_user123" \
http://localhost:8000/notes
```
#### Обновление заметки
```bash
curl -X POST -H "Authorization: Bearer token_user123" \
-H "Content-Type: application/json" \
-d '{"title": "Новый заголовок", "content": "Новый текст"}' \
http://localhost:8000/notes/1
```
#### Удаление заметки
```bash
curl -X GET -H "Authorization: Bearer token_user123" \
http://localhost:8000/notes/1/delete
```
#### Экспорт заметки в файл
```bash
curl -X GET -H "Authorization: Bearer token_user123" \
"http://localhost:8000/notes/export?path=/tmp/note.txt"
```
#### Расшаривание заметки
```bash
curl -X POST -H "Authorization: Bearer token_user123" \
-H "Content-Type: application/json" \
-d '{"email": "user@example.com", "webhook_url": "https://webhook.site/abc123"}' \
http://localhost:8000/notes/1/share
```
## Запуск
```bash
pip install -r requirements.txt
python orders.py
```
Сервер запустится на `localhost:8000`.