summaryrefslogtreecommitdiff
path: root/src/cmd_accounts.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd_accounts.c')
-rw-r--r--src/cmd_accounts.c37
1 files changed, 11 insertions, 26 deletions
diff --git a/src/cmd_accounts.c b/src/cmd_accounts.c
index 900558f..b5770b0 100644
--- a/src/cmd_accounts.c
+++ b/src/cmd_accounts.c
@@ -49,7 +49,7 @@ static yyjson_mut_val *h_account_list(struct req *r)
: "SELECT " ACCOUNT_COLUMNS " FROM accounts"
" WHERE org_id=?1 ORDER BY number";
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);
while (sqlite3_step(st) == SQLITE_ROW)
yyjson_mut_arr_add_val(items, account_json(r->rdoc, st));
@@ -72,7 +72,7 @@ static yyjson_mut_val *h_account_get(struct req *r)
: "SELECT " ACCOUNT_COLUMNS " FROM accounts"
" WHERE org_id=?1 AND number=?2";
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 (id)
sqlite3_bind_int64(st, 2, id);
@@ -116,26 +116,20 @@ static yyjson_mut_val *h_account_create(struct req *r)
"INSERT INTO accounts(org_id,number,name,type,sru_code,vat_code,"
"created_at) 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, number, -1, SQLITE_TRANSIENT);
sqlite3_bind_text(st, 3, name, -1, SQLITE_TRANSIENT);
sqlite3_bind_text(st, 4, type, -1, SQLITE_TRANSIENT);
- if (sru)
- sqlite3_bind_text(st, 5, sru, -1, SQLITE_TRANSIENT);
- else
- sqlite3_bind_null(st, 5);
- if (vat)
- sqlite3_bind_text(st, 6, vat, -1, SQLITE_TRANSIENT);
- else
- sqlite3_bind_null(st, 6);
+ bind_text_or_null(st, 5, sru);
+ bind_text_or_null(st, 6, vat);
sqlite3_bind_text(st, 7, ts, -1, SQLITE_TRANSIENT);
int rc = sqlite3_step(st);
sqlite3_finalize(st);
if (rc != SQLITE_DONE) {
if ((rc & 0xff) == SQLITE_CONSTRAINT)
return fail(r, "CONFLICT", "account number already exists");
- 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);
@@ -173,27 +167,18 @@ static yyjson_mut_val *h_account_update(struct req *r)
" active=CASE WHEN ?5<0 THEN active ELSE ?5 END, updated_at=?6"
" WHERE org_id=?1 AND id=?7",
-1, &st, NULL) != SQLITE_OK)
- return fail(r, "INTERNAL", "database error");
+ return db_error(r);
sqlite3_bind_int64(st, 1, r->org_id);
- if (name)
- sqlite3_bind_text(st, 2, name, -1, SQLITE_TRANSIENT);
- else
- sqlite3_bind_null(st, 2);
- if (sru)
- sqlite3_bind_text(st, 3, sru, -1, SQLITE_TRANSIENT);
- else
- sqlite3_bind_null(st, 3);
- if (vat)
- sqlite3_bind_text(st, 4, vat, -1, SQLITE_TRANSIENT);
- else
- sqlite3_bind_null(st, 4);
+ bind_text_or_null(st, 2, name);
+ bind_text_or_null(st, 3, sru);
+ bind_text_or_null(st, 4, vat);
sqlite3_bind_int(st, 5, active);
sqlite3_bind_text(st, 6, ts, -1, SQLITE_TRANSIENT);
sqlite3_bind_int64(st, 7, 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", "account not found");
char *reqjson = audit_args_json(r->args);