Rituals
service_omni — Endpoints: Rituals¶
Location: backend/service_omni/app/api/v1/endpoints/rituals.py
Summary
- Endpoints to manage scraping of Rituals Outlet product pages, to retrieve stored products and to manage the monitor cron job.
Routes
GET /rituals/outlets/products— Paginated retrieval of stored Rituals Outlet products.- Query params:
page(int, default=1),page_size(int, default=50),search(optional),sort_by(price|name|updated_at),sort_order(asc|desc).
Example:
curl "http://localhost:8000/api/v1/rituals/outlets/products?page=1&page_size=20&search=cream"
POST /rituals/outlets/scan— Trigger a manual scan. Optional query paramdiscord_webhookto forward notifications.
Example:
curl -X POST "http://localhost:8000/api/v1/rituals/outlets/scan?discord_webhook=https://hooks.example.com/xxx"
POST /rituals/outlets/cron/start— Schedule or update the Rituals cron job. Query param:schedule(cron expression, default0 * * * *), optionaldiscord_webhook.
Example (schedule at 03:00 daily):
curl -X POST "http://localhost:8000/api/v1/rituals/outlets/cron/start?schedule=0%203%20*%20*%20*&discord_webhook=https://hooks.example.com/xxx"
POST /rituals/outlets/cron/stop— Stop the scheduled job.GET /rituals/outlets/cron/status— Return scheduling status.
Implementation & notes
- Endpoint implementation: backend/service_omni/app/api/v1/endpoints/rituals.py
-
Monitor: backend/service_omni/app/services/rituals_outlet_monitor.py
-
Operational notes: The monitor is network-intensive and should be scheduled during off-peak hours. The cron job persists arguments in the DB via
CronJobManagerand the monitor opens a new DB session for background runs.