diff --git a/CMakeLists.txt b/CMakeLists.txt index 837955d..062756e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,9 +9,9 @@ elseif (UNIX) set(CMAKE_EXE_LINKER_FLAGS "-Wl,--gc-sections") endif() -include_directories(./src/lib/ ${SQLite3_INCLUDE_DIRS}) +include_directories(./src/lib/ ./src ${SQLite3_INCLUDE_DIRS}) -FILE(GLOB SOURCES src/*.c src/lib/*.c src/file_db/*.c) +FILE(GLOB SOURCES src/*.c src/lib/*.c src/file_db/*.c src/config/*.c src/api/*.c src/database/*.c src/security/*.c src/utils/*.c) option(USE_SQLITE3 "Enable SQLite3 support" OFF) option(USE_WERROR "Enable SQLite3 support" OFF) @@ -19,7 +19,7 @@ option(USE_WERROR "Enable SQLite3 support" OFF) if(USE_SQLITE3) find_package(SQLite3 REQUIRED) add_definitions(-DUSE_SQLITE3) - FILE(GLOB SOURCES src/*.c src/lib/*.c src/sqlite_db/*.c src/file_db/*.c) + FILE(GLOB SOURCES src/*.c src/lib/*.c src/sqlite_db/*.c src/file_db/*.c src/config/*.c src/api/*.c src/database/*.c src/security/*.c src/utils/*.c) endif() if(USE_WERROR) diff --git a/Makefile b/Makefile index 8a527e9..e3b98a8 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ CC = gcc CFLAGS = -Wall -g -std=gnu2x -DMG_TLS=MG_TLS_OPENSSL -ffunction-sections -fdata-sections LDFLAGS = INCLUDES = -I./src/lib -I./src -SRCS = $(wildcard src/lib/*.c src/file_db/*.c src/*.c) +SRCS = $(wildcard src/lib/*.c src/file_db/*.c src/*.c src/config/*.c src/database/*.c src/api/*.c src/security/*.c src/utils/*.c) OBJS = $(SRCS:.c=.o) TARGET = auth_service BUILD_DIR=./build @@ -18,7 +18,7 @@ endif ifeq ($(USE_SQLITE3), 1) CFLAGS += -DUSE_SQLITE3 LIBS += -lsqlite3 - SRCS = $(wildcard src/lib/*.c src/sqlite_db/*.c src/file_db/*.c src/*.c) + SRCS = $(wildcard src/lib/*.c src/sqlite_db/*.c src/file_db/*.c src/*.c src/config/*.c src/database/*.c src/api/*.c src/security/*.c src/utils/*.c) endif ifeq ($(WERROR), 1) diff --git a/meson.build b/meson.build index 8c31b61..028b0d6 100644 --- a/meson.build +++ b/meson.build @@ -13,35 +13,35 @@ use_sqlite3 = get_option('use_sqlite3') use_werror = get_option('use_werror') sources = [ 'src/main.c', - 'src/user.c', - 'src/add_user.c', - 'src/change_password.c', - 'src/change_user.c', - 'src/delete_user.c', - 'src/get_all_users.c', - 'src/get_token.c', - 'src/get_user.c', - 'src/register_user.c', - 'src/verify_token.c', - 'src/utils.c', - 'src/jwt.c', + 'src/api/user.c', + 'src/api/add_user.c', + 'src/api/change_password.c', + 'src/api/change_user.c', + 'src/api/delete_user.c', + 'src/api/get_all_users.c', + 'src/api/get_token.c', + 'src/api/get_user.c', + 'src/api/register_user.c', + 'src/api/verify_token.c', + 'src/utils/utils.c', + 'src/security/jwt.c', 'src/lib/mongoose.c', 'src/lib/cJSON.c', - 'src/database.c', - 'src/db_get_all_users.c', - 'src/db_get_user_by_username.c', - 'src/db_get_users_from_file.c', - 'src/file.c', - 'src/db_insert_user.c', - 'src/db_update_user.c', - 'src/db_delete_user.c', - 'src/db_get_user_by_id.c', - 'src/ConfigManager.c', - 'src/config.c', - 'src/static.c', - 'src/cors.c', - 'src/db_get_user_field_by_id.c', - 'src/db_update_user_field.c', + 'src/database/database.c', + 'src/database/db_get_all_users.c', + 'src/database/db_get_user_by_username.c', + 'src/database/db_get_users_from_file.c', + 'src/utils/file.c', + 'src/database/db_insert_user.c', + 'src/database/db_update_user.c', + 'src/database/db_delete_user.c', + 'src/database/db_get_user_by_id.c', + 'src/config/ConfigManager.c', + 'src/config/config.c', + 'src/api/static.c', + 'src/security/cors.c', + 'src/database/db_get_user_field_by_id.c', + 'src/database/db_update_user_field.c', ] with_filedb_sources = [ diff --git a/src/add_user.c b/src/api/add_user.c similarity index 97% rename from src/add_user.c rename to src/api/add_user.c index e8c8c2b..8a740cd 100644 --- a/src/add_user.c +++ b/src/api/add_user.c @@ -1,6 +1,6 @@ -#include "jwt.h" +#include "security/jwt.h" #include "user.h" -#include "utils.h" +#include "utils/utils.h" void add_user(struct mg_connection *c, struct mg_http_message *hm) { request_with_token *requestdata = check_body(hm); diff --git a/src/change_password.c b/src/api/change_password.c similarity index 98% rename from src/change_password.c rename to src/api/change_password.c index a73d117..e373fef 100644 --- a/src/change_password.c +++ b/src/api/change_password.c @@ -1,7 +1,7 @@ #include "cJSON.h" -#include "jwt.h" +#include "security/jwt.h" #include "user.h" -#include "utils.h" +#include "utils/utils.h" void change_password(struct mg_connection *c, struct mg_http_message *hm) { if (hm->body.len == 0) { diff --git a/src/change_user.c b/src/api/change_user.c similarity index 98% rename from src/change_user.c rename to src/api/change_user.c index 7d260be..8fc57b4 100644 --- a/src/change_user.c +++ b/src/api/change_user.c @@ -1,6 +1,6 @@ -#include "jwt.h" +#include "security/jwt.h" #include "user.h" -#include "utils.h" +#include "utils/utils.h" void change_user(struct mg_connection *c, struct mg_http_message *hm) { if (hm->body.len == 0) { diff --git a/src/delete_user.c b/src/api/delete_user.c similarity index 97% rename from src/delete_user.c rename to src/api/delete_user.c index cedb534..811ff38 100644 --- a/src/delete_user.c +++ b/src/api/delete_user.c @@ -1,6 +1,6 @@ -#include "jwt.h" +#include "security/jwt.h" #include "user.h" -#include "utils.h" +#include "utils/utils.h" void delete_user(struct mg_connection *c, struct mg_http_message *hm) { if (hm->body.len == 0) { diff --git a/src/get_all_users.c b/src/api/get_all_users.c similarity index 94% rename from src/get_all_users.c rename to src/api/get_all_users.c index 1cad438..f48c733 100644 --- a/src/get_all_users.c +++ b/src/api/get_all_users.c @@ -1,6 +1,6 @@ -#include "jwt.h" +#include "security/jwt.h" #include "user.h" -#include "utils.h" +#include "utils/utils.h" void get_all_users(struct mg_connection *c, struct mg_http_message *hm) { request_with_token *data = check_body(hm); diff --git a/src/get_token.c b/src/api/get_token.c similarity index 98% rename from src/get_token.c rename to src/api/get_token.c index 40f5efa..8a2a7b9 100644 --- a/src/get_token.c +++ b/src/api/get_token.c @@ -1,4 +1,4 @@ -#include "jwt.h" +#include "security/jwt.h" #include "user.h" void get_token(struct mg_connection *c, struct mg_http_message *hm) { diff --git a/src/get_user.c b/src/api/get_user.c similarity index 96% rename from src/get_user.c rename to src/api/get_user.c index f3c7626..d2b3e18 100644 --- a/src/get_user.c +++ b/src/api/get_user.c @@ -1,6 +1,6 @@ -#include "jwt.h" +#include "security/jwt.h" #include "user.h" -#include "utils.h" +#include "utils/utils.h" void get_user(struct mg_connection *c, struct mg_http_message *hm) { if (hm->body.len == 0) { diff --git a/src/register_user.c b/src/api/register_user.c similarity index 100% rename from src/register_user.c rename to src/api/register_user.c diff --git a/src/route.h b/src/api/route.h similarity index 100% rename from src/route.h rename to src/api/route.h diff --git a/src/static.c b/src/api/static.c similarity index 88% rename from src/static.c rename to src/api/static.c index 69c5d2a..ac4454a 100644 --- a/src/static.c +++ b/src/api/static.c @@ -1,9 +1,9 @@ #include "static.h" -#include "config.h" +#include "config/config.h" void root_handler(struct mg_connection *c, struct mg_http_message *hm) { struct mg_http_serve_opts opts = { .root_dir = cm_get_parameter_as_string(config, "web")}; mg_http_serve_dir(c, hm, &opts); -} \ No newline at end of file +} diff --git a/src/static.h b/src/api/static.h similarity index 100% rename from src/static.h rename to src/api/static.h diff --git a/src/user.c b/src/api/user.c similarity index 100% rename from src/user.c rename to src/api/user.c diff --git a/src/user.h b/src/api/user.h similarity index 100% rename from src/user.h rename to src/api/user.h diff --git a/src/verify_token.c b/src/api/verify_token.c similarity index 95% rename from src/verify_token.c rename to src/api/verify_token.c index 5ed6237..e3920e4 100644 --- a/src/verify_token.c +++ b/src/api/verify_token.c @@ -1,6 +1,6 @@ -#include "jwt.h" +#include "security/jwt.h" #include "user.h" -#include "utils.h" +#include "utils/utils.h" void verify_token(struct mg_connection *c, struct mg_http_message *hm) { request_with_token *data = check_body(hm); diff --git a/src/ConfigManager.c b/src/config/ConfigManager.c similarity index 99% rename from src/ConfigManager.c rename to src/config/ConfigManager.c index 28b247c..9cb070e 100644 --- a/src/ConfigManager.c +++ b/src/config/ConfigManager.c @@ -6,7 +6,7 @@ #include #include -#include "file.h" +#include "utils/file.h" typedef struct ConfigManager { cJSON *config; diff --git a/src/ConfigManager.h b/src/config/ConfigManager.h similarity index 100% rename from src/ConfigManager.h rename to src/config/ConfigManager.h diff --git a/src/config.c b/src/config/config.c similarity index 100% rename from src/config.c rename to src/config/config.c diff --git a/src/config.h b/src/config/config.h similarity index 100% rename from src/config.h rename to src/config/config.h diff --git a/src/database.c b/src/database/database.c similarity index 100% rename from src/database.c rename to src/database/database.c diff --git a/src/database.h b/src/database/database.h similarity index 100% rename from src/database.h rename to src/database/database.h diff --git a/src/db_delete_user.c b/src/database/db_delete_user.c similarity index 91% rename from src/db_delete_user.c rename to src/database/db_delete_user.c index e0c1820..b3e405a 100644 --- a/src/db_delete_user.c +++ b/src/database/db_delete_user.c @@ -1,4 +1,4 @@ -#include "user.h" +#include "api/user.h" #ifdef USE_SQLITE3 #include "sqlite_db/sqlite.h" diff --git a/src/db_get_all_users.c b/src/database/db_get_all_users.c similarity index 90% rename from src/db_get_all_users.c rename to src/database/db_get_all_users.c index 66763de..e489643 100644 --- a/src/db_get_all_users.c +++ b/src/database/db_get_all_users.c @@ -1,4 +1,4 @@ -#include "user.h" +#include "api/user.h" #ifdef USE_SQLITE3 #include "sqlite_db/sqlite.h" diff --git a/src/db_get_user_by_id.c b/src/database/db_get_user_by_id.c similarity index 91% rename from src/db_get_user_by_id.c rename to src/database/db_get_user_by_id.c index cff7836..d0d1203 100644 --- a/src/db_get_user_by_id.c +++ b/src/database/db_get_user_by_id.c @@ -1,4 +1,4 @@ -#include "user.h" +#include "api/user.h" #ifdef USE_SQLITE3 #include "sqlite_db/sqlite.h" diff --git a/src/db_get_user_by_username.c b/src/database/db_get_user_by_username.c similarity index 92% rename from src/db_get_user_by_username.c rename to src/database/db_get_user_by_username.c index 8766fa6..275f725 100644 --- a/src/db_get_user_by_username.c +++ b/src/database/db_get_user_by_username.c @@ -1,4 +1,4 @@ -#include "user.h" +#include "api/user.h" #ifdef USE_SQLITE3 #include "sqlite_db/sqlite.h" diff --git a/src/db_get_user_field_by_id.c b/src/database/db_get_user_field_by_id.c similarity index 92% rename from src/db_get_user_field_by_id.c rename to src/database/db_get_user_field_by_id.c index 40c6cb3..9885584 100644 --- a/src/db_get_user_field_by_id.c +++ b/src/database/db_get_user_field_by_id.c @@ -1,4 +1,4 @@ -#include "user.h" +#include "api/user.h" #ifdef USE_SQLITE3 #include "sqlite_db/sqlite.h" diff --git a/src/db_get_users_from_file.c b/src/database/db_get_users_from_file.c similarity index 95% rename from src/db_get_users_from_file.c rename to src/database/db_get_users_from_file.c index 1730021..b0aa112 100644 --- a/src/db_get_users_from_file.c +++ b/src/database/db_get_users_from_file.c @@ -1,6 +1,6 @@ #include -#include "file.h" -#include "user.h" +#include "utils/file.h" +#include "api/user.h" void db_get_users_from_file(const char *path) { char *users_string = read_file(path); diff --git a/src/db_insert_user.c b/src/database/db_insert_user.c similarity index 95% rename from src/db_insert_user.c rename to src/database/db_insert_user.c index 107d02f..51dbc62 100644 --- a/src/db_insert_user.c +++ b/src/database/db_insert_user.c @@ -1,4 +1,4 @@ -#include "user.h" +#include "api/user.h" #ifdef USE_SQLITE3 #include "sqlite_db/sqlite.h" diff --git a/src/db_update_user.c b/src/database/db_update_user.c similarity index 96% rename from src/db_update_user.c rename to src/database/db_update_user.c index 0109069..c0eddfa 100644 --- a/src/db_update_user.c +++ b/src/database/db_update_user.c @@ -1,4 +1,4 @@ -#include "user.h" +#include "api/user.h" #ifdef USE_SQLITE3 #include "sqlite_db/sqlite.h" diff --git a/src/db_update_user_field.c b/src/database/db_update_user_field.c similarity index 93% rename from src/db_update_user_field.c rename to src/database/db_update_user_field.c index a4f52f3..46bd030 100644 --- a/src/db_update_user_field.c +++ b/src/database/db_update_user_field.c @@ -1,4 +1,4 @@ -#include "user.h" +#include "api/user.h" #ifdef USE_SQLITE3 #include "sqlite_db/sqlite.h" diff --git a/src/file_db/filedb.h b/src/file_db/filedb.h index d861fff..e923e5c 100644 --- a/src/file_db/filedb.h +++ b/src/file_db/filedb.h @@ -1,6 +1,6 @@ #pragma once -#include "../user.h" +#include "api/user.h" extern pthread_mutex_t users_file_mutex; diff --git a/src/file_db/filedb_delete_user.c b/src/file_db/filedb_delete_user.c index 257430b..da99b05 100644 --- a/src/file_db/filedb_delete_user.c +++ b/src/file_db/filedb_delete_user.c @@ -1,6 +1,6 @@ #include #include -#include "../file.h" +#include "utils/file.h" #include "cJSON.h" #include "filedb.h" diff --git a/src/file_db/filedb_get_all_users.c b/src/file_db/filedb_get_all_users.c index d20c3b4..42ab6af 100644 --- a/src/file_db/filedb_get_all_users.c +++ b/src/file_db/filedb_get_all_users.c @@ -1,5 +1,5 @@ #include -#include "../file.h" +#include "utils/file.h" #include "filedb.h" char *filedb_get_all_users() { diff --git a/src/file_db/filedb_get_user_by_id.c b/src/file_db/filedb_get_user_by_id.c index 88be3b2..3bae35c 100644 --- a/src/file_db/filedb_get_user_by_id.c +++ b/src/file_db/filedb_get_user_by_id.c @@ -1,5 +1,5 @@ #include -#include "../file.h" +#include "utils/file.h" #include "filedb.h" User *filedb_get_user_by_id(const int id) { diff --git a/src/file_db/filedb_get_user_by_username.c b/src/file_db/filedb_get_user_by_username.c index 65ef941..587df8a 100644 --- a/src/file_db/filedb_get_user_by_username.c +++ b/src/file_db/filedb_get_user_by_username.c @@ -1,5 +1,5 @@ #include -#include "../file.h" +#include "utils/file.h" #include "filedb.h" User *filedb_get_user_by_username(const char *username) { diff --git a/src/file_db/filedb_get_user_field_by_id.c b/src/file_db/filedb_get_user_field_by_id.c index 82859de..ee45cf6 100644 --- a/src/file_db/filedb_get_user_field_by_id.c +++ b/src/file_db/filedb_get_user_field_by_id.c @@ -1,5 +1,5 @@ #include -#include "../file.h" +#include "utils/file.h" #include "filedb.h" char *filedb_get_user_field_by_id(const int id, const char *field) { diff --git a/src/file_db/filedb_insert_user.c b/src/file_db/filedb_insert_user.c index 89da731..8b84370 100644 --- a/src/file_db/filedb_insert_user.c +++ b/src/file_db/filedb_insert_user.c @@ -1,5 +1,5 @@ #include -#include "../file.h" +#include "utils/file.h" #include "filedb.h" User *filedb_insert_user(const char *username, const char *email, diff --git a/src/file_db/filedb_update_user.c b/src/file_db/filedb_update_user.c index 06593d8..279bca7 100644 --- a/src/file_db/filedb_update_user.c +++ b/src/file_db/filedb_update_user.c @@ -1,5 +1,5 @@ #include -#include "../file.h" +#include "utils/file.h" #include "filedb.h" User *filedb_update_user(const int userid, const char *username, diff --git a/src/file_db/filedb_update_user_field.c b/src/file_db/filedb_update_user_field.c index fd386ff..7f587b8 100644 --- a/src/file_db/filedb_update_user_field.c +++ b/src/file_db/filedb_update_user_field.c @@ -1,5 +1,5 @@ #include -#include "../file.h" +#include "utils/file.h" #include "filedb.h" bool filedb_update_user_field(const int id, const char *field, diff --git a/src/main.c b/src/main.c index a0e3754..51a31e8 100644 --- a/src/main.c +++ b/src/main.c @@ -5,13 +5,13 @@ #include #endif -#include "config.h" -#include "cors.h" -#include "database.h" -#include "file.h" -#include "route.h" -#include "static.h" -#include "user.h" +#include "config/config.h" +#include "security/cors.h" +#include "database/database.h" +#include "utils/file.h" +#include "api/route.h" +#include "api/static.h" +#include "api/user.h" static const struct route routes[] = { {"GET", "/#", root_handler}, diff --git a/src/cors.c b/src/security/cors.c similarity index 100% rename from src/cors.c rename to src/security/cors.c diff --git a/src/cors.h b/src/security/cors.h similarity index 100% rename from src/cors.h rename to src/security/cors.h diff --git a/src/jwt.c b/src/security/jwt.c similarity index 100% rename from src/jwt.c rename to src/security/jwt.c diff --git a/src/jwt.h b/src/security/jwt.h similarity index 100% rename from src/jwt.h rename to src/security/jwt.h diff --git a/src/sqlite_db/sqlite.h b/src/sqlite_db/sqlite.h index 926a09f..3e1a171 100644 --- a/src/sqlite_db/sqlite.h +++ b/src/sqlite_db/sqlite.h @@ -1,7 +1,7 @@ #pragma once #include -#include "../user.h" +#include "api/user.h" extern sqlite3 *db; extern pthread_mutex_t db_mutex; diff --git a/src/sqlite_db/sqlite_get_all_users.c b/src/sqlite_db/sqlite_get_all_users.c index 556ae62..9c57c3d 100644 --- a/src/sqlite_db/sqlite_get_all_users.c +++ b/src/sqlite_db/sqlite_get_all_users.c @@ -2,7 +2,7 @@ #include #include #include -#include "../database.h" +#include "database/database.h" #include "sql.h" #include "sqlite.h" diff --git a/src/sqlite_db/sqlite_init_db.c b/src/sqlite_db/sqlite_init_db.c index 8af19c9..5b275fc 100644 --- a/src/sqlite_db/sqlite_init_db.c +++ b/src/sqlite_db/sqlite_init_db.c @@ -1,4 +1,4 @@ -#include "../config.h" +#include "../config/config.h" #include "sqlite.h" void sqlite_init_db() { diff --git a/src/file.c b/src/utils/file.c similarity index 100% rename from src/file.c rename to src/utils/file.c diff --git a/src/file.h b/src/utils/file.h similarity index 100% rename from src/file.h rename to src/utils/file.h diff --git a/src/utils.c b/src/utils/utils.c similarity index 96% rename from src/utils.c rename to src/utils/utils.c index 2c1a018..6fb49d9 100644 --- a/src/utils.c +++ b/src/utils/utils.c @@ -3,7 +3,7 @@ #include #include -#include "user.h" +#include "api/user.h" request_with_token *check_body(const struct mg_http_message *hm) { if (hm->body.len == 0) { diff --git a/src/utils.h b/src/utils/utils.h similarity index 78% rename from src/utils.h rename to src/utils/utils.h index e8bf573..6ad8c75 100644 --- a/src/utils.h +++ b/src/utils/utils.h @@ -1,5 +1,5 @@ #pragma once -#include "user.h" +#include "api/user.h" request_with_token *check_body(const struct mg_http_message *hm);