# Модуль учёта заказов клиентов Простой HTTP-сервис для управления заказами и заметками клиентов. ## Структура - `orders.py` — основной модуль сервера - `requirements.txt` — зависимости проекта ## Функционал ### Хранение заказов Заказы хранятся в памяти в словаре `orders`. Каждый заказ имеет: - `id` — уникальный идентификатор - `user_id` — владелец заказа - `amount` — сумма заказа ### Хранение заметок Заметки хранятся в памяти в словаре `notes`. Каждая заметка имеет: - `id` — уникальный идентификатор - `user_id` — владелец заметки - `title` — заголовок заметки - `content` — содержимое заметки ### Эндпоинты #### GET /orders/{id} Получение заказа по ID. Требует авторизации через заголовок `Authorization: Bearer `. **Пример:** ```bash curl -H "Authorization: Bearer " http://localhost:8000/orders/1 ``` #### POST /orders/{id} Изменение суммы заказа. Принимает JSON с полем `amount` в теле запроса. **Пример:** ```bash curl -X POST -H "Authorization: Bearer " \ -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 " \ -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`.