views_api wires the full task lifecycle: create / update / delete / list (per-wallet, public, admin-all) and the completion flow (claim / start / complete via POST, unclaim via DELETE, plus a "mine" lookup for the current user's claim on a task or specific occurrence). Auth model: tasks are owned by an LNbits wallet but signed with the wallet owner's account.pubkey — _wallet_pubkey resolves that pubkey at create time and refuses to create tasks for accounts that haven't generated a keypair yet, so we never publish a task we can't sign. Completions optimistically insert with a local hash, publish to Nostr, then re-insert under the actual event id so a later delete can find it. Static SPA: Quasar-UMD index.vue / index.js mirroring the events extension layout — wallet picker, task table, create/edit dialog with optional daily/weekly recurrence, plus an admin-only public_listing toggle. /tasks/:id and display.vue intentionally left out until the public task page lands. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
13 lines
316 B
Python
13 lines
316 B
Python
from fastapi import APIRouter, Depends
|
|
from lnbits.core.views.generic import index
|
|
from lnbits.decorators import check_account_id_exists
|
|
|
|
tasks_generic_router = APIRouter()
|
|
|
|
tasks_generic_router.add_api_route(
|
|
"/",
|
|
methods=["GET"],
|
|
endpoint=index,
|
|
dependencies=[Depends(check_account_id_exists)],
|
|
)
|
|
|