feature/notes-module-v3
Merge pull request 'orders module: add auth, fix command injection, add requirements' (#13) from feature/orders-module into main
Модуль учёта заказов клиентов
Простой HTTP-сервис для управления заказами и заметками клиентов.
Структура
orders.py— основной модуль сервераrequirements.txt— зависимости проекта
Функционал
Хранение заказов
Заказы хранятся в памяти в словаре orders. Каждый заказ имеет:
id— уникальный идентификаторuser_id— владелец заказаamount— сумма заказа
Хранение заметок
Заметки хранятся в памяти в словаре notes. Каждая заметка имеет:
id— уникальный идентификаторuser_id— владелец заметкиtitle— заголовок заметкиcontent— содержимое заметки
Эндпоинты
GET /orders/{id}
Получение заказа по ID. Требует авторизации через заголовок Authorization: Bearer <token>.
Пример:
curl -H "Authorization: Bearer <your-token>" http://localhost:8000/orders/1
POST /orders/{id}
Изменение суммы заказа. Принимает JSON с полем amount в теле запроса.
Пример:
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 в теле запроса.
Пример:
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 (на текущем этапе просто логируются).
Быстрый старт
Создание заметки
curl -X POST -H "Authorization: Bearer token_user123" \
-H "Content-Type: application/json" \
-d '{"title": "Моя заметка", "content": "Текст заметки"}' \
http://localhost:8000/notes
Получение заметки
curl -H "Authorization: Bearer token_user123" \
http://localhost:8000/notes/1
Получение списка заметок пользователя
curl -H "Authorization: Bearer token_user123" \
http://localhost:8000/notes
Обновление заметки
curl -X POST -H "Authorization: Bearer token_user123" \
-H "Content-Type: application/json" \
-d '{"title": "Новый заголовок", "content": "Новый текст"}' \
http://localhost:8000/notes/1
Удаление заметки
curl -X GET -H "Authorization: Bearer token_user123" \
http://localhost:8000/notes/1/delete
Экспорт заметки в файл
curl -X GET -H "Authorization: Bearer token_user123" \
"http://localhost:8000/notes/export?path=/tmp/note.txt"
Расшаривание заметки
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
Запуск
pip install -r requirements.txt
python orders.py
Сервер запустится на localhost:8000.
Languages
Python
100%