110 lines
3.3 KiB
Markdown
110 lines
3.3 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 -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`.
|