diff --git a/.gitignore b/.gitignore index 29e77ea83792192b3109a26f972995fc12e75084..ff16b4fa8dbae03cd112cd35af40b655a8b5147e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ /cmake-build-debug/ /build/ .idea +server/build/ +log.txt CMakeUserPresets.json diff --git a/server/internal/users/tests/CMakeLists.txt b/client/CMakeLists.txt similarity index 100% rename from server/internal/users/tests/CMakeLists.txt rename to client/CMakeLists.txt diff --git a/server/CMakeLists.txt b/server/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..83d384f5fe80856ea12c3e5763ae20892dbf99f5 --- /dev/null +++ b/server/CMakeLists.txt @@ -0,0 +1,14 @@ +set(CMAKE_CXX_STANDARD 20) +cmake_minimum_required(VERSION 3.19) +set(CMAKE_PREFIX_PATH build) +project(SourcedOut CXX) +find_package(antlr4-runtime REQUIRED) +find_package(Boost 1.8.1 REQUIRED) +find_package(libpqxx REQUIRED) +find_package(GTest REQUIRED) +find_package(nlohmann_json REQUIRED) +message(STATUS ${nlohmann_json_LIBRARIES}) +add_subdirectory(internal) +add_subdirectory(cmd) +#add_executable(${PROJECT_NAME} text-basic-metrics/tbm_main.cpp text-basic-metrics/tbm_main.cpp) строка для запуска моей части в text-basic-metrics +#target_link_libraries(${PROJECT_NAME} ${Boost_LIBRARIES} ${antlr4-runtime_LIBRARIES} ${libpqxx_LIBRARIES} ${GTest_LIBRARIES} nlohmann_json::nlohmann_json) diff --git a/server/cmd/main.cpp b/server/cmd/main.cpp index 83f740d55fa7fefed1c44bbec98f8e6c3ec7004a..e494b5e4e1ea9b792ceabc684d4e17e0126330b6 100644 --- a/server/cmd/main.cpp +++ b/server/cmd/main.cpp @@ -1,6 +1,6 @@ -#include "../internal/users/include/UserRepository.hpp" +#include "../internal/repository/include/UserRepository.hpp" int main(){ User user{"qwerty200468@gmail.com", "123", "tolik"}; diff --git a/server/conanfile.txt b/server/conanfile.txt new file mode 100644 index 0000000000000000000000000000000000000000..e4b350b05b6838cf5c8ae735fc792b5cb408c9a2 --- /dev/null +++ b/server/conanfile.txt @@ -0,0 +1,10 @@ +[requires] +boost/1.81.0 +antlr4-cppruntime/4.12.0 +libpqxx/7.7.5 +gtest/cci.20210126 +nlohmann_json/3.11.2 + +[generators] +CMakeDeps +CMakeToolchain \ No newline at end of file diff --git a/server/internal/CMakeLists.txt b/server/internal/CMakeLists.txt index d990989ebbaec2f133844b44eff8828509e17ba3..87ba964ba7fd8010a1a9a230c9a520247462842d 100644 --- a/server/internal/CMakeLists.txt +++ b/server/internal/CMakeLists.txt @@ -1,11 +1,14 @@ set(CMAKE_CXX_STANDARD 20) cmake_minimum_required(VERSION 3.19) add_subdirectory(src) -add_subdirectory(users) -add_subdirectory(solutions) -add_subdirectory(tasks) -set(libusers_LIB ${libusers_LIB} PARENT_SCOPE) -set(libusers_INCLUDE_DIRS ${libusers_INCLUDE_DIRS} PARENT_SCOPE) +add_subdirectory(entities) +add_subdirectory(repository) +add_subdirectory(dbManager) +set(libEntities_LIB ${libEntities_LIB} PARENT_SCOPE) +set(libEntities_INCLUDE_DIRS ${libEntities_INCLUDE_DIRS} PARENT_SCOPE) + +set(libRepository_LIB ${libRepository_LIB} PARENT_SCOPE) +set(libRepository_INCLUDE_DIRS ${libRepository_INCLUDE_DIRS} PARENT_SCOPE) set(DB_Lib_LIB ${DB_Lib_LIB} PARENT_SCOPE) set(DB_Lib_INCLUDE_DIRS ${DB_Lib_INCLUDE_DIRS} PARENT_SCOPE) \ No newline at end of file diff --git a/server/internal/dbManager/include/dbManager.hpp b/server/internal/dbManager/include/dbManager.hpp new file mode 100644 index 0000000000000000000000000000000000000000..78bcc74dc768b2430052334f84eccf2bf25b3a02 --- /dev/null +++ b/server/internal/dbManager/include/dbManager.hpp @@ -0,0 +1,14 @@ +// +// Created by qwert on 01.05.2023. +// + +#ifndef SOURCEDOUT_DBMANAGER_HPP +#define SOURCEDOUT_DBMANAGER_HPP + + +class dbManager { + +}; + + +#endif //SOURCEDOUT_DBMANAGER_HPP diff --git a/server/internal/dbManager/src/dbManager.cpp b/server/internal/dbManager/src/dbManager.cpp new file mode 100644 index 0000000000000000000000000000000000000000..a778fc7973511ec4ee0a3db90c6adb84dbeb0454 --- /dev/null +++ b/server/internal/dbManager/src/dbManager.cpp @@ -0,0 +1,5 @@ +// +// Created by qwert on 01.05.2023. +// + +#include "../include/dbManager.hpp" diff --git a/server/internal/solutions/Solution.hpp b/server/internal/entities/include/Solution.hpp similarity index 100% rename from server/internal/solutions/Solution.hpp rename to server/internal/entities/include/Solution.hpp diff --git a/server/internal/tasks/Task.hpp b/server/internal/entities/include/Task.hpp similarity index 100% rename from server/internal/tasks/Task.hpp rename to server/internal/entities/include/Task.hpp diff --git a/server/internal/users/User.hpp b/server/internal/entities/include/User.hpp similarity index 100% rename from server/internal/users/User.hpp rename to server/internal/entities/include/User.hpp diff --git a/server/internal/solutions/src/Solution.cpp b/server/internal/entities/src/Solution.cpp similarity index 98% rename from server/internal/solutions/src/Solution.cpp rename to server/internal/entities/src/Solution.cpp index db3b2b971c60105f324874974ed5a3fb84a1a1f6..dd8a542a7bf1c09e5c7ff7b081dd1a50bb991f22 100644 --- a/server/internal/solutions/src/Solution.cpp +++ b/server/internal/entities/src/Solution.cpp @@ -1,7 +1,7 @@ #include #include -#include "../Solution.hpp" +#include "../include/Solution.hpp" Solution::Solution(unsigned long id, std::string sendDate, unsigned long senderId, std::string source, std::string tokens, diff --git a/server/internal/tasks/src/Task.cpp b/server/internal/entities/src/Task.cpp similarity index 93% rename from server/internal/tasks/src/Task.cpp rename to server/internal/entities/src/Task.cpp index 03629d87176c5144b07a6aea2b6502921ac0c0df..99e0fe634f4a3d28f78cd11511352f6b90616680 100644 --- a/server/internal/tasks/src/Task.cpp +++ b/server/internal/entities/src/Task.cpp @@ -1,6 +1,6 @@ #pragma once -#include "../Task.hpp" +#include "../include/Task.hpp" #include #include diff --git a/server/internal/users/src/User.cpp b/server/internal/entities/src/User.cpp similarity index 96% rename from server/internal/users/src/User.cpp rename to server/internal/entities/src/User.cpp index e32d7ae05de897a63b81bfa5bdd8832100fb3ded..d1ade4b2b7e693afbefa80b36f5e10b12bca6a6f 100644 --- a/server/internal/users/src/User.cpp +++ b/server/internal/entities/src/User.cpp @@ -1,5 +1,5 @@ #include -#include "../User.hpp" +#include "../include/User.hpp" User::User(size_t id_, std::string login_, std::string password_, std::string username_) : id(id_), login(std::move(login_)), password(std::move(password_)), username(std::move(username_)) { diff --git a/server/internal/entities/tests/CMakeLists.txt b/server/internal/entities/tests/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/server/internal/repository/CMakeLists.txt b/server/internal/repository/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..c51edf2cd7952a81cb3ba1d3d9ff0fa8aa9b268d --- /dev/null +++ b/server/internal/repository/CMakeLists.txt @@ -0,0 +1,34 @@ +cmake_minimum_required(VERSION 3.19) + +project("RepositoryLib") + +set(LIB_NAME libRepository) + +file(GLOB_RECURSE SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp) +file(GLOB_RECURSE HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/include/*.hpp ${CMAKE_CURRENT_SOURCE_DIR}/include/*.h) + +message("SOURCES = ${SOURCES}") +message("HEADERS = ${HEADERS}") + + +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall -Wextra -O2 -pedantic -Wformat=2 -Wfloat-equal -Wconversion \ +-Wlogical-op -Wshift-overflow=2 -Wduplicated-cond -Wcast-qual -Wcast-align") + +set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lboost_filesystem") + + +add_library(${LIB_NAME} ${SOURCES} ${HEADERS}) +target_include_directories(${LIB_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) +target_link_libraries(${LIB_NAME} ${Boost_LIBRARIES} ${libpqxx_LIBRARIES} ${libEntities_LIB}) + +set(libRepository_LIB ${LIB_NAME}) +set(libRepository_LIB ${libRepository_LIB} PARENT_SCOPE) +set(libRepository_INCLUDE_DIRS ${LIB_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/include) +set(libRepository_INCLUDE_DIRS ${libRepository_INCLUDE_DIRS} PARENT_SCOPE) + +message(Entities_LIB = "${libEntities_LIB}") +message("libRepository_LIB = ${libRepository_LIB}") +message("libRepository_INCLUDE_DIRS = ${libRepository_INCLUDE_DIRS}") + +enable_testing() +add_subdirectory(tests) \ No newline at end of file diff --git a/server/internal/solutions/include/SolutionRepository.hpp b/server/internal/repository/include/SolutionRepository.hpp similarity index 94% rename from server/internal/solutions/include/SolutionRepository.hpp rename to server/internal/repository/include/SolutionRepository.hpp index 4856b6d9d12478240b25450e9225f01fc2942297..264262474035c8a0f68cdc6136af8c686a3bd480 100644 --- a/server/internal/solutions/include/SolutionRepository.hpp +++ b/server/internal/repository/include/SolutionRepository.hpp @@ -5,7 +5,8 @@ #include #include #include -#include "ISolutionRepository.hpp" +#include "../virtual/ISolutionRepository.hpp" + using namespace pqxx; class SolutionRepository : ISolutionRepository { diff --git a/server/internal/tasks/include/TaskRepository.hpp b/server/internal/repository/include/TaskRepository.hpp similarity index 92% rename from server/internal/tasks/include/TaskRepository.hpp rename to server/internal/repository/include/TaskRepository.hpp index 342f64ba09326621f9c08f0f4293d2f1104be3b8..551efbe355b843586841decd323ec12de1462568 100644 --- a/server/internal/tasks/include/TaskRepository.hpp +++ b/server/internal/repository/include/TaskRepository.hpp @@ -3,7 +3,7 @@ #include #include -#include "ITaskRepository.hpp" +#include "../virtual/ITaskRepository.hpp" #include "pqxx/pqxx" using namespace pqxx; diff --git a/server/internal/users/include/UserRepository.hpp b/server/internal/repository/include/UserRepository.hpp similarity index 92% rename from server/internal/users/include/UserRepository.hpp rename to server/internal/repository/include/UserRepository.hpp index 3851cd798d533c8774f3d7f8756d23e1cc6a2230..335dbd05744040376349355cdfba2e8125d9efb3 100644 --- a/server/internal/users/include/UserRepository.hpp +++ b/server/internal/repository/include/UserRepository.hpp @@ -2,8 +2,7 @@ #define SOURCEDOUT_USERREPOSITORY_HPP #include -#include "IUserRepository.hpp" -#include "../User.hpp" +#include "../virtual/IUserRepository.hpp" #include #include #include diff --git a/server/internal/solutions/src/SolutionRepository.cpp b/server/internal/repository/src/SolutionRepository.cpp similarity index 99% rename from server/internal/solutions/src/SolutionRepository.cpp rename to server/internal/repository/src/SolutionRepository.cpp index fdb9d3c43634f6ed4a76588a8984f8c01b71f343..05e200fc5435fdce25175850e17dc03e2ac7e2ad 100644 --- a/server/internal/solutions/src/SolutionRepository.cpp +++ b/server/internal/repository/src/SolutionRepository.cpp @@ -4,7 +4,7 @@ #include #include #include -#include "../Solution.hpp" +#include "Solution.hpp" #include "SolutionRepository.hpp" using namespace pqxx; diff --git a/server/internal/tasks/src/TaskRepository.cpp b/server/internal/repository/src/TaskRepository.cpp similarity index 99% rename from server/internal/tasks/src/TaskRepository.cpp rename to server/internal/repository/src/TaskRepository.cpp index 655dd045e44342698cc6dc198e87c78c49b30699..a90b3b6e0a85fdfd9ee3b3d18fee9c9d46f022a7 100644 --- a/server/internal/tasks/src/TaskRepository.cpp +++ b/server/internal/repository/src/TaskRepository.cpp @@ -1,7 +1,7 @@ #pragma once #include #include -#include "../Task.hpp" +#include "Task.hpp" #include #include "TaskRepository.hpp" diff --git a/server/internal/users/src/UserRepository.cpp b/server/internal/repository/src/UserRepository.cpp similarity index 99% rename from server/internal/users/src/UserRepository.cpp rename to server/internal/repository/src/UserRepository.cpp index 6b3207bc97725bb14960b9a2d3e8aae886264f61..835402ffff5698eaed99705142e39e6e8c989d25 100644 --- a/server/internal/users/src/UserRepository.cpp +++ b/server/internal/repository/src/UserRepository.cpp @@ -2,7 +2,7 @@ #include #include -#include "../User.hpp" +#include "User.hpp" #include "UserRepository.hpp" #include #include diff --git a/server/internal/repository/tests/CMakeLists.txt b/server/internal/repository/tests/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/server/internal/solutions/virtual/ISolutionRepository.hpp b/server/internal/repository/virtual/ISolutionRepository.hpp similarity index 93% rename from server/internal/solutions/virtual/ISolutionRepository.hpp rename to server/internal/repository/virtual/ISolutionRepository.hpp index 902d0d5fa208fba06d6db9effe9cb7a1a9c3ae34..c64a1b6c15767892048b8a2b69cd0f1c3de362e0 100644 --- a/server/internal/solutions/virtual/ISolutionRepository.hpp +++ b/server/internal/repository/virtual/ISolutionRepository.hpp @@ -3,7 +3,7 @@ #include #include -#include "../Solution.hpp" +#include "../../entities/include/Solution.hpp" class ISolutionRepository { virtual Solution getSolutionById(size_t id) = 0; diff --git a/server/internal/tasks/virtual/ITaskRepository.hpp b/server/internal/repository/virtual/ITaskRepository.hpp similarity index 90% rename from server/internal/tasks/virtual/ITaskRepository.hpp rename to server/internal/repository/virtual/ITaskRepository.hpp index c788f94d961c851218f0940d431edde70c67e2db..26d32d23017abec52275cea7883d0c215f199243 100644 --- a/server/internal/tasks/virtual/ITaskRepository.hpp +++ b/server/internal/repository/virtual/ITaskRepository.hpp @@ -2,7 +2,7 @@ #define SOURCEDOUT_ITASKREPOSITORY_HPP #include -#include "../Task.hpp" +#include "../../entities/include/Task.hpp" class ITaskRepository { virtual Task getTaskById(size_t id) = 0; diff --git a/server/internal/users/virtual/IUserRepository.hpp b/server/internal/repository/virtual/IUserRepository.hpp similarity index 91% rename from server/internal/users/virtual/IUserRepository.hpp rename to server/internal/repository/virtual/IUserRepository.hpp index 8f41eb39169255fb0e5c3a1197ffffb7dd2dbb31..8b3f7ab20af9f478fc68b318ada1a3d3d594696e 100644 --- a/server/internal/users/virtual/IUserRepository.hpp +++ b/server/internal/repository/virtual/IUserRepository.hpp @@ -2,7 +2,7 @@ #define SOURCEDOUT_IUSERREPOSITORY_HPP #include -#include "../User.hpp" +#include "../../entities/include/User.hpp" class IUserRepository { public: virtual User getUserById(size_t id) = 0; diff --git a/server/internal/solutions/CMakeLists.txt b/server/internal/solutions/CMakeLists.txt deleted file mode 100644 index 48709e6056f537be3f5ccdcdfa59785da78afc99..0000000000000000000000000000000000000000 --- a/server/internal/solutions/CMakeLists.txt +++ /dev/null @@ -1,20 +0,0 @@ -set(CMAKE_CXX_STANDARD 20) -cmake_minimum_required(VERSION 3.19) -project(solutions) - -set(LIB_NAME libsolutions) - -file(GLOB_RECURSE SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp) -file(GLOB_RECURSE HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/include/*.hpp ${CMAKE_CURRENT_SOURCE_DIR}/include/*.h ${CMAKE_CURRENT_SOURCE_DIR}/virtual/*.hpp ${CMAKE_CURRENT_SOURCE_DIR}/virtual/*.h ${CMAKE_CURRENT_SOURCE_DIR}/*.hpp) - -message("SOURCES = ${SOURCES}") -message("HEADERS = ${HEADERS}") - -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall -Wextra -O2 -pedantic -Wformat=2 -Wfloat-equal -Wconversion \ --Wlogical-op -Wshift-overflow=2 -Wduplicated-cond -Wcast-qual -Wcast-align") - -set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}") - -add_library(${LIB_NAME} ${SOURCES} ${HEADERS}) -target_include_directories(${LIB_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/virtual) -target_link_libraries(${LIB_NAME} ${Boost_LIBRARIES} ${libpqxx_LIBRARIES}) \ No newline at end of file diff --git a/server/internal/tasks/CMakeLists.txt b/server/internal/tasks/CMakeLists.txt deleted file mode 100644 index b118f3d05dfb38bd84cc171a370326d5312ee87d..0000000000000000000000000000000000000000 --- a/server/internal/tasks/CMakeLists.txt +++ /dev/null @@ -1,20 +0,0 @@ -set(CMAKE_CXX_STANDARD 20) -cmake_minimum_required(VERSION 3.19) -project(tasks) - -set(LIB_NAME libtasks) - -file(GLOB_RECURSE SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp) -file(GLOB_RECURSE HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/include/*.hpp ${CMAKE_CURRENT_SOURCE_DIR}/include/*.h ${CMAKE_CURRENT_SOURCE_DIR}/virtual/*.hpp ${CMAKE_CURRENT_SOURCE_DIR}/virtual/*.h ${CMAKE_CURRENT_SOURCE_DIR}/*.hpp) - -message("SOURCES = ${SOURCES}") -message("HEADERS = ${HEADERS}") - -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall -Wextra -O2 -pedantic -Wformat=2 -Wfloat-equal -Wconversion \ --Wlogical-op -Wshift-overflow=2 -Wduplicated-cond -Wcast-qual -Wcast-align") - -set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}") - -add_library(${LIB_NAME} ${SOURCES} ${HEADERS}) -target_include_directories(${LIB_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/virtual) -target_link_libraries(${LIB_NAME} ${Boost_LIBRARIES} ${libpqxx_LIBRARIES}) \ No newline at end of file diff --git a/server/internal/users/CMakeLists.txt b/server/internal/users/CMakeLists.txt deleted file mode 100644 index 168866a418245160940688e98d52538e1ad7fea6..0000000000000000000000000000000000000000 --- a/server/internal/users/CMakeLists.txt +++ /dev/null @@ -1,28 +0,0 @@ -set(CMAKE_CXX_STANDARD 20) -cmake_minimum_required(VERSION 3.19) -project(users) - -set(LIB_NAME libusers) - -file(GLOB_RECURSE SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp) -file(GLOB_RECURSE HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/include/*.hpp ${CMAKE_CURRENT_SOURCE_DIR}/include/*.h ${CMAKE_CURRENT_SOURCE_DIR}/virtual/*.hpp ${CMAKE_CURRENT_SOURCE_DIR}/virtual/*.h ${CMAKE_CURRENT_SOURCE_DIR}/*.hpp) - -message("SOURCES = ${SOURCES}") -message("HEADERS = ${HEADERS}") - -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall -Wextra -O2 -pedantic -Wformat=2 -Wfloat-equal -Wconversion \ --Wlogical-op -Wshift-overflow=2 -Wduplicated-cond -Wcast-qual -Wcast-align") - -set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}") - -add_library(${LIB_NAME} ${SOURCES} ${HEADERS}) -target_include_directories(${LIB_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/virtual) -target_link_libraries(${LIB_NAME} ${Boost_LIBRARIES} ${libpqxx_LIBRARIES} ${DB_Lib_LIB}) - -set(libusers_LIB ${LIB_NAME}) -set(libusers_LIB ${libusers_LIB} PARENT_SCOPE) -set(libusers_INCLUDE_DIRS ${LIB_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/virtual) -set(libusers_INCLUDE_DIRS ${libusers_INCLUDE_DIRS} PARENT_SCOPE) - -enable_testing() -add_subdirectory(tests) \ No newline at end of file