mirror of
https://github.com/Mercantec-GHC/h4-projekt-gruppe-0-sm.git
synced 2025-04-28 08:44:06 +02:00
move db* into db/
This commit is contained in:
parent
f449216e2a
commit
c051210372
@ -1,6 +1,6 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "../db.h"
|
#include "../db/db.h"
|
||||||
#include "../http/http.h"
|
#include "../http/http.h"
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
@ -1,14 +1,13 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "collection.h"
|
#include "../collection.h"
|
||||||
#include "models.h"
|
#include "../models.h"
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
DEFINE_VEC(int64_t, Ids, ids, 8)
|
DEFINE_VEC(int64_t, Ids, ids, 8)
|
||||||
DEFINE_VEC(Product, ProductVec, product_vec, 32)
|
DEFINE_VEC(Product, ProductVec, product_vec, 32)
|
||||||
DEFINE_VEC(CartItem, CartItemVec, cart_item_vec, 32)
|
DEFINE_VEC(CartItem, CartItemVec, cart_item_vec, 32)
|
||||||
|
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
DbRes_Ok,
|
DbRes_Ok,
|
||||||
DbRes_NotFound,
|
DbRes_NotFound,
|
||||||
@ -22,11 +21,9 @@ DbRes db_user_insert(Db* db, const User* user);
|
|||||||
/// `user` field is an out parameter.
|
/// `user` field is an out parameter.
|
||||||
DbRes db_user_with_id(Db* db, User* user, int64_t id);
|
DbRes db_user_with_id(Db* db, User* user, int64_t id);
|
||||||
|
|
||||||
|
|
||||||
/// Expects `ids` to be constructed.
|
/// Expects `ids` to be constructed.
|
||||||
DbRes db_users_with_email(Db* db, Ids* ids, const char* email);
|
DbRes db_users_with_email(Db* db, Ids* ids, const char* email);
|
||||||
|
|
||||||
|
|
||||||
/// `user` is an out parameter.
|
/// `user` is an out parameter.
|
||||||
DbRes db_user_with_email(Db* db, User* user, const char* email);
|
DbRes db_user_with_email(Db* db, User* user, const char* email);
|
||||||
|
|
||||||
@ -34,4 +31,3 @@ DbRes db_user_with_email(Db* db, User* user, const char* email);
|
|||||||
DbRes db_product_all(Db* db, ProductVec* vec);
|
DbRes db_product_all(Db* db, ProductVec* vec);
|
||||||
|
|
||||||
DbRes db_cart_items_with_user_id(Db* db, CartItemVec* vec, int64_t user_id);
|
DbRes db_cart_items_with_user_id(Db* db, CartItemVec* vec, int64_t user_id);
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
#include "db_sqlite.h"
|
#include "db_sqlite.h"
|
||||||
|
#include "../models.h"
|
||||||
|
#include "../str_util.h"
|
||||||
#include "db.h"
|
#include "db.h"
|
||||||
#include "models.h"
|
|
||||||
#include "str_util.h"
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <sqlite3.h>
|
#include <sqlite3.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
@ -43,7 +43,8 @@ static inline DbRes connect(sqlite3** connection)
|
|||||||
{
|
{
|
||||||
int res = sqlite3_open("database.db", connection);
|
int res = sqlite3_open("database.db", connection);
|
||||||
if (res != SQLITE_OK) {
|
if (res != SQLITE_OK) {
|
||||||
fprintf(stderr, "error: could not open sqlite 'database.db'\n %s\n",
|
fprintf(stderr,
|
||||||
|
"error: could not open sqlite 'database.db'\n %s\n",
|
||||||
sqlite3_errmsg(*connection));
|
sqlite3_errmsg(*connection));
|
||||||
return DbRes_Error;
|
return DbRes_Error;
|
||||||
}
|
}
|
||||||
@ -79,7 +80,9 @@ DbRes db_user_insert(Db* db, const User* user)
|
|||||||
sqlite3_prepare_v2(connection,
|
sqlite3_prepare_v2(connection,
|
||||||
"INSERT INTO users (name, email, password_hash, balance_dkk_cent) "
|
"INSERT INTO users (name, email, password_hash, balance_dkk_cent) "
|
||||||
"VALUES (?, ?, ?, ?)",
|
"VALUES (?, ?, ?, ?)",
|
||||||
-1, &stmt, NULL);
|
-1,
|
||||||
|
&stmt,
|
||||||
|
NULL);
|
||||||
|
|
||||||
sqlite3_bind_text(stmt, 1, user->name, -1, SQLITE_STATIC);
|
sqlite3_bind_text(stmt, 1, user->name, -1, SQLITE_STATIC);
|
||||||
sqlite3_bind_text(stmt, 2, user->email, -1, SQLITE_STATIC);
|
sqlite3_bind_text(stmt, 2, user->email, -1, SQLITE_STATIC);
|
||||||
@ -113,7 +116,9 @@ DbRes db_user_with_id(Db* db, User* user, int64_t id)
|
|||||||
sqlite3_prepare_v2(connection,
|
sqlite3_prepare_v2(connection,
|
||||||
"SELECT id, name, email, password_hash, balance_dkk_cent"
|
"SELECT id, name, email, password_hash, balance_dkk_cent"
|
||||||
" FROM users WHERE id = ?",
|
" FROM users WHERE id = ?",
|
||||||
-1, &stmt, NULL);
|
-1,
|
||||||
|
&stmt,
|
||||||
|
NULL);
|
||||||
sqlite3_bind_int64(stmt, 1, id);
|
sqlite3_bind_int64(stmt, 1, id);
|
||||||
|
|
||||||
int step_res = sqlite3_step(stmt);
|
int step_res = sqlite3_step(stmt);
|
||||||
@ -185,10 +190,15 @@ DbRes db_user_with_email(Db* db, User* user, const char* email)
|
|||||||
int prepare_res = sqlite3_prepare_v2(connection,
|
int prepare_res = sqlite3_prepare_v2(connection,
|
||||||
"SELECT id, name, email, password_hash, balance_dkk_cent"
|
"SELECT id, name, email, password_hash, balance_dkk_cent"
|
||||||
" FROM users WHERE email = ?",
|
" FROM users WHERE email = ?",
|
||||||
-1, &stmt, NULL);
|
-1,
|
||||||
|
&stmt,
|
||||||
|
NULL);
|
||||||
if (prepare_res != SQLITE_OK) {
|
if (prepare_res != SQLITE_OK) {
|
||||||
fprintf(stderr, "error: %s\n at %s:%d\n", sqlite3_errmsg(connection),
|
fprintf(stderr,
|
||||||
__func__, __LINE__);
|
"error: %s\n at %s:%d\n",
|
||||||
|
sqlite3_errmsg(connection),
|
||||||
|
__func__,
|
||||||
|
__LINE__);
|
||||||
res = DbRes_Error;
|
res = DbRes_Error;
|
||||||
goto l0_return;
|
goto l0_return;
|
||||||
}
|
}
|
||||||
@ -200,8 +210,11 @@ DbRes db_user_with_email(Db* db, User* user, const char* email)
|
|||||||
goto l0_return;
|
goto l0_return;
|
||||||
} else if (step_res != SQLITE_ROW) {
|
} else if (step_res != SQLITE_ROW) {
|
||||||
printf("step_res = %d, email = '%s'\n", step_res, email);
|
printf("step_res = %d, email = '%s'\n", step_res, email);
|
||||||
fprintf(stderr, "error: %s\n at %s:%d\n", sqlite3_errmsg(connection),
|
fprintf(stderr,
|
||||||
__func__, __LINE__);
|
"error: %s\n at %s:%d\n",
|
||||||
|
sqlite3_errmsg(connection),
|
||||||
|
__func__,
|
||||||
|
__LINE__);
|
||||||
res = DbRes_Error;
|
res = DbRes_Error;
|
||||||
goto l0_return;
|
goto l0_return;
|
||||||
}
|
}
|
||||||
@ -231,8 +244,11 @@ DbRes db_product_all(Db* db, ProductVec* vec)
|
|||||||
|
|
||||||
sqlite3_stmt* stmt;
|
sqlite3_stmt* stmt;
|
||||||
sqlite_res = sqlite3_prepare_v2(connection,
|
sqlite_res = sqlite3_prepare_v2(connection,
|
||||||
"SELECT id, name, description, price_dkk_cent, coord, barcode FROM products", -1,
|
"SELECT id, name, description, price_dkk_cent, coord, barcode FROM "
|
||||||
&stmt, NULL);
|
"products",
|
||||||
|
-1,
|
||||||
|
&stmt,
|
||||||
|
NULL);
|
||||||
if (sqlite_res != SQLITE_OK) {
|
if (sqlite_res != SQLITE_OK) {
|
||||||
fprintf(stderr, "error: %s\n", sqlite3_errmsg(connection));
|
fprintf(stderr, "error: %s\n", sqlite3_errmsg(connection));
|
||||||
res = DbRes_Error;
|
res = DbRes_Error;
|
||||||
@ -264,8 +280,8 @@ l0_return:
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DbRes db_cart_items_with_user_id(Db* db, CartItemVec* vec, int64_t user_id)
|
||||||
DbRes db_cart_items_with_user_id(Db* db, CartItemVec* vec, int64_t user_id) {
|
{
|
||||||
static_assert(sizeof(Cart) == 16, "model has changed");
|
static_assert(sizeof(Cart) == 16, "model has changed");
|
||||||
static_assert(sizeof(CartItem) == 32, "model has changed");
|
static_assert(sizeof(CartItem) == 32, "model has changed");
|
||||||
|
|
||||||
@ -277,10 +293,15 @@ DbRes db_cart_items_with_user_id(Db* db, CartItemVec* vec, int64_t user_id) {
|
|||||||
int sqlite_res = sqlite3_prepare_v2(connection,
|
int sqlite_res = sqlite3_prepare_v2(connection,
|
||||||
"SELECT id "
|
"SELECT id "
|
||||||
" FROM carts WHERE user = ?",
|
" FROM carts WHERE user = ?",
|
||||||
-1, &stmt, NULL);
|
-1,
|
||||||
|
&stmt,
|
||||||
|
NULL);
|
||||||
if (sqlite_res != SQLITE_OK) {
|
if (sqlite_res != SQLITE_OK) {
|
||||||
fprintf(stderr, "error: %s\n at %s:%d\n", sqlite3_errmsg(connection),
|
fprintf(stderr,
|
||||||
__func__, __LINE__);
|
"error: %s\n at %s:%d\n",
|
||||||
|
sqlite3_errmsg(connection),
|
||||||
|
__func__,
|
||||||
|
__LINE__);
|
||||||
res = DbRes_Error;
|
res = DbRes_Error;
|
||||||
goto l0_return;
|
goto l0_return;
|
||||||
}
|
}
|
||||||
@ -297,8 +318,11 @@ DbRes db_cart_items_with_user_id(Db* db, CartItemVec* vec, int64_t user_id) {
|
|||||||
}
|
}
|
||||||
int64_t cart_id = GET_INT(0);
|
int64_t cart_id = GET_INT(0);
|
||||||
|
|
||||||
sqlite_res = sqlite3_prepare_v2(
|
sqlite_res = sqlite3_prepare_v2(connection,
|
||||||
connection, "SELECT id, cart, product, amount FROM cart_items WHERE cart = ?", -1, &stmt, NULL);
|
"SELECT id, cart, product, amount FROM cart_items WHERE cart = ?",
|
||||||
|
-1,
|
||||||
|
&stmt,
|
||||||
|
NULL);
|
||||||
sqlite3_bind_int64(stmt, 1, cart_id);
|
sqlite3_bind_int64(stmt, 1, cart_id);
|
||||||
|
|
||||||
while ((sqlite_res = sqlite3_step(stmt)) == SQLITE_ROW) {
|
while ((sqlite_res = sqlite3_step(stmt)) == SQLITE_ROW) {
|
||||||
@ -322,6 +346,4 @@ l0_return:
|
|||||||
sqlite3_finalize(stmt);
|
sqlite3_finalize(stmt);
|
||||||
DISCONNECT;
|
DISCONNECT;
|
||||||
return res;
|
return res;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -1,5 +1,5 @@
|
|||||||
#include "controllers/controllers.h"
|
#include "controllers/controllers.h"
|
||||||
#include "db_sqlite.h"
|
#include "db/db_sqlite.h"
|
||||||
#include "http/http.h"
|
#include "http/http.h"
|
||||||
#include "json.h"
|
#include "json.h"
|
||||||
#include "models.h"
|
#include "models.h"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user