You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Add two admin-protected endpoints that toggle the global submissions lock:
- POST /api/admin/lock — sets submissions_locked = true
- POST /api/admin/unlock — sets submissions_locked = false
Both require the X-Admin-Code header and return { "submissions_locked": bool }
on success, or 403 on missing/wrong code. Operation is idempotent.
Shared helper verify_admin_code() fetches and compares the stored admin code.
Routes registered in the router() function. Five unit tests added covering
correct code, wrong code, missing header, and idempotent lock behaviour.
OpenAPI spec updated with AdminCode security scheme, LockResponse schema,
/api/admin/lock and /api/admin/unlock path entries, and an admin tag.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
3 months ago | |
|---|---|---|
| .. | ||
| .claude | 3 months ago | |
| .nbd | 3 months ago | |
| api | 3 months ago | |
| docs | 3 months ago | |
| infra | 3 months ago | |
| src | 3 months ago | |
| tests | 3 months ago | |
| .env.example | 3 months ago | |
| .gitignore | 3 months ago | |
| CLAUDE.md | 3 months ago | |
| Cargo.lock | 3 months ago | |
| Cargo.toml | 3 months ago | |
| README.md | 3 months ago | |
| TODO.md | 3 months ago | |
| Trunk.toml | 3 months ago | |
| _redirects | 3 months ago | |
| build.rs | 3 months ago | |
| index.html | 3 months ago | |
README.md
quotesdb
A quotes web application — browse, submit, and manage memorable quotes.
What
quotesdb is a full-stack web application with:
- A JSON REST API (
apibinary) backed by Cloudflare Workers + D1 (SQLite) - A Yew/Wasm frontend (
uibinary) hosted on Cloudflare Pages - NanoID-identified quotes protected by a 4-word passphrase auth code
How
Single Cargo crate with two binaries sharing common types via src/lib.rs:
api: Axum on Tokio, targeting Cloudflare Workers via workers-rs, SQLx + D1ui: Yew compiled towasm32-unknown-unknownvia Trunk
Run
# Start API server (local dev)
cargo run
# Start UI dev server (requires wasm32 toolchain + trunk)
trunk serve
Test
cargo fmt && cargo check && cargo clippy && cargo test
License
Licensed under either of Apache License, Version 2.0 or MIT License at your option.
Disclaimer
This software was written with Claude Code (claude-sonnet-4-6).