From 9a6ee1b036f09b3ee84607ce2b05e857c4af03e9 Mon Sep 17 00:00:00 2001 From: Eric Seidel Date: Thu, 22 Feb 2024 03:31:43 +0000 Subject: [PATCH] fix: fix contract queries --- packages/db/lib/db.dart | 3 +++ packages/db/lib/src/contract.dart | 9 ++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/db/lib/db.dart b/packages/db/lib/db.dart index 415359fa..e0e77aeb 100644 --- a/packages/db/lib/db.dart +++ b/packages/db/lib/db.dart @@ -401,15 +401,18 @@ class Database { return queryMany(allContractsQuery(), contractFromColumnMap); } + /// Get a contract by id. Future contractById(String id) async { final query = contractByIdQuery(id); return queryOne(query, contractFromColumnMap); } + /// Get all contracts which are !accepted. Future> unacceptedContracts() async { return queryMany(unacceptedContractsQuery(), contractFromColumnMap); } + /// Get all contracts which are !fullfilled and !expired. Future> activeContracts() async { return queryMany(activeContractsQuery(), contractFromColumnMap); } diff --git a/packages/db/lib/src/contract.dart b/packages/db/lib/src/contract.dart index c804fa61..b0131769 100644 --- a/packages/db/lib/src/contract.dart +++ b/packages/db/lib/src/contract.dart @@ -25,15 +25,18 @@ Query contractByIdQuery(String id) { ); } +/// Get all contracts which are !fulfilled and expiration date is in the future. Query activeContractsQuery() { - return const Query( - "SELECT * FROM contract_ WHERE json->>'status' = 'active'", + return Query( + "SELECT * FROM contract_ WHERE json->>'fulfilled' = 'false' AND json->>'expiration' > @now", + parameters: {'now': DateTime.timestamp()}, ); } +/// Get all contracts which are !accepted. Query unacceptedContractsQuery() { return const Query( - "SELECT * FROM contract_ WHERE json->>'status' = 'unaccepted'", + "SELECT * FROM contract_ WHERE json->>'accepted' = 'false'", ); }