Files
HousingManagement-server/CMakeLists.txt
olshab 6df4896628 Add token validation filter based on token signature and expiration date
- changed login request from GET to POST
- implement json body conversion to DTO objects
- set `user_id` and `role` attributes for HttpRequest inside filter
2025-06-14 16:35:18 +04:00

71 lines
1.8 KiB
CMake

cmake_minimum_required(VERSION 3.13)
set(CMAKE_TOOLCHAIN_FILE "./vcpkg/scripts/buildsystems/vcpkg.cmake")
set(CMAKE_CXX_STANDARD 20)
project(
"HousingManagement-server"
VERSION 1.0.0
DESCRIPTION "A project that serves as a backend for House Management course work"
LANGUAGES C CXX
)
# Drogon options
set(BUILD_CTL OFF CACHE BOOL "")
set(BUILD_EXAMPLES OFF CACHE BOOL "")
set(BUILD_ORM OFF CACHE BOOL "")
# jwt-cpp options
set(JWT_BUILD_EXAMPLES OFF CACHE BOOL "")
set(JWT_DISABLE_PICOJSON ON CACHE BOOL "")
add_subdirectory(third_party/drogon)
add_subdirectory(third_party/libpqxx)
add_subdirectory(third_party/jwt-cpp)
add_subdirectory(third_party/nlohmann_json)
add_subdirectory(third_party/spdlog)
add_executable(${PROJECT_NAME}
src/main.cpp
src/dependency_injection/DependencyContainer.h
src/utils/JsonConversion.cpp
src/utils/JsonConversion.h
src/controllers/AuthController.cpp
src/controllers/AuthController.h
src/controllers/filters/TokenValidationFilter.cpp
src/controllers/filters/TokenValidationFilter.h
src/dto/LoginRequestDto.h
src/dto/RegisterRequestDto.h
src/models/Entity.h
src/models/User.h
src/services/AuthService.cpp
src/services/AuthService.h
src/services/UserManager.cpp
src/services/UserManager.h
src/services/encryption/PasswordEncryptor.cpp
src/services/encryption/PasswordEncryptor.h
src/services/encryption/SHA256Hasher.cpp
src/services/encryption/SHA256Hasher.h
src/storages/IUserStorage.h
src/mock_storage_implementation/UserStorage.cpp
src/mock_storage_implementation/UserStorage.h
)
# Copy config dir to build dir
set(CONFIG_SOURCE_DIR ${CMAKE_SOURCE_DIR}/config)
file(COPY ${CONFIG_SOURCE_DIR} DESTINATION ${CMAKE_BINARY_DIR})
target_include_directories(
${PROJECT_NAME} PRIVATE
src/
)
target_link_libraries(
${PROJECT_NAME} PRIVATE
drogon
libpqxx::pqxx
jwt-cpp::jwt-cpp
nlohmann_json::nlohmann_json
spdlog::spdlog
)