v1.0.155: VM PostgreSQL + modular db/ & services/ — Lucee stays SPA shell only
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
"""Supplements CRUD."""
|
||||
from .connection import query, execute, execute_returning
|
||||
|
||||
|
||||
def insert(contract_id, document_id, supp_type="additional"):
|
||||
return execute_returning(
|
||||
"""INSERT INTO supplements (contract_id, document_id, type)
|
||||
VALUES (%s, %s, %s) RETURNING *""",
|
||||
(contract_id, document_id, supp_type),
|
||||
)
|
||||
|
||||
|
||||
def list_by_contract(contract_id):
|
||||
"""Supplements with parsed documents, ordered by created_at."""
|
||||
return query(
|
||||
"""SELECT s.id, s.type, s.document_id, d.filename
|
||||
FROM supplements s
|
||||
JOIN documents d ON s.document_id = d.id
|
||||
WHERE s.contract_id = %s AND d.elements_json IS NOT NULL
|
||||
ORDER BY s.created_at""",
|
||||
(contract_id,),
|
||||
)
|
||||
|
||||
|
||||
def get(supp_id):
|
||||
rows = query("SELECT * FROM supplements WHERE id = %s", (supp_id,))
|
||||
return rows[0] if rows else None
|
||||
|
||||
|
||||
def delete_by_document(contract_id, filename):
|
||||
"""Delete supplement+document by contract+filename."""
|
||||
row = query(
|
||||
"""SELECT s.id as sid, s.document_id FROM supplements s
|
||||
JOIN documents d ON d.id = s.document_id
|
||||
WHERE s.contract_id = %s AND d.filename = %s""",
|
||||
(contract_id, filename),
|
||||
)
|
||||
if row:
|
||||
r = row[0]
|
||||
execute("DELETE FROM supplements WHERE id = %s", (r["sid"],))
|
||||
execute("DELETE FROM documents WHERE id = %s", (r["document_id"],))
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def delete(supp_id):
|
||||
return execute("DELETE FROM supplements WHERE id = %s", (supp_id,))
|
||||
Reference in New Issue
Block a user