mirror of
https://github.com/Mercantec-GHC/h4-projekt-gruppe-0-sm.git
synced 2025-04-28 00:34:06 +02:00
40 lines
1.0 KiB
C
40 lines
1.0 KiB
C
#include "../models/models_json.h"
|
|
#include "../util/str.h"
|
|
#include "controllers.h"
|
|
|
|
void route_get_cart_items_from_session(HttpCtx* ctx)
|
|
{
|
|
Cx* cx = http_ctx_user_ctx(ctx);
|
|
const Session* session = middleware_session(ctx);
|
|
if (!session)
|
|
return;
|
|
|
|
CartItemVec cart_items;
|
|
cart_item_vec_construct(&cart_items);
|
|
|
|
DbRes db_res
|
|
= db_cart_items_with_user_id(cx->db, &cart_items, session->user_id);
|
|
if (db_res != DbRes_Ok) {
|
|
RESPOND_BAD_REQUEST(ctx, "Could not find cart for user");
|
|
return;
|
|
}
|
|
|
|
String res;
|
|
string_construct(&res);
|
|
|
|
string_push_str(&res, "{\"ok\":true,\"products\":[");
|
|
for (size_t i = 0; i < cart_items.size; ++i) {
|
|
if (i != 0) {
|
|
string_push_str(&res, ",");
|
|
}
|
|
char* json = cart_item_to_json_string(&cart_items.data[i]);
|
|
string_push_str(&res, json);
|
|
free(json);
|
|
}
|
|
string_push_str(&res, "]}");
|
|
|
|
cart_item_vec_destroy(&cart_items);
|
|
RESPOND_JSON(ctx, 200, "%s", res.data);
|
|
string_destroy(&res);
|
|
}
|