mirror of
https://github.com/michivonah/themepark-assistant.git
synced 2025-12-22 14:06:29 +01:00
2 KiB
2 KiB
themepark-assistant
A tool for improving your trips to themeparks - once developed
HINT: The tool is currently under development. The API endpoints are subject to change at any time. Use with caution.
Repo structure
- /api: API implementation
- ./: config files
- /src: API Code
- /db: Database client, schema & migrations
- /errors: Error types
- index.ts: Exporter for all error classes
- /jobs: Background tasks
- /lib: Reusable functions
- /routes: API Endpoints
- /types: Data type definitions
- index.ts: Entrypoint for API Requests & background tasks on Cloudflare Workers
Development
Run enviromnment
Run worker locally (without remote d1 access, scheduled tasks not available)
npx wrangler dev
Run worker locally (without remote d1 access, scheduled tasks available)
npx wrangler dev --test-scheduled
Run worker locally (with remote connection to d1, scheduled tasks available)
npx wrangler dev --remote --test-scheduled
Requests
Send request with bearer authentication
curl -H "Authorization: Bearer insecure-token" http://127.0.0.1:8787/notification/list
Run request with cron expression (for executing background tasks)
curl "http://localhost:8787/__scheduled?cron=*+*+*+*+*"
Drizzle DB migrations
Update cloudflare d1 db DB scheme is defined in typescript
apply changes
npx drizzle-kit push --config=drizzle-dev.config.ts
export sql statements instead of running migration
npx drizzle-kit export --config=drizzle-dev.config.ts
Useful sql statements for SQLite / D1
Delete view
DROP VIEW IF EXISTS attraction_subscriptions;
Cloudflare workers tricks
If types are missing, run:
npx wrangler types
Authentication endpoints (auth.js)
- /auth/signin -> Login
- /auth/signout -> Logout
- /auth/callback/github -> Callback for GitHub OAuth config
Contributing
TBD
License
TBD