From ceff3d26732a7fde2f66df0270269d3bebcfabf7 Mon Sep 17 00:00:00 2001 From: Anders Betts Date: Sun, 20 Sep 2026 21:55:04 +0200 Subject: commands: shared DB-error helpers Co-Authored-By: Claude Opus 5 --- src/cmd_rules.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src/cmd_rules.c') diff --git a/src/cmd_rules.c b/src/cmd_rules.c index 04772f3..d9a1594 100644 --- a/src/cmd_rules.c +++ b/src/cmd_rules.c @@ -153,7 +153,7 @@ static yyjson_mut_val *h_report_rule_list(struct req *r) " FROM report_rules WHERE org_id=?1" " ORDER BY report,sort_order,box,id"; if (sqlite3_prepare_v2(r->db, sql, -1, &st, NULL) != SQLITE_OK) - return fail(r, "INTERNAL", "database error"); + return db_error(r); sqlite3_bind_int64(st, 1, r->org_id); if (report) sqlite3_bind_text(st, 2, report, -1, SQLITE_TRANSIENT); @@ -218,7 +218,7 @@ static yyjson_mut_val *h_report_rule_create(struct req *r) "INSERT INTO report_rules(org_id,report,box,match_type,pattern," "sign,sort_order) VALUES(?1,?2,?3,?4,?5,?6,?7)", -1, &st, NULL) != SQLITE_OK) - return fail(r, "INTERNAL", "database error"); + return db_error(r); sqlite3_bind_int64(st, 1, r->org_id); sqlite3_bind_text(st, 2, report, -1, SQLITE_TRANSIENT); sqlite3_bind_text(st, 3, box, -1, SQLITE_TRANSIENT); @@ -229,7 +229,7 @@ static yyjson_mut_val *h_report_rule_create(struct req *r) int rc = sqlite3_step(st); sqlite3_finalize(st); if (rc != SQLITE_DONE) - return fail(r, "INTERNAL", sqlite3_errmsg(r->db)); + return db_sqlite_error(r); int64_t id = db_last_id(r->db); char *reqjson = audit_args_json(r->args); audit_append(r->db, r->org_id, r->sess->user_id, r->sess->token_id, @@ -288,7 +288,7 @@ static yyjson_mut_val *h_report_rule_update(struct req *r) "UPDATE report_rules SET box=?3,match_type=?4,pattern=?5,sign=?6," "sort_order=?7 WHERE org_id=?1 AND id=?2", -1, &st, NULL) != SQLITE_OK) - return fail(r, "INTERNAL", "database error"); + return db_error(r); sqlite3_bind_int64(st, 1, r->org_id); sqlite3_bind_int64(st, 2, row.id); sqlite3_bind_text(st, 3, row.box, -1, SQLITE_TRANSIENT); @@ -299,7 +299,7 @@ static yyjson_mut_val *h_report_rule_update(struct req *r) int rc = sqlite3_step(st); sqlite3_finalize(st); if (rc != SQLITE_DONE) - return fail(r, "INTERNAL", sqlite3_errmsg(r->db)); + return db_sqlite_error(r); if (sqlite3_changes(r->db) == 0) return fail(r, "NOT_FOUND", "report rule not found"); char *reqjson = audit_args_json(r->args); @@ -331,13 +331,13 @@ static yyjson_mut_val *h_report_rule_delete(struct req *r) if (sqlite3_prepare_v2( r->db, "DELETE FROM report_rules WHERE org_id=?1 AND id=?2", -1, &st, NULL) != SQLITE_OK) - return fail(r, "INTERNAL", "database error"); + return db_error(r); sqlite3_bind_int64(st, 1, r->org_id); sqlite3_bind_int64(st, 2, id); int rc = sqlite3_step(st); sqlite3_finalize(st); if (rc != SQLITE_DONE) - return fail(r, "INTERNAL", sqlite3_errmsg(r->db)); + return db_sqlite_error(r); if (sqlite3_changes(r->db) == 0) return fail(r, "NOT_FOUND", "report rule not found"); char *reqjson = audit_args_json(r->args); -- cgit v1.3