listTodos.ts 432 B

123456789101112
  1. import { query, type Ctx } from '@briven/cli/server';
  2. interface Args {
  3. filter?: 'open' | 'done' | 'all';
  4. }
  5. export default query(async (ctx: Ctx, args: Args = {}) => {
  6. let q = ctx.db('todos').select(['id', 'body', 'done', 'createdAt', 'completedAt']);
  7. if (args.filter === 'open') q = q.where({ done: false });
  8. if (args.filter === 'done') q = q.where({ done: true });
  9. return q.orderBy('createdAt', 'desc').limit(200);
  10. });