diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f9f98748e..320a9cfea 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -50,7 +50,7 @@ jobs: ########################################################################## - name: login server | Build `test` image run: | - docker build --target login_server_debug -t "gradido/login_server:test" -f ./login_server/Dockerfile.debug login_server/ + docker build --target login_server -t "gradido/login_server:test" -f ./login_server/Dockerfile login_server/ docker save "gradido/login_server:test" > /tmp/login_server.tar - name: Upload Artifact uses: actions/upload-artifact@v2 diff --git a/.gitignore b/.gitignore index 44f403757..6c67d7f9c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ *.log /node_modules/* .vscode +messages.pot .skeema nbproject \ No newline at end of file diff --git a/.gitmodules b/.gitmodules index 7ebe00a4d..62e643b38 100644 --- a/.gitmodules +++ b/.gitmodules @@ -27,5 +27,10 @@ [submodule "community_server/src/protobuf"] path = community_server/src/protobuf - url = git@github.com:gradido/gradido_protocol.git - + url = https://github.com/gradido/gradido_protocol.git +[submodule "login_server/dependencies/libsodium"] + path = login_server/dependencies/libsodium + url = https://github.com/jedisct1/libsodium.git +[submodule "login_server/src/proto"] + path = login_server/src/proto + url = https://github.com/gradido/gradido_protocol.git diff --git a/CHANGELOG.md b/CHANGELOG.md index 8af5505e0..26a3b3c4a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,9 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). -#### [1.0.1](https://github.com/gradido/gradido/compare/0.9.4...1.0.1) +#### [1.0.0](https://github.com/gradido/gradido/compare/0.9.4...1.0.0) +- Release fix [`#428`](https://github.com/gradido/gradido/pull/428) - Send button only click [`#427`](https://github.com/gradido/gradido/pull/427) - use new function for balance overview in old frontend, update balance… [`#422`](https://github.com/gradido/gradido/pull/422) - thx.vue coloured background removed. design adapted to app [`#426`](https://github.com/gradido/gradido/pull/426) diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 944f8d976..1311fe894 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -26,8 +26,8 @@ services: ######################################################### login-server: build: - target: login_server_debug - dockerfile: Dockerfile.debug + target: login_server_alpine_debug + dockerfile: Dockerfile.alpine-debug security_opt: - seccomp:unconfined cap_add: @@ -35,8 +35,10 @@ services: volumes: - ./logs:/var/log/grd_login - ./login_server/src:/code/src + - ./login_server/dependencies:/code/dependencies + - ./login_server/scripts:/code/scripts - ./configs/login_server:/etc/grd_login - - login_build_conan:/code/build_vol + - login_build_alpine:/code/build ######################################################### @@ -101,5 +103,4 @@ services: volumes: frontend_node_modules: - login_build_conan: - + login_build_alpine: diff --git a/frontend/package.json b/frontend/package.json index 21b02ee2e..aa999ffbd 100755 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "bootstrap-vue-gradido-wallet", - "version": "1.0.1", + "version": "1.0.0", "private": true, "scripts": { "start": "node run/server.js", diff --git a/login_server/CMakeLists.txt b/login_server/CMakeLists.txt index 4502249e5..c1b55d9c7 100644 --- a/login_server/CMakeLists.txt +++ b/login_server/CMakeLists.txt @@ -2,10 +2,17 @@ cmake_minimum_required(VERSION 3.18.2) project(Gradido_LoginServer C CXX) SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY "bin" ) -SET ( CMAKE_CXX_FLAGS "-std=c++17" ) +SET(CMAKE_CXX_FLAGS "-std=c++17" ) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) +IF(WIN32) + set(CMAKE_CXX_FLAGS "/MP /EHsc") +ENDIF() + +set(INSTALL_BINDIR "bin") +set(INSTALL_PLUGINDIR "bin") + include_directories( "dependencies" "dependencies/tinf/src/" @@ -14,13 +21,119 @@ include_directories( "dependencies/spirit-po/include" "dependencies/grpc/include" "dependencies/grpc/third_party/protobuf/src" - "src/cpp/proto" + "dependencies/grpc/third_party/googletest/googletest/include" + "build" + "build/proto" ) -#if(WIN32) -#include_directories("dependencies/mariadb-connector-c/include", "dependencies/mariadb-connector-c/build/include") -set(MYSQL_INCLUDE_DIR "dependencies/mariadb-connector-c/include") -#endif(WIN32) +IF(UNIX) + include_directories( + "dependencies/poco/Crypto/include" + "dependencies/poco/Data/include" + "dependencies/poco/Util/include" + "dependencies/poco/Foundation/include" + "dependencies/poco/JSON/include" + "dependencies/poco/Net/include" + "dependencies/poco/NetSSL_OpenSSL/include" + ) +ENDIF() +############################## config and add grpc ################################### + +set(GRPC_PATH "${DEP_PATH}/grpc/build") +set(GRPC_ABSL_PATH "${GRPC_PATH}/third_party/abseil-cpp/absl/types") +set(GRPC_CARES_PATH "${GRPC_PATH}/third_party/cares/cares/lib") +set(GRPC_BORING_SSL_PATH "${GRPC_PATH}/third_party/boringssl-with-bazel") +set(GRPC_RE2_PATH "${GRPC_PATH}/third_party/re2") +set(GRPC_PROTOBUF_PATH "${GRPC_PATH}/third_party/protobuf") + +if(WIN32) + set(GRPC_PATH "${GRPC_PATH}/Debug") + set(GRPC_ABSL_PATH "${GRPC_ABSL_PATH}/Debug") + set(GRPC_CARES_PATH "${GRPC_CARES_PATH}/Debug") + set(GRPC_BORING_SSL_PATH "${GRPC_CGRPC_BORING_SSL_PATHARES_PATH}/Debug") + set(GRPC_RE2_PATH "${GRPC_RE2_PATH}/Debug") + set(GRPC_PROTOBUF_DEBUG_PATH "${GRPC_PROTOBUF_PATH}/Debug") +endif() + + +set(BUILD_TESTING OFF) +#set(gRPC_SSL_PROVIDER "package") +add_subdirectory("dependencies/grpc/") +#set(gRPC_SSL_PROVIDER "package") +message(STATUS "Using gRPC via add_subdirectory.") + +set(GRPC_LIBS libprotobuf grpc++_reflection grpc++) + +############################## parse protobuf files ################################### + +FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/src/proto GRADIDO_PROTO_MODEL_PATH) +FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/src/proto/hedera/hedera-protobuf/src/main/proto HEDERA_PROTO_MODEL_PATH) +FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/build/proto PROTOBINDING_PATH) +file(MAKE_DIRECTORY ${PROTOBINDING_PATH}) +file(MAKE_DIRECTORY ${PROTOBINDING_PATH}/gradido) +file(MAKE_DIRECTORY ${PROTOBINDING_PATH}/hedera) + +FILE(GLOB DATAMODEL_GRADIDO_PROTOS "${GRADIDO_PROTO_MODEL_PATH}/gradido/*.proto") +FILE(GLOB DATAMODEL_HEDERA_PROTOS "${HEDERA_PROTO_MODEL_PATH}/*.proto") + +IF(WIN32) + find_program(GRPC_CPP_PLUGIN grpc_cpp_plugin PATHS "build/dependencies/grpc/bin/Debug") + find_program(GRPC_CPP_PLUGIN grpc_cpp_plugin PATHS "build/dependencies/grpc/bin/Release") + find_program(PROTOBUF_PROTOC_EXECUTABLE protoc PATHS "build/dependencies/grpc/third_party/protobuf/bin/Debug" ) + find_program(PROTOBUF_PROTOC_EXECUTABLE protoc PATHS "build/dependencies/grpc/third_party/protobuf/bin/Release" ) +ELSE() + find_program(GRPC_CPP_PLUGIN grpc_cpp_plugin PATHS "build/dependencies/grpc/bin") + find_program(PROTOBUF_PROTOC_EXECUTABLE protoc PATHS "build/dependencies/grpc/third_party/protobuf/bin" ) +ENDIF() +FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/grpc/third_party/protobuf/src GOOGLE_PROTOBUF_INCLUDES) +MESSAGE("protoc: ${PROTOBUF_PROTOC_EXECUTABLE} in build/dependencies/grpc/bin/${CMAKE_BUILD_TYPE}") +FOREACH(proto ${DATAMODEL_GRADIDO_PROTOS}) + FILE(TO_NATIVE_PATH ${proto} proto_native) + get_filename_component(proto_parsed ${proto} NAME_WLE) + FILE(TO_NATIVE_PATH ${PROTOBINDING_PATH}/gradido/${proto_parsed}.pb.h proto_parsed_native) + + IF(${proto_native} IS_NEWER_THAN ${proto_parsed_native}) + EXECUTE_PROCESS( + COMMAND + ${PROTOBUF_PROTOC_EXECUTABLE} + --proto_path=${GRADIDO_PROTO_MODEL_PATH} + --cpp_out=${PROTOBINDING_PATH} + ${proto_native} + RESULT_VARIABLE rv + ) + # Optional, but that can show the user if something have gone wrong with the proto generation + IF(${rv}) + MESSAGE("Generation of data model returned ${rv} for proto ${proto_native}") + ENDIF() + ENDIF() + +ENDFOREACH(proto) + +FOREACH(proto ${DATAMODEL_HEDERA_PROTOS}) + FILE(TO_NATIVE_PATH ${proto} proto_native) + get_filename_component(proto_parsed ${proto} NAME_WLE) + FILE(TO_NATIVE_PATH ${PROTOBINDING_PATH}/hedera/${proto_parsed}.pb.h proto_parsed_native) + IF(${proto_native} IS_NEWER_THAN ${proto_parsed_native}) + EXECUTE_PROCESS( + COMMAND + ${PROTOBUF_PROTOC_EXECUTABLE} + --plugin=protoc-gen-grpc=${GRPC_CPP_PLUGIN} + --proto_path=${HEDERA_PROTO_MODEL_PATH} + --proto_path=${GOOGLE_PROTOBUF_INCLUDES} + --cpp_out=${PROTOBINDING_PATH}/hedera + --grpc_out ${PROTOBINDING_PATH}/hedera + ${proto_native} + RESULT_VARIABLE rv + ) + # Optional, but that can show the user if something have gone wrong with the proto generation + IF(${rv}) + MESSAGE("Generation of data model returned ${rv} for proto ${proto_native}") + ENDIF() + ENDIF() +ENDFOREACH(proto) + + +############################## bind source files ################################### FILE(GLOB CONTROLLER "src/cpp/controller/*.cpp" "src/cpp/controller/*.h") FILE(GLOB TINF "dependencies/tinf/src/*.c" "dependencies/tinf/src/*.h") @@ -37,8 +150,8 @@ FILE(GLOB MODEL_GRADIDO "src/cpp/model/gradido/*.h" "src/cpp/model/gradido/*.cpp FILE(GLOB CRYPTO "src/cpp/Crypto/*.h" "src/cpp/Crypto/*.cpp") FILE(GLOB MAIN "src/cpp/*.cpp" "src/cpp/*.c" "src/cpp/*.h") FILE(GLOB MYSQL "src/cpp/MySQL/*.cpp" "src/cpp/MySQL/*.h" "src/cpp/MySQL/Poco/*.h") -FILE(GLOB PROTO_GRADIDO "src/cpp/proto/gradido/*.cc" "src/cpp/proto/gradido/*.h") -FILE(GLOB PROTO_HEDERA "src/cpp/proto/hedera/*.cc" "src/cpp/proto/hedera/*.h") +FILE(GLOB PROTO_GRADIDO "build/proto/gradido/*.cc" "build/proto/gradido/*.h") +FILE(GLOB PROTO_HEDERA "build/proto/hedera/*.cc" "build/proto/hedera/*.h") # used only for test project FILE(GLOB TEST "src/cpp/test/*.cpp" "src/cpp/test/*.h") @@ -84,12 +197,15 @@ if(MSVC) source_group("Test" FILES ${TEST}) endif() - -include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) -conan_basic_setup() - +IF(WIN32) + include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) + conan_basic_setup() + #add_compile_definitions(POCO_NETSSL_WIN) +ENDIF() add_executable(Gradido_LoginServer ${LOCAL_SRCS}) + +############################## config and add mariadb ################################### set(CLIENT_PLUGIN_DIALOG OFF) set(CLIENT_PLUGIN_MYSQL_CLEAR_PASSWORD OFF) set(CLIENT_PLUGIN_REMOTE_IO OFF) @@ -111,99 +227,34 @@ add_subdirectory("dependencies/mariadb-connector-c") set(DEP_PATH "dependencies") set(MARIADB_CONNECTOR_PATH "${DEP_PATH}/mariadb-connector-c/build/libmariadb") -set(GRPC_PATH "${DEP_PATH}/grpc/build") -set(GRPC_ABSL_PATH "${GRPC_PATH}/third_party/abseil-cpp/absl/types") -set(GRPC_CARES_PATH "${GRPC_PATH}/third_party/cares/cares/lib") -set(GRPC_BORING_SSL_PATH "${GRPC_PATH}/third_party/boringssl-with-bazel") -set(GRPC_RE2_PATH "${GRPC_PATH}/third_party/re2") -set(GRPC_PROTOBUF_PATH "${GRPC_PATH}/third_party/protobuf") +#if(WIN32) + #find_library(MYSQL_LIBRARIES mariadbclient PATHS "${MARIADB_CONNECTOR_PATH}/Release" REQUIRED) + #find_library(COMPILED_MARIADB_CLIENT_DEBUG mariadbclient PATHS "${MARIADB_CONNECTOR_PATH}/Debug" REQUIRED) +#endif() + +############################## config and add poco ################################### +#SET(SOME_EXPAT_OPTION OFF CACHE BOOL "Use some expat option") +IF(UNIX) + SET(ENABLE_MONGODB OFF CACHE BOOL "" FORCE) + SET(ENABLE_DATA_SQLITE OFF CACHE BOOL "" FORCE) + SET(ENABLE_REDIS OFF CACHE BOOL "" FORCE) + SET(ENABLE_PAGECOMPILER_FILE2PAGE OFF CACHE BOOL "" FORCE) + add_subdirectory("dependencies/poco") + + set(POCO_LIBS PocoFoundation PocoUtil PocoNet PocoNetSSL PocoData) +ENDIF() +############################## build login server ################################### + +target_link_libraries(Gradido_LoginServer ${GRPC_LIBS}) if(WIN32) - - find_library(MYSQL_LIBRARIES mariadbclient PATHS "${MARIADB_CONNECTOR_PATH}/Release" REQUIRED) - find_library(COMPILED_MARIADB_CLIENT_DEBUG mariadbclient PATHS "${MARIADB_CONNECTOR_PATH}/Debug" REQUIRED) - - find_library(CONAN_OPENSSL_SSL ssleay32 PATHS ${CONAN_LIB_DIRS_OPENSSL} REQUIRED NO_DEFAULT_PATH ) - find_library(CONAN_OPENSSL_CRYPTO libeay32 PATHS ${CONAN_LIB_DIRS_OPENSSL} REQUIRED NO_DEFAULT_PATH ) - - set(GRPC_PATH "${GRPC_PATH}/Debug") - set(GRPC_ABSL_PATH "${GRPC_ABSL_PATH}/Debug") - set(GRPC_CARES_PATH "${GRPC_CARES_PATH}/Debug") - set(GRPC_BORING_SSL_PATH "${GRPC_CGRPC_BORING_SSL_PATHARES_PATH}/Debug") - set(GRPC_RE2_PATH "${GRPC_RE2_PATH}/Debug") - set(GRPC_PROTOBUF_DEBUG_PATH "${GRPC_PROTOBUF_PATH}/Debug") - - - list(REMOVE_ITEM CONAN_LIBS "libeay32.lib") - list(REMOVE_ITEM CONAN_LIBS "ssleay32.lib") - - -else() - #find_package(MariaDBClient PATHS "dependencies/cmake-modules") - #find_library(MYSQL_LIBRARIES libmariadb.so PATHS ${MARIADB_CONNECTOR_PATH} REQUIRED) - find_library(CONAN_OPENSSL_SSL ssl PATHS ${CONAN_LIB_DIRS_OPENSSL} REQUIRED NO_DEFAULT_PATH ) - find_library(CONAN_OPENSSL_CRYPTO crypto PATHS ${CONAN_LIB_DIRS_OPENSSL} REQUIRED NO_DEFAULT_PATH ) - set(GRPC_PROTOBUF_DEBUG_PATH "${GRPC_PROTOBUF_PATH}") - - list(REMOVE_ITEM CONAN_LIBS "ssl") - list(REMOVE_ITEM CONAN_LIBS "crypto") - list(REMOVE_ITEM CONAN_LIBS "dl") - -# find_library(MYSQL_LIBRARIES libmariadb.so PATHS ${MARIADB_CONNECTOR_PATH} REQUIRED) - find_library(CONAN_OPENSSL_SSL ssl PATHS ${CONAN_LIB_DIRS_OPENSSL} REQUIRED NO_DEFAULT_PATH ) - find_library(CONAN_OPENSSL_CRYPTO crypto PATHS ${CONAN_LIB_DIRS_OPENSSL} REQUIRED NO_DEFAULT_PATH ) - set(GRPC_PROTOBUF_DEBUG_PATH "${GRPC_PROTOBUF_PATH}") - - list(REMOVE_ITEM CONAN_LIBS "ssl") - list(REMOVE_ITEM CONAN_LIBS "crypto") - list(REMOVE_ITEM CONAN_LIBS "dl") - -endif() - -# load same ssl version like used from poco -#find_package(OpenSSL PATHS "../" NO_DEFAULT_PATH) - - -set(CONAN_OPENSSL_CUSTOM_LIBS - ${CONAN_OPENSSL_SSL} - ${CONAN_OPENSSL_CRYPTO} -) -include_directories(${CONAN_INCLUDE_DIRS_OPENSSL}) -# build grpc - - - -if(WIN32) - - set(CMAKE_CXX_FLAGS "/MP /EHsc") - #set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g3") - #set(CMAKE_CXX_FLAGS_RELEASE "-O3") - -else() - - set(INSTALL_BINDIR "bin") - set(INSTALL_PLUGINDIR "bin") - target_link_libraries(Gradido_LoginServer ${CONAN_OPENSSL_CUSTOM_LIBS}) - -endif() - -set(BUILD_TESTING OFF) -set(gRPC_SSL_PROVIDER "package") -add_subdirectory("dependencies/grpc/") -set(gRPC_SSL_PROVIDER "package") -message(STATUS "Using gRPC via add_subdirectory.") - -set(GRPC_LIBS libprotobuf grpc++_reflection grpc++) -target_link_libraries(Gradido_LoginServer ${CONAN_LIBS}) - -if(WIN32) - TARGET_LINK_LIBRARIES(Gradido_LoginServer optimized ${MYSQL_LIBRARIES} Shlwapi) - TARGET_LINK_LIBRARIES(Gradido_LoginServer debug ${COMPILED_MARIADB_CLIENT_DEBUG} Shlwapi) - TARGET_LINK_LIBRARIES(Gradido_LoginServer debug ${GRPC_LIBS} ${PROTOBUF_DEBUG_LIBS}) + target_link_libraries(Gradido_LoginServer mariadbclient ${CONAN_LIBS}) + #TARGET_LINK_LIBRARIES(Gradido_LoginServer optimized ${MYSQL_LIBRARIES} Shlwapi) + #TARGET_LINK_LIBRARIES(Gradido_LoginServer debug ${COMPILED_MARIADB_CLIENT_DEBUG} Shlwapi) else() # unix - target_link_libraries(Gradido_LoginServer libmariadb ${GRPC_LIBS} ${CMAKE_DL_LIBS} ${PROTOBUF_LIBS}) + target_link_libraries(Gradido_LoginServer ${POCO_LIBS} libmariadb sodium) endif() # install @@ -228,15 +279,15 @@ enable_testing() add_executable(Gradido_LoginServer_Test ${LOCAL_SRCS} ${LOCAL_TEST_SRC}) target_compile_definitions(Gradido_LoginServer_Test PUBLIC "_TEST_BUILD") -target_link_libraries(Gradido_LoginServer_Test ${CONAN_LIBS} ) - +target_link_libraries(Gradido_LoginServer_Test ${GRPC_LIBS} ) if(WIN32) - TARGET_LINK_LIBRARIES(Gradido_LoginServer_Test optimized ${MYSQL_LIBRARIES} Shlwapi) - TARGET_LINK_LIBRARIES(Gradido_LoginServer_Test debug ${COMPILED_MARIADB_CLIENT_DEBUG} Shlwapi) - TARGET_LINK_LIBRARIES(Gradido_LoginServer_Test debug ${GRPC_LIBS} ${PROTOBUF_DEBUG_LIBS}) + target_link_libraries(Gradido_LoginServer_Test ${CONAN_LIBS} ) + #TARGET_LINK_LIBRARIES(Gradido_LoginServer_Test optimized ${MYSQL_LIBRARIES} Shlwapi) + #TARGET_LINK_LIBRARIES(Gradido_LoginServer_Test debug ${COMPILED_MARIADB_CLIENT_DEBUG} Shlwapi) + #TARGET_LINK_LIBRARIES(Gradido_LoginServer_Test debug ${GRPC_LIBS} ${PROTOBUF_DEBUG_LIBS}) else() - target_link_libraries(Gradido_LoginServer_Test libmariadb ${GRPC_LIBS} ${CMAKE_DL_LIBS} ${PROTOBUF_LIBS}) + target_link_libraries(Gradido_LoginServer_Test ${POCO_LIBS} libmariadb sodium) endif() add_test(NAME main COMMAND Gradido_LoginServer_Test) diff --git a/login_server/CMakeLists.txt.lib b/login_server/CMakeLists.txt.lib new file mode 100644 index 000000000..6de10f72e --- /dev/null +++ b/login_server/CMakeLists.txt.lib @@ -0,0 +1,189 @@ +cmake_minimum_required(VERSION 3.18.2) +project(Gradido_LoginServer C CXX) +SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY "bin" ) + +SET ( CMAKE_CXX_FLAGS "-std=c++17" ) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +if(WIN32) + set(CMAKE_CXX_FLAGS "/MP /EHsc") + set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g3") + set(CMAKE_CXX_FLAGS_RELEASE "-O3") +else() + set(INSTALL_BINDIR "bin") + set(INSTALL_PLUGINDIR "bin") +endif() + +include_directories( + "dependencies" + "dependencies/tinf/src" + "dependencies/spirit-po/include" + "/usr/local/include/mariadb" + "build" + "build/proto" +) + +############################## config and add grpc ################################### +find_package(Protobuf REQUIRED) +include_directories(${Protobuf_INCLUDE_DIRS}) + +FIND_PACKAGE(gRPC CONFIG REQUIRED) +find_program(GRPC_CPP_PLUGIN grpc_cpp_plugin) + +set(PROTOBUF_LIBS protobuf::libprotobuf protobuf::libprotobuf-lite protobuf::libprotoc) + +############################## parse proto files ################################### + +FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/src/proto GRADIDO_PROTO_MODEL_PATH) +FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/src/proto/hedera/hedera-protobuf/src/main/proto HEDERA_PROTO_MODEL_PATH) +FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/build/proto PROTOBINDING_PATH) +file(MAKE_DIRECTORY ${PROTOBINDING_PATH}) +file(MAKE_DIRECTORY ${PROTOBINDING_PATH}/gradido) +file(MAKE_DIRECTORY ${PROTOBINDING_PATH}/hedera) + +FILE(GLOB DATAMODEL_GRADIDO_PROTOS "${GRADIDO_PROTO_MODEL_PATH}/gradido/*.proto") +FILE(GLOB DATAMODEL_HEDERA_PROTOS "${HEDERA_PROTO_MODEL_PATH}/*.proto") + +FOREACH(proto ${DATAMODEL_GRADIDO_PROTOS}) + FILE(TO_NATIVE_PATH ${proto} proto_native) + get_filename_component(proto_parsed ${proto} NAME_WLE) + FILE(TO_NATIVE_PATH ${PROTOBINDING_PATH}/gradido/${proto_parsed}.pb.h proto_parsed_native) + + IF(${proto_native} IS_NEWER_THAN ${proto_parsed_native}) + EXECUTE_PROCESS( + COMMAND + ${PROTOBUF_PROTOC_EXECUTABLE} + --proto_path=${GRADIDO_PROTO_MODEL_PATH} + --cpp_out=${PROTOBINDING_PATH} + ${proto_native} + RESULT_VARIABLE rv + ) + # Optional, but that can show the user if something have gone wrong with the proto generation + IF(${rv}) + MESSAGE("Generation of data model returned ${rv} for proto ${proto_native}") + ENDIF() + ENDIF() + +ENDFOREACH(proto) + +FOREACH(proto ${DATAMODEL_HEDERA_PROTOS}) + FILE(TO_NATIVE_PATH ${proto} proto_native) + get_filename_component(proto_parsed ${proto} NAME_WLE) + FILE(TO_NATIVE_PATH ${PROTOBINDING_PATH}/hedera/${proto_parsed}.pb.h proto_parsed_native) + IF(${proto_native} IS_NEWER_THAN ${proto_parsed_native}) + EXECUTE_PROCESS( + COMMAND + ${PROTOBUF_PROTOC_EXECUTABLE} + --plugin=protoc-gen-grpc=${GRPC_CPP_PLUGIN} + --proto_path=${HEDERA_PROTO_MODEL_PATH} + --proto_path=${GOOGLE_PROTOBUF_INCLUDES} + --cpp_out=${PROTOBINDING_PATH}/hedera + --grpc_out ${PROTOBINDING_PATH}/hedera + ${proto_native} + RESULT_VARIABLE rv + ) + # Optional, but that can show the user if something have gone wrong with the proto generation + IF(${rv}) + MESSAGE("Generation of data model returned ${rv} for proto ${proto_native}") + ENDIF() + ENDIF() +ENDFOREACH(proto) + +############################## include src files ################################### +#set(MYSQL_INCLUDE_DIR "dependencies/mariadb-connector-c/include") + +FILE(GLOB CONTROLLER "src/cpp/controller/*.cpp" "src/cpp/controller/*.h") +FILE(GLOB TINF "dependencies/tinf/src/*.c" "dependencies/tinf/src/*.h") +FILE(GLOB HTTPInterface "src/cpp/HTTPInterface/*.h" "src/cpp/HTTPInterface/*.cpp") +FILE(GLOB JSONInterface "src/cpp/JSONInterface/*.h" "src/cpp/JSONInterface/*.cpp") +FILE(GLOB TASKS "src/cpp/tasks/*.cpp" "src/cpp/tasks/*.h") +FILE(GLOB SINGLETON_MANAGER "src/cpp/SingletonManager/*.h" "src/cpp/SingletonManager/*.cpp") +FILE(GLOB LIB_SRC "src/cpp/lib/*.h" "src/cpp/lib/*.cpp") +FILE(GLOB MODEL "src/cpp/model/*.h" "src/cpp/model/*.cpp") +FILE(GLOB MODEL_TABLE "src/cpp/model/table/*.h" "src/cpp/model/table/*.cpp") +FILE(GLOB MODEL_EMAIL "src/cpp/model/email/*.h" "src/cpp/model/email/*.cpp") +FILE(GLOB MODEL_HEDERA "src/cpp/model/hedera/*.h" "src/cpp/model/hedera/*.cpp") +FILE(GLOB MODEL_GRADIDO "src/cpp/model/gradido/*.h" "src/cpp/model/gradido/*.cpp") +FILE(GLOB CRYPTO "src/cpp/Crypto/*.h" "src/cpp/Crypto/*.cpp") +FILE(GLOB MAIN "src/cpp/*.cpp" "src/cpp/*.c" "src/cpp/*.h") +FILE(GLOB MYSQL "src/cpp/MySQL/*.cpp" "src/cpp/MySQL/*.h" "src/cpp/MySQL/Poco/*.h") +FILE(GLOB PROTO_GRADIDO "${PROTOBINDING_PATH}/gradido/*.cc" "${PROTOBINDING_PATH}/gradido/*.h") +FILE(GLOB PROTO_HEDERA "${PROTOBINDING_PATH}/hedera/*.cc" "${PROTOBINDING_PATH}/hedera/*.h") + +# used only for test project +FILE(GLOB TEST "src/cpp/test/*.cpp" "src/cpp/test/*.h") +FILE(GLOB TEST_CRYPTO "src/cpp/test/crypto/*.cpp" "src/cpp/test/crypto/*.h") +FILE(GLOB TEST_MODEL "src/cpp/test/model/*.cpp" "src/cpp/test/model/*.h") +FILE(GLOB TEST_MODEL_TABLE "src/cpp/test/model/table/*.cpp" "src/cpp/test/model/table/*.h") +FILE(GLOB TEST_CONTROLLER "src/cpp/test/controller/*.cpp" "src/cpp/test/controller/*.h") + +SET(LOCAL_SRCS + ${CONTROLLER} ${TINF} ${MAIN} ${HTTPInterface} + ${JSONInterface} ${CRYPTO} + ${MODEL} ${MODEL_TABLE} ${MODEL_EMAIL} ${MODEL_HEDERA} ${MODEL_GRADIDO} + ${SINGLETON_MANAGER} ${LIB_SRC} ${MYSQL} ${TASKS} + ${PROTO_GRADIDO} ${PROTO_HEDERA} +) +SET(LOCAL_TEST_SRC + ${TEST} ${TEST_CRYPTO} ${TEST_MODEL} ${TEST_MODEL_TABLE} ${TEST_CONTROLLER} +) +aux_source_directory("src/cpp" LOCAL_SRCS) + +if(MSVC) + # src + source_group("controller" FILES ${CONTROLLER}) + source_group("proto\\gradido" FILES ${PROTO_GRADIDO}) + source_group("proto\\hedera" FILES ${PROTO_HEDERA}) + source_group("tinf" FILES ${TINF}) + source_group("Crypto" FILES ${CRYPTO}) + source_group("tasks" FILES ${TASKS}) + source_group("model\\table" FILES ${MODEL_TABLE}) + source_group("model\\email" FILES ${MODEL_EMAIL}) + source_group("model\\hedera" FILES ${MODEL_HEDERA}) + source_group("model\\gradido" FILES ${MODEL_GRADIDO}) + source_group("model" FILES ${MODEL}) + source_group("mysql" FILES ${MYSQL}) + source_group("SingletonManager" FILES ${SINGLETON_MANAGER}) + source_group("lib" FILES ${LIB_SRC}) + source_group("HTTP-Interface" FILES ${HTTPInterface}) + source_group("Json-Interface" FILES ${JSONInterface}) + source_group("Test\\crypto" FILES ${TEST_CRYPTO}) + source_group("Test\\model\\table" FILES ${TEST_MODEL_TABLE}) + source_group("Test\\model" FILES ${TEST_MODEL}) + source_group("Test\\controller" FILES ${TEST_CONTROLLER}) + source_group("Test" FILES ${TEST}) +endif() + +add_executable(Gradido_LoginServer ${LOCAL_SRCS}) + +############################## find mariadb ################################### +find_library(MYSQL_LIBRARIES mariadb PATHS "/usr/local/lib/mariadb" REQUIRED) +############################## config and add poco ################################### +set(BUILD_LIB_PATH "(/usr/local/lib") + +IF(CMAKE_BUILD_TYPE MATCHES Debug) + find_library(POCO_FOUNDATION_LIB PocoFoundationd PATHS ${BUILD_LIB_PATH} REQUIRED) + find_library(POCO_UTIL_LIB PocoUtild PATHS ${BUILD_LIB_PATH} REQUIRED) + find_library(POCO_NET_SSL_LIB PocoNetSSLd PATHS ${BUILD_LIB_PATH} REQUIRED) + find_library(POCO_DATA_LIB PocoDatad PATHS ${BUILD_LIB_PATH} REQUIRED) + find_library(POCO_JSON_LIB PocoJSONd PATHS ${BUILD_LIB_PATH} REQUIRED) + find_library(POCO_NET_LIB PocoNetd PATHS ${BUILD_LIB_PATH} REQUIRED) + message("use Poco Debug libs") +ELSE() + find_library(POCO_FOUNDATION_LIB PocoFoundation PATHS ${BUILD_LIB_PATH} REQUIRED) + find_library(POCO_UTIL_LIB PocoUtil PATHS ${BUILD_LIB_PATH} REQUIRED) + find_library(POCO_NET_SSL_LIB PocoNetSSL PATHS ${BUILD_LIB_PATH} REQUIRED) + find_library(POCO_DATA_LIB PocoData PATHS ${BUILD_LIB_PATH} REQUIRED) + find_library(POCO_JSON_LIB PocoJSON PATHS ${BUILD_LIB_PATH} REQUIRED) + find_library(POCO_NET_LIB PocoNet PATHS ${BUILD_LIB_PATH} REQUIRED) + message("use Poco Release libs") +ENDIF() + +set(POCO_LIBS ${POCO_FOUNDATION_LIB} ${POCO_UTIL_LIB} ${POCO_NET_SSL_LIB} ${POCO_DATA_LIB} ${POCO_JSON_LIB} ${POCO_NET_LIB}) + + +############################## build login server ################################### + +target_link_libraries(Gradido_LoginServer gRPC::grpc++ ${PROTOBUF_LIBS} ${MYSQL_LIBRARIES} ${POCO_LIBS} sodium pthread) + diff --git a/login_server/Dockerfile b/login_server/Dockerfile index e6c2d6b89..bc3cb9807 100644 --- a/login_server/Dockerfile +++ b/login_server/Dockerfile @@ -1,50 +1,45 @@ ######################################################################################################### # Build release ######################################################################################################### -From conanio/gcc9 as release +FROM gradido/login_dependencies:alpine-release-1 as release ENV DOCKER_WORKDIR="/code" - -USER root - - -RUN mkdir -p ${DOCKER_WORKDIR} WORKDIR ${DOCKER_WORKDIR} -COPY . . - -RUN cd dependencies/mariadb-connector-c && \ - mkdir build && \ - cd build && \ - cmake -DWITH_SSL=OFF .. - -RUN chmod +x compile_pot.sh && ./compile_pot.sh - +COPY ./CMakeLists.txt.lib ./CMakeLists.txt +COPY ./src ./src +COPY ./dependencies/cmake-modules ./dependencies/cmake-modules +COPY ./dependencies/spirit-po ./dependencies/spirit-po +COPY ./dependencies/tinf ./dependencies/tinf +COPY ./scripts ./scripts +RUN cd scripts && \ + chmod +x compile_pot.sh && \ + ./compile_pot.sh + RUN mkdir build && \ cd build && \ - conan install .. --build=missing && \ - cmake .. && \ - make -j$(nproc) protoc grpc_cpp_plugin - -RUN chmod +x unix_parse_proto.sh && ./unix_parse_proto.sh + cmake -DCMAKE_BUILD_TYPE=Release .. && \ + make -j$(nproc) Gradido_LoginServer -RUN cd build && \ - cmake .. && \ - make -j$(nproc) Gradido_LoginServer - -CMD ["./code"] ######################################################################################################### # run release ######################################################################################################### #From alpine:latest as login_server -FROM alpine:latest as login_server +FROM alpine:3.13.5 as login_server +USER root WORKDIR "/usr/bin" COPY --from=release /code/build/bin/Gradido_LoginServer /usr/bin/ -COPY --from=release /code/build/lib/libmariadb.so.3 /usr/lib/ + +COPY --from=release /usr/local/lib/mariadb/libmariadb.so.3 /usr/local/lib/ +COPY --from=release /usr/local/lib/libPoco* /usr/local/lib/ +COPY --from=release /usr/lib/libsodium.so.23 /usr/lib/ +COPY --from=release /usr/lib/libstdc++.so.6 /usr/lib/ +COPY --from=release /usr/lib/libgcc_s.so.1 /usr/lib/ + RUN chmod +x /usr/bin/Gradido_LoginServer ENTRYPOINT ["/usr/bin/Gradido_LoginServer"] -CMD Gradido_LoginServer +#CMD Gradido_LoginServer diff --git a/login_server/Dockerfile.alpine-debug b/login_server/Dockerfile.alpine-debug new file mode 100644 index 000000000..948d434d1 --- /dev/null +++ b/login_server/Dockerfile.alpine-debug @@ -0,0 +1,14 @@ +FROM gradido/login_dependencies:alpine-debug-1 as login_server_alpine_debug + +ENV DOCKER_WORKDIR="/code" + + +EXPOSE 1200 +EXPOSE 1201 +WORKDIR ${DOCKER_WORKDIR} + +COPY ./CMakeLists.txt.lib ./CMakeLists.txt +COPY ./scripts ./scripts + +CMD cd scripts; ./build_debug.sh; cd ..; ./build/bin/Gradido_LoginServer + diff --git a/login_server/Dockerfile.debug b/login_server/Dockerfile.debug index f1b235e4e..613c3daf4 100644 --- a/login_server/Dockerfile.debug +++ b/login_server/Dockerfile.debug @@ -1,3 +1,19 @@ +######################################################################################################### +# cmake +######################################################################################################### +FROM gcc:9 as cmake-gcc-9 + +ENV DOCKER_WORKDIR="/code" +RUN mkdir -p ${DOCKER_WORKDIR} +WORKDIR ${DOCKER_WORKDIR} + +USER root + +RUN git clone https://github.com/Kitware/CMake.git --branch=v3.19.8 \ + && cd CMake \ + && ./bootstrap \ + && make -j$(nproc) \ + && make install ######################################################################################################### # Build debug @@ -5,14 +21,15 @@ From gradido/login_dependencies:stage2 as debug ENV DOCKER_WORKDIR="/code" - + USER root WORKDIR ${DOCKER_WORKDIR} -COPY . . +COPY . . -RUN chmod +x unix_parse_proto.sh -RUN chmod +x compile_pot.sh +RUN cd scripts \ + && chmod +x ./prepare_build.sh \ + && ./prepare_build.sh RUN ./compile_pot.sh RUN ./unix_parse_proto.sh @@ -30,13 +47,14 @@ ENV DOCKER_WORKDIR="/code" # apt-get autoremove && \ # apt-get clean && \ # rm -rf /var/lib/apt/lists/* - + VOLUME /var/log/grd_login VOLUME /code/src EXPOSE 1200 EXPOSE 1201 WORKDIR ${DOCKER_WORKDIR} -RUN chmod +x ./Dockerfiles/build_and_run.sh +RUN chmod +x ./scripts/build_and_run.sh CMD ./Dockerfiles/build_and_run.sh; ./build_vol/bin/Gradido_LoginServer + diff --git a/login_server/Dockerfiles/Dockerfile.dependencies b/login_server/Dockerfiles/Dockerfile.dependencies index 0194c7c82..79a573ea2 100644 --- a/login_server/Dockerfiles/Dockerfile.dependencies +++ b/login_server/Dockerfiles/Dockerfile.dependencies @@ -1,56 +1,93 @@ ######################################################################################################### -# debug build preparation +# gcc 9 with libssl ######################################################################################################### -From conanio/gcc9 as build_debug_preparation +FROM gcc:9 as gcc_9_libssl USER root +RUN apt-get update && \ + apt-get install -y --no-install-recommends libssl-dev libboost-dev && \ + apt-get autoclean && \ + apt-get autoremove && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* + + +######################################################################################################### +# gcc 9 cmake +######################################################################################################### +FROM gcc_9_libssl as gcc_9_cmake + +USER root ENV DOCKER_WORKDIR="/code" - + RUN mkdir -p ${DOCKER_WORKDIR} WORKDIR ${DOCKER_WORKDIR} + +RUN git clone https://github.com/Kitware/CMake.git --branch=v3.19.8 && \ + cd CMake && \ + ./bootstrap --parallel=$(nproc) && \ + make -j$(nproc) && \ + make install && \ + cd .. && \ + rm -rf CMake + +######################################################################################################### +# debug build preparation +######################################################################################################### +FROM gcc_9_libssl as build_debug_dependencies + +USER root +ENV DOCKER_WORKDIR="/code" + +RUN mkdir -p ${DOCKER_WORKDIR} +WORKDIR ${DOCKER_WORKDIR} + +# copy CMake from last stage +COPY --from=gcc_9_cmake /usr/local/bin/cmake /usr/local/bin/cmake +COPY --from=gcc_9_cmake /usr/local/share/cmake-3.19/Modules /usr/local/share/cmake-3.19/Modules +COPY --from=gcc_9_cmake /usr/local/share/cmake-3.19/Templates /usr/local/share/cmake-3.19/Templates + COPY ./dependencies ./dependencies -COPY ./conanfile.txt ./conanfile.txt - - -RUN cd dependencies/mariadb-connector-c && \ - mkdir build && \ - cd build && \ - cmake -DCMAKE_BUILD_TYPE=Debug -DWITH_SSL=OFF .. - - -RUN mkdir build && \ - cd build && \ - conan install .. --build=missing -s build_type=Debug - - -######################################################################################################### -# debug build proto and grpc -######################################################################################################### -From build_debug_preparation as proto_grpc - -ENV DOCKER_WORKDIR="/code" -WORKDIR ${DOCKER_WORKDIR} - +COPY ./scripts ./scripts COPY ./CMakeLists.txt . -RUN cd build && \ - cmake -DCMAKE_BUILD_TYPE=Debug .. && \ - make -j${CPU_COUNT} protoc grpc_cpp_plugin +COPY ./src ./src + + +RUN cd scripts && \ + chmod +x ./prepare_build.sh && \ + ./prepare_build.sh && \ + mkdir ../build && \ + chmod +x ./build_debug.sh && \ + ./build_debug.sh + +# remove unneccessary stuff +RUN rm -rf build/bin/Gradido_LoginServer ######################################################################################################### -# parse proto and gettext +# debug build ######################################################################################################### -From proto_grpc as proto_parse +FROM gcc_9_libssl as build_debug +USER root ENV DOCKER_WORKDIR="/code" + +RUN mkdir -p ${DOCKER_WORKDIR} WORKDIR ${DOCKER_WORKDIR} -RUN mkdir src && \ - cd src && \ - mkdir cpp -COPY ./src/proto ./src/proto -COPY ./unix_parse_proto.sh . -RUN chmod +x unix_parse_proto.sh && \ - ./unix_parse_proto.sh - +# copy CMake from last stage +COPY --from=build_debug_dependencies /usr/local/bin/cmake /usr/local/bin/cmake +COPY --from=build_debug_dependencies /usr/local/share/cmake-3.19 /usr/local/share/cmake-3.19 + +COPY --from=build_debug_dependencies /code/build/bin /code/build/bin +COPY --from=build_debug_dependencies /code/build/lib /code/build/lib + +# grpc +COPY --from=build_debug_dependencies /code/build/dependencies/grpc/lib /build/dependencies/grpc/lib +COPY --from=build_debug_dependencies /code/build/dependencies/grpc/third_party/protobuf/lib /build/dependencies/grpc/third_party/protobuf/lib +COPY --from=build_debug_dependencies /code/build/dependencies/grpc/third_party/re2/lib /build/dependencies/grpc/third_party/re2/lib +COPY --from=build_debug_dependencies /code/build/dependencies/grpc/third_party/zlib/lib /build/dependencies/grpc/third_party/zlib/lib +COPY --from=build_debug_dependencies /code/build/dependencies/grpc/third_party/cares/cares/lib /build/dependencies/grpc/third_party/cares/cares/lib +COPY --from=build_debug_dependencies /code/build/dependencies/mariadb-connector-c/libmariadb/lib /build/dependencies/mariadb-connector-c/libmariadb/lib + diff --git a/login_server/Dockerfiles/Dockerfile.dependencies-alpine b/login_server/Dockerfiles/Dockerfile.dependencies-alpine new file mode 100644 index 000000000..a2cc3225c --- /dev/null +++ b/login_server/Dockerfiles/Dockerfile.dependencies-alpine @@ -0,0 +1,79 @@ + +##### BUILD-ENV ##### +FROM alpine:3.13.5 as alpine-build + +RUN apk add --update --no-cache icu-dev +RUN apk add --no-cache git openssl-dev make gcc musl-dev g++ linux-headers libintl gettext-dev boost-dev libsodium-dev + + +##### CMAKE ##### +FROM alpine-build as alpine-gxx-cmake + +RUN git clone https://github.com/Kitware/CMake.git --branch=v3.19.8 && \ + cd CMake && \ + ./bootstrap --parallel=$(nproc) && \ + make -j$(nproc) && \ + make install + +######### BUILD grpc ############## +FROM alpine-gxx-cmake as alpine-gxx-grpc + +ARG BUILD_TYPE=Debug + +RUN git clone https://github.com/grpc/grpc.git --branch=v1.37.0 --recursive -j4 && \ + cd grpc && \ + mkdir build && cd build && \ + cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE .. && make -j$(nproc) && \ + make install + +# abseil don't install themself correctly +RUN cp -r grpc/third_party/abseil-cpp/absl /usr/local/include/ + +# protobuf libs missing after make install +RUN cp grpc/build/third_party/protobuf/*.a /usr/local/lib/ + +######### BUILD poco ############## +FROM alpine-gxx-cmake as alpine-gxx-poco + +ARG BUILD_TYPE=Debug + +RUN git clone https://github.com/pocoproject/poco.git --recursive && \ + cd poco && \ + git checkout poco-1.9.4-release && \ + mkdir cmake-build && cd cmake-build && \ + cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE .. && make -j$(nproc) && \ + make install + +######### BUILD mariadb ########### +FROM alpine-gxx-cmake as alpine-gxx-mariadb-connector + +ARG BUILD_TYPE=Debug + +RUN git clone https://github.com/mariadb-corporation/mariadb-connector-c.git && \ + cd mariadb-connector-c && \ + git checkout 159540f && \ + mkdir build && cd build && \ + cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE .. && make -j$(nproc) && \ + make install + +######################################################################################################### +# builded libs and binaries +######################################################################################################### +FROM alpine-build as alpine-libs + +# copy CMake from cmake stage +COPY --from=alpine-gxx-cmake /usr/local/bin/cmake /usr/local/bin/cmake +COPY --from=alpine-gxx-cmake /usr/local/share/cmake-3.19/Modules /usr/local/share/cmake-3.19/Modules +COPY --from=alpine-gxx-cmake /usr/local/share/cmake-3.19/Templates /usr/local/share/cmake-3.19/Templates + +# copy from grpc +COPY --from=alpine-gxx-grpc /usr/local /usr/local + + +# COPY from poco +COPY --from=alpine-gxx-poco /usr/local /usr/local + +# COPY from mariadb +COPY --from=alpine-gxx-mariadb-connector /usr/local /usr/local + + diff --git a/login_server/Dockerfiles/build_and_run.sh b/login_server/Dockerfiles/build_and_run.sh deleted file mode 100644 index fa3e95859..000000000 --- a/login_server/Dockerfiles/build_and_run.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/bash - -cp build/conan* build_vol/ - -cd build_vol -cmake -DCMAKE_BUILD_TYPE=Debug .. -make -j${CPU_COUNT} protoc grpc_cpp_plugin - -cd .. -if [ ! -f "./src/cpp/proto/gradido/TransactionBody.pb.h" ] ; then - chmod +x unix_parse_proto.sh - echo "parse proto files" - ./unix_parse_proto.sh -fi -chmod +x compile_pot.sh -./compile_pot.sh - -cd build_vol -cmake .. -make -j$(nproc) Gradido_LoginServer -#echo "building done" -chmod +x ./bin/Gradido_LoginServer -#./bin/Gradido_LoginServer - - -: ' -cd build -conan install .. --build=missing -s build_type=Debug -cmake -DCMAKE_BUILD_TYPE=Debug .. -make -j${CPU_COUNT} protoc grpc_cpp_plugin -cd .. - -if [ ! -d "./src/cpp/proto/hedera" ] ; then -#if [ ! -f "./src/cpp/proto/gradido/TransactionBody.pb.h"] ; then - chmod +x unix_parse_proto.sh - ./unix_parse_proto.sh -fi -chmod +x compile_pot.sh - -./compile_pot.sh - -cd build -cmake -DCMAKE_BUILD_TYPE=Debug .. -make -j$(nproc) Gradido_LoginServer -#echo "building done" -chmod +x ./bin/Gradido_LoginServer -#./bin/Gradido_LoginServer -' diff --git a/login_server/README b/login_server/README index 85f15134c..400aee30a 100644 --- a/login_server/README +++ b/login_server/README @@ -1,3 +1,5 @@ +sudo apt install libsodium-dev + # get dependencies git submodule update --init --recursive diff --git a/login_server/compile_pot.sh b/login_server/compile_pot.sh deleted file mode 100755 index df6f5e435..000000000 --- a/login_server/compile_pot.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -xgettext -D src/cpp -p src/LOCALE -o messages.pot --from-code=UTF-8 --files-from=files_to_translate.txt diff --git a/login_server/conanfile.txt b/login_server/conanfile.txt index ae0fcd97b..5d3dd4ebb 100644 --- a/login_server/conanfile.txt +++ b/login_server/conanfile.txt @@ -2,12 +2,7 @@ Poco/1.9.4@pocoproject/stable libsodium/1.0.18@bincrafters/stable boost/1.71.0@conan/stable -gtest/1.8.1@bincrafters/stable + [generators] cmake - -[options] -Poco:enable_data_sqlite=False -Poco:enable_mongodb=False -Poco:enable_redis=False diff --git a/login_server/dependencies/libsodium b/login_server/dependencies/libsodium new file mode 160000 index 000000000..8aedf4733 --- /dev/null +++ b/login_server/dependencies/libsodium @@ -0,0 +1 @@ +Subproject commit 8aedf4733884a25434b5c17c79c7e7dee27e6eb0 diff --git a/login_server/dependencies/poco b/login_server/dependencies/poco index 3fc3e5f5b..b95393dcc 160000 --- a/login_server/dependencies/poco +++ b/login_server/dependencies/poco @@ -1 +1 @@ -Subproject commit 3fc3e5f5b8462f7666952b43381383a79b8b5d92 +Subproject commit b95393dcc3640807838e8323b4e600e54d2e8116 diff --git a/login_server/parse_proto.sh b/login_server/parse_proto.sh deleted file mode 100644 index 1ec7c106e..000000000 --- a/login_server/parse_proto.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash -if [ ! -d "./src/cpp/proto" ] ; then - mkdir ./src/cpp/proto -fi -if [ ! -d "./src/cpp/proto/gradido" ] ; then - mkdir ./src/cpp/proto/gradido -fi - -./protoc --cpp_out=./src/cpp/proto --proto_path=./src/proto ./src/proto/gradido/*.proto - -if [ ! -d "./src/cpp/proto/hedera" ] ; then - mkdir ./src/cpp/proto/hedera -fi - - -./protoc --plugin=protoc-gen-grpc=./grpc_cpp_plugin.exe --cpp_out=./src/cpp/proto/hedera --grpc_out=./src/cpp/proto/hedera --proto_path=./src/proto/hedera/hedera-protobuf/src/main/proto ./src/proto/hedera/hedera-protobuf/src/main/proto/*.proto diff --git a/login_server/scripts/build_debug.sh b/login_server/scripts/build_debug.sh new file mode 100755 index 000000000..84356018e --- /dev/null +++ b/login_server/scripts/build_debug.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +cd ../scripts + +chmod +x compile_pot.sh +./compile_pot.sh + +cd ../build +cmake -DCMAKE_BUILD_TYPE=Debug .. +make -j$(nproc) Gradido_LoginServer + +chmod +x ./bin/Gradido_LoginServer diff --git a/login_server/scripts/compile_pot.sh b/login_server/scripts/compile_pot.sh new file mode 100755 index 000000000..1d817be55 --- /dev/null +++ b/login_server/scripts/compile_pot.sh @@ -0,0 +1,2 @@ +#!/bin/sh +xgettext -D ../src/cpp -p ../src/LOCALE -o messages.pot --from-code=UTF-8 --files-from=files_to_translate.txt diff --git a/login_server/files_to_translate.txt b/login_server/scripts/files_to_translate.txt similarity index 100% rename from login_server/files_to_translate.txt rename to login_server/scripts/files_to_translate.txt diff --git a/login_server/scripts/prepare_build.sh b/login_server/scripts/prepare_build.sh new file mode 100755 index 000000000..8706e4139 --- /dev/null +++ b/login_server/scripts/prepare_build.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +# generate version for mariadb connector + +cd ../dependencies/mariadb-connector-c +if [ -d "./build" ] ; then + rm -rf ./build +fi +mkdir build +cd build +cmake -DWITH_SSL=OFF .. +cd ../../ + + + diff --git a/login_server/scripts/unix_parse_proto.sh b/login_server/scripts/unix_parse_proto.sh new file mode 100755 index 000000000..5f8a86023 --- /dev/null +++ b/login_server/scripts/unix_parse_proto.sh @@ -0,0 +1,19 @@ +#!/bin/sh +if [ ! -d "../src/cpp/proto" ] ; then + mkdir ../src/cpp/proto +fi +if [ ! -d "../src/cpp/proto/gradido" ] ; then + mkdir ../src/cpp/proto/gradido +fi +PROTOC_PATH=../build/bin +CPP_PLUGIN_PATH=../build/bin +$PROTOC_PATH/protoc --cpp_out=../src/cpp/proto --proto_path=../src/proto ../src/proto/gradido/*.proto + +if [ ! -d "../src/cpp/proto/hedera" ] ; then + mkdir ../src/cpp/proto/hedera +fi + +GOOGLE_PROTOBUF_INCLUDES=../dependencies/grpc/third_party/protobuf/src +$PROTOC_PATH/protoc --plugin=protoc-gen-grpc=$CPP_PLUGIN_PATH/grpc_cpp_plugin --cpp_out=../src/cpp/proto/hedera --grpc_out=../src/cpp/proto/hedera --proto_path=$GOOGLE_PROTOBUF_INCLUDES --proto_path=../src/proto/hedera/hedera-protobuf/src/main/proto ../src/proto/hedera/hedera-protobuf/src/main/proto/*.proto + + diff --git a/login_server/scripts/windows_parse_proto.sh b/login_server/scripts/windows_parse_proto.sh new file mode 100644 index 000000000..b01ae74d7 --- /dev/null +++ b/login_server/scripts/windows_parse_proto.sh @@ -0,0 +1,19 @@ +#!/bin/bash +if [ ! -d "../src/cpp/proto" ] ; then + mkdir ../src/cpp/proto +fi +if [ ! -d "../src/cpp/proto/gradido" ] ; then + mkdir ../src/cpp/proto/gradido +fi +PROTOC_PATH=build/bin +CPP_PLUGIN_PATH=build/bin +$PROTOC_PATH/protoc.exe --cpp_out=../src/cpp/proto --proto_path=../src/proto ../src/proto/gradido/*.proto + +if [ ! -d "./src/cpp/proto/hedera" ] ; then + mkdir ./src/cpp/proto/hedera +fi + +GOOGLE_PROTOBUF_INCLUDES=../dependencies/grpc/third_party/protobuf/src +$PROTOC_PATH/protoc.exe --plugin=protoc-gen-grpc=$CPP_PLUGIN_PATH/grpc_cpp_plugin.exe --cpp_out=../src/cpp/proto/hedera --grpc_out=../src/cpp/proto/hedera --proto_path=$GOOGLE_PROTOBUF_INCLUDES --proto_path=../src/proto/hedera/hedera-protobuf/src/main/proto ../src/proto/hedera/hedera-protobuf/src/main/proto/*.proto + + diff --git a/login_server/src/cpp/controller/HederaId.h b/login_server/src/cpp/controller/HederaId.h index 5ec8dffdf..fb43cd82b 100644 --- a/login_server/src/cpp/controller/HederaId.h +++ b/login_server/src/cpp/controller/HederaId.h @@ -8,7 +8,7 @@ #include "TableControllerBase.h" -#include "../proto/hedera/BasicTypes.pb.h" +#include "proto/hedera/BasicTypes.pb.h" namespace controller { class HederaAccount; @@ -43,4 +43,4 @@ namespace controller { }; } -#endif //GRADIDO_LOGIN_SERVER_CONTROLLER_HEDERA_ID_INCLUDE \ No newline at end of file +#endif //GRADIDO_LOGIN_SERVER_CONTROLLER_HEDERA_ID_INCLUDE diff --git a/login_server/src/cpp/lib/DRHashList.cpp b/login_server/src/cpp/lib/DRHashList.cpp index b912f742c..62429b094 100644 --- a/login_server/src/cpp/lib/DRHashList.cpp +++ b/login_server/src/cpp/lib/DRHashList.cpp @@ -6,6 +6,7 @@ #include #include +#include using namespace std; diff --git a/login_server/src/cpp/lib/DataTypeConverter.h b/login_server/src/cpp/lib/DataTypeConverter.h index b3fe436a5..d61944081 100644 --- a/login_server/src/cpp/lib/DataTypeConverter.h +++ b/login_server/src/cpp/lib/DataTypeConverter.h @@ -11,9 +11,9 @@ #include "Poco/JSON/Array.h" #include "../SingletonManager/LanguageManager.h" -#include "../proto/hedera/Timestamp.pb.h" -#include "../proto/hedera/Duration.pb.h" -#include "../proto/gradido/BasicTypes.pb.h" +#include "proto/hedera/Timestamp.pb.h" +#include "proto/hedera/Duration.pb.h" +#include "proto/gradido/BasicTypes.pb.h" #include "sodium.h" @@ -37,13 +37,13 @@ namespace DataTypeConverter { MemoryBin* hexToBin(const std::string& hexString); MemoryBin* base64ToBin(const std::string& base64String, int variant = sodium_base64_VARIANT_ORIGINAL); - + std::string binToBase64(const unsigned char* data, size_t size, int variant = sodium_base64_VARIANT_ORIGINAL); inline std::string binToBase64(const MemoryBin* data, int variant = sodium_base64_VARIANT_ORIGINAL) { return binToBase64(data->data(), data->size(), variant); } inline std::string binToBase64(const std::string& proto_bin, int variant = sodium_base64_VARIANT_ORIGINAL) { return binToBase64((const unsigned char*)proto_bin.data(), proto_bin.size(), variant); } - + std::string binToHex(const unsigned char* data, size_t size); std::string binToHex(const Poco::Nullable& nullableBin); inline std::string binToHex(const MemoryBin* data) { return binToHex(data->data(), data->size());} diff --git a/login_server/src/cpp/model/email/Email.cpp b/login_server/src/cpp/model/email/Email.cpp index 185f13f74..36c411413 100644 --- a/login_server/src/cpp/model/email/Email.cpp +++ b/login_server/src/cpp/model/email/Email.cpp @@ -5,7 +5,7 @@ #include "../gradido/TransactionBase.h" -#include "../lib/DataTypeConverter.h" +#include "../../lib/DataTypeConverter.h" namespace model { @@ -169,7 +169,7 @@ Gradido Login-Server\n\ std::string content_string; switch (mType) { - case EMAIL_DEFAULT: + case EMAIL_DEFAULT: mailMessage->addRecipient(adminRecipient); mailMessage->setSubject(langCatalog->gettext_str("Default Email Subject")); mailMessage->addContent(new Poco::Net::StringPartSource(langCatalog->gettext_str("Empty Email Content"), mt.toString())); @@ -180,7 +180,7 @@ Gradido Login-Server\n\ mailMessage->setSubject(langCatalog->gettext_str("Error from Gradido Login Server")); mailMessage->addContent(new Poco::Net::StringPartSource(mErrorHtml, mt.toString())); break; - + case EMAIL_USER_VERIFICATION_CODE: case EMAIL_USER_VERIFICATION_CODE_RESEND: case EMAIL_USER_VERIFICATION_CODE_RESEND_AFTER_LONG_TIME: @@ -284,7 +284,7 @@ Gradido Login-Server\n\ std::string Email::replaceUserNamesAndLink( const char* src, const std::string& first_name, - const std::string& last_name, + const std::string& last_name, const std::string& link, Poco::UInt64 code ) { @@ -300,7 +300,7 @@ Gradido Login-Server\n\ else { addError(new Error(functionName, "no first_name placeholder found")); } - + findPos = result.find("[last_name]", findCursor); if (findPos != result.npos) { findCursor = findPos + last_name.size(); @@ -438,4 +438,4 @@ Gradido Login-Server\n\ return EMAIL_ERROR; } } -} \ No newline at end of file +} diff --git a/login_server/src/cpp/model/gradido/GroupMemberUpdate.h b/login_server/src/cpp/model/gradido/GroupMemberUpdate.h index 7bd146cfd..6a58000b9 100644 --- a/login_server/src/cpp/model/gradido/GroupMemberUpdate.h +++ b/login_server/src/cpp/model/gradido/GroupMemberUpdate.h @@ -2,7 +2,7 @@ #define __GRADIDO_LOGIN_SERVER_MODEL_GRADIDO_GROUP_MEMBER_UPDATE_H #include "TransactionBase.h" -#include "../../proto/gradido/GroupMemberUpdate.pb.h" +#include "proto/gradido/GroupMemberUpdate.pb.h" namespace model { @@ -26,4 +26,4 @@ namespace model { } } -#endif \ No newline at end of file +#endif diff --git a/login_server/src/cpp/model/gradido/Transaction.cpp b/login_server/src/cpp/model/gradido/Transaction.cpp index dd1655885..0301d4440 100644 --- a/login_server/src/cpp/model/gradido/Transaction.cpp +++ b/login_server/src/cpp/model/gradido/Transaction.cpp @@ -9,9 +9,9 @@ #include "../../controller/HederaAccount.h" #include "../../controller/HederaRequest.h" -#include "../lib/DataTypeConverter.h" -#include "../lib/Profiler.h" -#include "../lib/JsonRequest.h" +#include "../../lib/DataTypeConverter.h" +#include "../../lib/Profiler.h" +#include "../../lib/JsonRequest.h" #include "../hedera/Transaction.h" #include "../hedera/TransactionId.h" @@ -30,7 +30,7 @@ namespace model { Transaction::Transaction(Poco::AutoPtr body) : mTransactionBody(body), mBodyBytesHash(0) { - + auto body_bytes = mTransactionBody->getBodyBytes(); mBodyBytesHash = DRMakeStringHash(body_bytes.data(), body_bytes.size()); mProtoTransaction.set_body_bytes(body_bytes); @@ -50,7 +50,7 @@ namespace model { auto body_bytes = mTransactionBody->getBodyBytes(); mBodyBytesHash = DRMakeStringHash(body_bytes.data(), body_bytes.size()); } - + Transaction::~Transaction() { Poco::ScopedLock _lock(mWorkMutex); @@ -76,7 +76,7 @@ namespace model { } auto body = TransactionBody::create("", user, proto::gradido::GroupMemberUpdate_MemberUpdateType_ADD_USER, group_model->getAlias()); - + Poco::AutoPtr result = new Transaction(body); auto model = result->getModel(); model->setHederaId(topic_id->getModel()->getID()); @@ -87,7 +87,7 @@ namespace model { Poco::AutoPtr Transaction::createCreation( Poco::AutoPtr receiver, - Poco::UInt32 amount, + Poco::UInt32 amount, Poco::DateTime targetDate, const std::string& memo, BlockchainType blockchainType @@ -101,7 +101,7 @@ namespace model { } auto network_type = ServerConfig::g_HederaNetworkType; auto receiver_model = receiver->getModel(); - + auto body = TransactionBody::create(memo, receiver, amount, targetDate, blockchainType); Poco::AutoPtr result = new Transaction(body); @@ -118,7 +118,7 @@ namespace model { } model->setHederaId(topic_id->getModel()->getID()); } - + result->insertPendingTaskIntoDB(receiver, model::table::TASK_TYPE_CREATION); PendingTasksManager::getInstance()->addTask(result); return result; @@ -129,7 +129,7 @@ namespace model { const MemoryBin* receiverPubkey, Poco::AutoPtr receiverGroup, Poco::UInt32 amount, - const std::string& memo, + const std::string& memo, BlockchainType blockchainType, bool inbound/* = true*/ ) @@ -143,25 +143,25 @@ namespace model { if (sender.isNull() || !sender->getModel() || !receiverPubkey || !amount) { return transaction; } - + auto sender_model = sender->getModel(); - - + + if (blockchainType == BLOCKCHAIN_MYSQL) { transaction_body = TransactionBody::create(memo, sender, receiverPubkey, amount, blockchainType); transaction = new Transaction(transaction_body); } - else if (blockchainType == BLOCKCHAIN_HEDERA) + else if (blockchainType == BLOCKCHAIN_HEDERA) { auto network_type = ServerConfig::g_HederaNetworkType; - - + + // LOCAL Transfer if (receiverGroup.isNull() || sender_model->getGroupId() == receiverGroup->getModel()->getID()) { topic_id = controller::HederaId::find(sender_model->getGroupId(), network_type); - if (topic_id.isNull()) + if (topic_id.isNull()) { em->addError(new ParamError(function_name, "could'n find topic for group: ", sender_model->getGroupId())); em->addError(new ParamError(function_name, "network type: ", network_type)); @@ -220,7 +220,7 @@ namespace model { transaction_model->setHederaId(topic_id->getModel()->getID()); } - + transaction->setParam("blockchain_type", (int)blockchainType); transaction->insertPendingTaskIntoDB(sender, model::table::TASK_TYPE_TRANSFER); PendingTasksManager::getInstance()->addTask(transaction); @@ -249,10 +249,10 @@ namespace model { } Poco::AutoPtr Transaction::createTransfer( - const MemoryBin* senderPubkey, - Poco::AutoPtr receiver, - std::string senderGroupAlias, - Poco::UInt32 amount, + const MemoryBin* senderPubkey, + Poco::AutoPtr receiver, + std::string senderGroupAlias, + Poco::UInt32 amount, const std::string& memo, BlockchainType blockchainType ) @@ -268,7 +268,7 @@ namespace model { //std::vector> bodys; auto receiver_model = receiver->getModel(); auto network_type = ServerConfig::g_HederaNetworkType; - + auto sender_groups = controller::Group::load(senderGroupAlias); if (!sender_groups.size()) { em->addError(new ParamError(function_name, "couldn't find group", senderGroupAlias)); @@ -286,10 +286,10 @@ namespace model { Poco::Timestamp pairedTransactionId; // create only inbound transaction, and outbound before sending to hedera //for (int i = 0; i < 1; i++) { - + //transaction_group = receiverGroup; //topic_group = sender_group; - + if (transaction_group.isNull()) { em->addError(new Error(function_name, "transaction group is zero, inbound")); em->sendErrorsAsEmail(); @@ -314,7 +314,7 @@ namespace model { return result; } - + Poco::AutoPtr Transaction::load(model::table::PendingTask* dbModel) { @@ -335,10 +335,10 @@ namespace model { if (!finished) { transaction->ifEnoughSignsProceed(nullptr); } - + return transaction; } - + bool Transaction::insertPendingTaskIntoDB(Poco::AutoPtr user, model::table::TaskType type) { static const char* function_name = "Transaction::insertPendingTaskIntoDB"; @@ -355,7 +355,7 @@ namespace model { model->setTaskType(type); model->setRequest(mProtoTransaction.SerializeAsString()); if (!model->insertIntoDB(true)) { - + return false; } return true; @@ -365,8 +365,8 @@ namespace model { { static const char function_name[] = "Transaction::addSign"; Poco::ScopedLock _lock(mWorkMutex); - - if (user.isNull() || !user->getModel()) + + if (user.isNull() || !user->getModel()) { addError(new Error(function_name, "error user is invalid")); return false; @@ -381,9 +381,9 @@ namespace model { } auto hash = DRMakeStringHash(bodyBytes.data(), bodyBytes.size()); - + auto sigMap = mProtoTransaction.mutable_sig_map(); - if (sigMap->sigpair_size() > 0 && mBodyBytesHash && mBodyBytesHash != hash) + if (sigMap->sigpair_size() > 0 && mBodyBytesHash && mBodyBytesHash != hash) { addError(new Error(function_name, "body bytes hash has changed and signature(s) exist already!")); return false; @@ -413,33 +413,33 @@ namespace model { auto gradido_key_pair = user->getGradidoKeyPair(); KeyPairEd25519* recovered_gradido_key_pair = nullptr; - if (!gradido_key_pair || !gradido_key_pair->hasPrivateKey()) + if (!gradido_key_pair || !gradido_key_pair->hasPrivateKey()) { - if (!user->tryLoadPassphraseUserBackup(&recovered_gradido_key_pair)) + if (!user->tryLoadPassphraseUserBackup(&recovered_gradido_key_pair)) { - if (user->setGradidoKeyPair(recovered_gradido_key_pair)) + if (user->setGradidoKeyPair(recovered_gradido_key_pair)) { user->getModel()->updatePrivkey(); } - } - else + } + else { addError(new Error(function_name, "user cannot decrypt private key")); return false; } } - + MemoryBin* sign = nullptr; - if (gradido_key_pair) + if (gradido_key_pair) { sign = gradido_key_pair->sign(bodyBytes); } - else if (recovered_gradido_key_pair) + else if (recovered_gradido_key_pair) { sign = recovered_gradido_key_pair->sign(bodyBytes); } - if (!sign) + if (!sign) { ErrorManager::getInstance()->sendErrorsAsEmail(); addError(new Error(function_name, "error by calculate signature")); @@ -457,7 +457,7 @@ namespace model { mm->releaseMemory(sign); updateRequestInDB(); - + return ifEnoughSignsProceed(user); } @@ -509,7 +509,7 @@ namespace model { // check if all signatures belong to current body bytes auto body_bytes = mProtoTransaction.body_bytes(); - for (auto it = sig_map.sigpair().begin(); it != sig_map.sigpair().end(); it++) + for (auto it = sig_map.sigpair().begin(); it != sig_map.sigpair().end(); it++) { KeyPairEd25519 key_pair((const unsigned char*)it->pubkey().data()); if (!key_pair.verify(body_bytes, it->ed25519())) { @@ -537,7 +537,7 @@ namespace model { addError(new ParamError(function_name, "user public key has invalid size: ", pubkey_size)); return false; } - for (auto it = sig_pairs.begin(); it != sig_pairs.end(); it++) + for (auto it = sig_pairs.begin(); it != sig_pairs.end(); it++) { if (it->pubkey().size() != KeyPairEd25519::getPublicKeySize()) { addError(new ParamError(function_name, "signed public key has invalid length: ", it->pubkey().size())); @@ -589,7 +589,7 @@ namespace model { static const char* function_name = "Transaction::runSendTransaction"; auto result = validate(); if (TRANSACTION_VALID_OK != result) { - if ( TRANSACTION_VALID_MISSING_SIGN == result || TRANSACTION_VALID_CODE_ERROR == result + if ( TRANSACTION_VALID_MISSING_SIGN == result || TRANSACTION_VALID_CODE_ERROR == result || TRANSACTION_VALID_MISSING_PARAM == result || TRANSACTION_VALID_INVALID_PUBKEY == result || TRANSACTION_VALID_INVALID_SIGN == result) { addError(new ParamError(function_name, "code error", TransactionValidationToString(result))); @@ -599,20 +599,20 @@ namespace model { addError(new ParamError(function_name, "validation return: ", TransactionValidationToString(result))); //sendErrorsAsEmail(); } - else + else { - + std::string error_name; std::string error_description; auto lm = LanguageManager::getInstance(); auto user_model = getUser()->getModel(); auto t = lm->getFreeCatalog(lm->languageFromString(user_model->getLanguageKey())); switch (result) { - case TRANSACTION_VALID_FORBIDDEN_SIGN: + case TRANSACTION_VALID_FORBIDDEN_SIGN: error_name = t->gettext_str("Signature Error"); error_description = t->gettext_str("Invalid signature!"); break; - case TRANSACTION_VALID_INVALID_TARGET_DATE: + case TRANSACTION_VALID_INVALID_TARGET_DATE: error_name = t->gettext_str("Creation Error"); error_description = t->gettext_str("Invalid target date! No future and only 3 month in the past."); break; @@ -628,7 +628,7 @@ namespace model { error_name = t->gettext_str("Group Error"); error_description = t->gettext_str("Invalid Group Alias! I didn't know group, please check alias and try again."); break; - default: + default: error_name = t->gettext_str("Unknown Error"); error_description = t->gettext_str("Admin gets an E-Mail"); addError(new ParamError(function_name, "unknown error", TransactionValidationToString(result))); @@ -738,7 +738,7 @@ namespace model { auto hedera_precheck_code_string = hedera_transaction_response->getPrecheckCodeString(); auto precheck_code = hedera_transaction_response->getPrecheckCode(); auto cost = hedera_transaction_response->getCost(); - + // for showing in docker std::clog << "hedera response: " << hedera_precheck_code_string << ", cost: " << cost @@ -791,7 +791,7 @@ namespace model { return -4; } return 0; - + } int Transaction::runSendTransactionMysql() { @@ -807,10 +807,10 @@ namespace model { auto base_64_message = DataTypeConverter::binToBase64(raw_message, sodium_base64_VARIANT_URLSAFE_NO_PADDING); if (base_64_message == "") { - addError(new Error(function_name, "error convert final transaction to base64")); + addError(new Error(function_name, "error convert final transaction to base64")); return -7; } - + // create json request auto user = getUser(); @@ -834,7 +834,7 @@ namespace model { } return 1; } - + getErrors(&json_request); return -1; @@ -888,8 +888,8 @@ namespace model { return json_message; } - - + + /// TASK //////////////////////// SendTransactionTask::SendTransactionTask(Poco::AutoPtr transaction) : UniLib::controller::CPUTask(ServerConfig::g_CPUScheduler), mTransaction(transaction) @@ -938,4 +938,4 @@ namespace model { } } -} \ No newline at end of file +} diff --git a/login_server/src/cpp/model/gradido/Transaction.h b/login_server/src/cpp/model/gradido/Transaction.h index 9ff59100e..87dd487a2 100644 --- a/login_server/src/cpp/model/gradido/Transaction.h +++ b/login_server/src/cpp/model/gradido/Transaction.h @@ -3,23 +3,23 @@ /* * @author: Dario Rekowski - * + * * @date: 12.10.2020 - * - * @brief: mainly for signing gradido transaction + * + * @brief: mainly for signing gradido transaction */ -#include "../../proto/gradido/GradidoTransaction.pb.h" +#include "proto/gradido/GradidoTransaction.pb.h" #include "TransactionBody.h" #include "../../tasks/GradidoTask.h" #include "../../controller/User.h" -#include "../tasks/CPUTask.h" +#include "../../tasks/CPUTask.h" namespace model { namespace gradido { - + class Transaction : public GradidoTask { @@ -32,21 +32,21 @@ namespace model { // groupMemberUpdate static Poco::AutoPtr createGroupMemberUpdate(Poco::AutoPtr user, Poco::AutoPtr group); //! \brief transfer - //! \return + //! \return static Poco::AutoPtr createTransfer( - Poco::AutoPtr sender, - const MemoryBin* receiverPubkey, - Poco::AutoPtr receiverGroup, - Poco::UInt32 amount, - const std::string& memo, + Poco::AutoPtr sender, + const MemoryBin* receiverPubkey, + Poco::AutoPtr receiverGroup, + Poco::UInt32 amount, + const std::string& memo, BlockchainType blockchainType, bool inbound = true); Poco::AutoPtr createTransfer( - const MemoryBin* senderPubkey, + const MemoryBin* senderPubkey, Poco::AutoPtr receiver, - std::string senderGroupAlias, - Poco::UInt32 amount, + std::string senderGroupAlias, + Poco::UInt32 amount, const std::string& memo, BlockchainType blockchainType); @@ -66,7 +66,7 @@ namespace model { //! \brief validate and if valid send transaction via Hedera Consensus Service to node server int runSendTransaction(); - + inline Poco::AutoPtr getTransactionBody() { Poco::ScopedLock _lock(mWorkMutex); return mTransactionBody; } //! \brief get current body bytes from proto transaction and save it into db diff --git a/login_server/src/cpp/model/gradido/TransactionBase.h b/login_server/src/cpp/model/gradido/TransactionBase.h index da8930443..6a82b2a28 100644 --- a/login_server/src/cpp/model/gradido/TransactionBase.h +++ b/login_server/src/cpp/model/gradido/TransactionBase.h @@ -11,11 +11,11 @@ #pragma warning(disable:4800) -#include "../lib/NotificationList.h" -#include "../proto/gradido/BasicTypes.pb.h" -#include "../SingletonManager/MemoryManager.h" +#include "../../lib/NotificationList.h" +#include "proto/gradido/BasicTypes.pb.h" +#include "../../SingletonManager/MemoryManager.h" -#include "../controller/User.h" +#include "../../controller/User.h" namespace model { namespace gradido { @@ -40,7 +40,7 @@ namespace model { public: TransactionBase(const std::string& memo); virtual ~TransactionBase(); - //! \return 0 if ok, < 0 if error, > 0 if not implemented + //! \return 0 if ok, < 0 if error, > 0 if not implemented virtual int prepare() = 0; virtual TransactionValidation validate() = 0; @@ -72,4 +72,4 @@ namespace model { -#endif //GRADIDO_LOGIN_SERVER_MODEL_TRANSACTION_BASE_INCLUDE \ No newline at end of file +#endif //GRADIDO_LOGIN_SERVER_MODEL_TRANSACTION_BASE_INCLUDE diff --git a/login_server/src/cpp/model/gradido/TransactionBody.h b/login_server/src/cpp/model/gradido/TransactionBody.h index 92ad2f2b5..af7d97b27 100644 --- a/login_server/src/cpp/model/gradido/TransactionBody.h +++ b/login_server/src/cpp/model/gradido/TransactionBody.h @@ -7,7 +7,7 @@ #include "TransactionCreation.h" #include "TransactionTransfer.h" -#include "../../proto/gradido/TransactionBody.pb.h" +#include "proto/gradido/TransactionBody.pb.h" #include "../../lib/MultithreadContainer.h" @@ -39,24 +39,24 @@ namespace model { //! \brief GroupMemberUpdate Transaction static Poco::AutoPtr create(const std::string& memo, Poco::AutoPtr user, proto::gradido::GroupMemberUpdate_MemberUpdateType type, const std::string& targetGroupAlias); //! \brief GradidoTransfer Transaction - //! \param group if group.isNull() it is a local transfer, else cross group transfer, + //! \param group if group.isNull() it is a local transfer, else cross group transfer, //! \param group if group is same as sender group outbound, else inbound static Poco::AutoPtr create( const std::string& memo, - Poco::AutoPtr sender, - const MemoryBin* receiverPublicKey, - Poco::UInt32 amount, + Poco::AutoPtr sender, + const MemoryBin* receiverPublicKey, + Poco::UInt32 amount, BlockchainType blockchainType, - Poco::Timestamp pairedTransactionId = Poco::Timestamp(), + Poco::Timestamp pairedTransactionId = Poco::Timestamp(), Poco::AutoPtr group = nullptr ); static Poco::AutoPtr create(const std::string& memo, const MemoryBin* senderPublicKey, Poco::AutoPtr receiver, Poco::UInt32 amount, Poco::Timestamp pairedTransactionId = Poco::Timestamp(), Poco::AutoPtr group = nullptr); static Poco::AutoPtr create(const std::string& memo, const MemoryBin* senderPublicKey, const MemoryBin* receiverPublicKey, Poco::UInt32 amount, const std::string groupAlias, TransactionTransferType transferType, Poco::Timestamp pairedTransactionId = Poco::Timestamp()); //! \brief GradidoCreation Transaction static Poco::AutoPtr create( - const std::string& memo, - Poco::AutoPtr receiver, - Poco::UInt32 amount, + const std::string& memo, + Poco::AutoPtr receiver, + Poco::UInt32 amount, Poco::DateTime targetDate, BlockchainType blockchainType ); @@ -68,7 +68,7 @@ namespace model { static const char* transactionTypeToString(TransactionType type); std::string getMemo(); void setMemo(const std::string& memo); - + bool isCreation() { Poco::ScopedLock _lock(mWorkMutex); return mType == TRANSACTION_CREATION; } bool isTransfer() { Poco::ScopedLock _lock(mWorkMutex); return mType == TRANSACTION_TRANSFER; } bool isGroupMemberUpdate() { Poco::ScopedLock _lock(mWorkMutex); return mType == TRANSACTION_GROUP_MEMBER_UPDATE; } @@ -97,4 +97,4 @@ namespace model { } } -#endif //GRADIDO_LOGIN_SERVER_MODEL_GRADIDO_TRANSACTION_BASE_H \ No newline at end of file +#endif //GRADIDO_LOGIN_SERVER_MODEL_GRADIDO_TRANSACTION_BASE_H diff --git a/login_server/src/cpp/model/gradido/TransactionCreation.h b/login_server/src/cpp/model/gradido/TransactionCreation.h index 7304f49cd..5b7e592d8 100644 --- a/login_server/src/cpp/model/gradido/TransactionCreation.h +++ b/login_server/src/cpp/model/gradido/TransactionCreation.h @@ -12,8 +12,8 @@ #pragma warning(disable:4800) #include "TransactionBase.h" -#include "../proto/gradido/GradidoCreation.pb.h" -#include "../controller/User.h" +#include "proto/gradido/GradidoCreation.pb.h" +#include "../../controller/User.h" namespace model { namespace gradido { @@ -47,4 +47,4 @@ namespace model { } -#endif //GRADIDO_LOGIN_SERVER_MODEL_TRANSACTION_CREATION_INCLUDE \ No newline at end of file +#endif //GRADIDO_LOGIN_SERVER_MODEL_TRANSACTION_CREATION_INCLUDE diff --git a/login_server/src/cpp/model/gradido/TransactionTransfer.h b/login_server/src/cpp/model/gradido/TransactionTransfer.h index 57259059f..86da71207 100644 --- a/login_server/src/cpp/model/gradido/TransactionTransfer.h +++ b/login_server/src/cpp/model/gradido/TransactionTransfer.h @@ -15,7 +15,7 @@ //#include "Transaction.h" #include "../proto/gradido/GradidoTransfer.pb.h" -#include "../controller/User.h" +#include "../../controller/User.h" namespace model { namespace gradido { @@ -81,4 +81,4 @@ namespace model { } -#endif //GRADIDO_LOGIN_SERVER_MODEL_TRANSACTION_TRANSFER_INCLUDE \ No newline at end of file +#endif //GRADIDO_LOGIN_SERVER_MODEL_TRANSACTION_TRANSFER_INCLUDE diff --git a/login_server/src/cpp/model/hedera/ConsensusCreateTopic.h b/login_server/src/cpp/model/hedera/ConsensusCreateTopic.h index b639ee305..6dbd64257 100644 --- a/login_server/src/cpp/model/hedera/ConsensusCreateTopic.h +++ b/login_server/src/cpp/model/hedera/ConsensusCreateTopic.h @@ -4,11 +4,11 @@ #include "../../SingletonManager/MemoryManager.h" #include "../../controller/HederaId.h" -#include "../../proto/hedera/ConsensusCreateTopic.pb.h" +#include "proto/hedera/ConsensusCreateTopic.pb.h" namespace model { namespace hedera { - class ConsensusCreateTopic + class ConsensusCreateTopic { public: ConsensusCreateTopic(Poco::AutoPtr autoRenewHederaAccountId, Poco::UInt32 autoRenewPeriod); @@ -29,4 +29,4 @@ namespace model { } -#endif //__GRADIDO_LOGIN_SERVER_MODEL_HEDERA_CONSENSUS_CREATE_TOPIC_H \ No newline at end of file +#endif //__GRADIDO_LOGIN_SERVER_MODEL_HEDERA_CONSENSUS_CREATE_TOPIC_H diff --git a/login_server/src/cpp/model/hedera/ConsensusSubmitMessage.h b/login_server/src/cpp/model/hedera/ConsensusSubmitMessage.h index d08b72279..30b18664f 100644 --- a/login_server/src/cpp/model/hedera/ConsensusSubmitMessage.h +++ b/login_server/src/cpp/model/hedera/ConsensusSubmitMessage.h @@ -1,7 +1,7 @@ #ifndef __GRADIDO_LOGIN_SERVER_MODEL_HEDERA_CONSENSUS_SUBMIT_MESSAGE_H #define __GRADIDO_LOGIN_SERVER_MODEL_HEDERA_CONSENSUS_SUBMIT_MESSAGE_H -#include "../../proto/hedera/ConsensusSubmitMessage.pb.h" +#include "proto/hedera/ConsensusSubmitMessage.pb.h" #include "../../controller/HederaId.h" namespace model { @@ -20,7 +20,7 @@ namespace model { bool validate(); - + protected: proto::ConsensusSubmitMessageTransactionBody* mConsensusMessageBody; @@ -29,4 +29,4 @@ namespace model { } } -#endif //__GRADIDO_LOGIN_SERVER_MODEL_HEDERA_CONSENSUS_SUBMIT_MESSAGE_H \ No newline at end of file +#endif //__GRADIDO_LOGIN_SERVER_MODEL_HEDERA_CONSENSUS_SUBMIT_MESSAGE_H diff --git a/login_server/src/cpp/model/hedera/ConsensusTopicInfo.h b/login_server/src/cpp/model/hedera/ConsensusTopicInfo.h index 123b9496b..c25819498 100644 --- a/login_server/src/cpp/model/hedera/ConsensusTopicInfo.h +++ b/login_server/src/cpp/model/hedera/ConsensusTopicInfo.h @@ -2,7 +2,7 @@ #define __GRADIDO_LOGIN_SERVER_MODEL_HEDERA_CONSENSUS_GET_TOPIC_INFO_RESPONSE_H #include "../proto/hedera/ConsensusTopicInfo.pb.h" -#include "../SingletonManager/MemoryManager.h" +#include "../../SingletonManager/MemoryManager.h" #include "../../lib/DataTypeConverter.h" #include "Poco/DateTime.h" @@ -31,4 +31,4 @@ namespace model } } -#endif //__GRADIDO_LOGIN_SERVER_MODEL_HEDERA_CONSENSUS_GET_TOPIC_INFO_RESPONSE_H \ No newline at end of file +#endif //__GRADIDO_LOGIN_SERVER_MODEL_HEDERA_CONSENSUS_GET_TOPIC_INFO_RESPONSE_H diff --git a/login_server/src/cpp/model/hedera/CryptoCreateTransaction.h b/login_server/src/cpp/model/hedera/CryptoCreateTransaction.h index 7182f3506..8cb4f9039 100644 --- a/login_server/src/cpp/model/hedera/CryptoCreateTransaction.h +++ b/login_server/src/cpp/model/hedera/CryptoCreateTransaction.h @@ -1,9 +1,9 @@ #ifndef __GRADIDO_LOGIN_MODEL_HEDERA_CRYPTO_CREATE_TRANSACTION_H #define __GRADIDO_LOGIN_MODEL_HEDERA_CRYPTO_CREATE_TRANSACTION_H -#include "../../proto/hedera/CryptoCreate.pb.h" +#include "proto/hedera/CryptoCreate.pb.h" -#include "../Crypto/KeyPairHedera.h" +#include "../../Crypto/KeyPairHedera.h" namespace model { namespace hedera { @@ -28,4 +28,4 @@ namespace model { -#endif //__GRADIDO_LOGIN_MODEL_HEDERA_CRYPTO_CREATE_TRANSACTION_H \ No newline at end of file +#endif //__GRADIDO_LOGIN_MODEL_HEDERA_CRYPTO_CREATE_TRANSACTION_H diff --git a/login_server/src/cpp/model/hedera/CryptoTransferTransaction.h b/login_server/src/cpp/model/hedera/CryptoTransferTransaction.h index 21d9bd3c3..6b1db2405 100644 --- a/login_server/src/cpp/model/hedera/CryptoTransferTransaction.h +++ b/login_server/src/cpp/model/hedera/CryptoTransferTransaction.h @@ -10,7 +10,7 @@ * */ -#include "../../proto/hedera/CryptoTransfer.pb.h" +#include "proto/hedera/CryptoTransfer.pb.h" #include "../../controller/HederaId.h" namespace model { @@ -37,4 +37,4 @@ namespace model { } -#endif //_GRADIDO_LOGIN_SERVER_MODEL_HEDERA_CRYPTO_TRANSFER_TRANSACTION_H \ No newline at end of file +#endif //_GRADIDO_LOGIN_SERVER_MODEL_HEDERA_CRYPTO_TRANSFER_TRANSACTION_H diff --git a/login_server/src/cpp/model/hedera/Query.h b/login_server/src/cpp/model/hedera/Query.h index 0f149684c..4ed22d5b4 100644 --- a/login_server/src/cpp/model/hedera/Query.h +++ b/login_server/src/cpp/model/hedera/Query.h @@ -3,14 +3,14 @@ /*! * @author: Dario Rekowski - * + * * @date: 31.08.20 - * + * * @brief: class for put together hedera querys (ask for state data, not a transaction, but needs a payment transaction) * */ -#include "../../proto/hedera/Query.pb.h" +#include "proto/hedera/Query.pb.h" #include "../../controller/NodeServer.h" #include "../../Crypto/KeyPairHedera.h" #include "TransactionBody.h" @@ -39,7 +39,7 @@ namespace model { void setResponseType(proto::ResponseType type); proto::ResponseType getResponseType(); inline bool setTransactionFee(Poco::UInt64 fee) { return mTransactionBody->updateCryptoTransferAmount(fee);} - + inline const proto::Query* getProtoQuery() const { return &mQueryProto; } std::string getConnectionString() const; @@ -57,4 +57,4 @@ namespace model { } -#endif //_GRADIDO_LOGIN_SERVER_MODEL_HEDERA_QUERY_H \ No newline at end of file +#endif //_GRADIDO_LOGIN_SERVER_MODEL_HEDERA_QUERY_H diff --git a/login_server/src/cpp/model/hedera/Response.h b/login_server/src/cpp/model/hedera/Response.h index ea2445774..af5a36d80 100644 --- a/login_server/src/cpp/model/hedera/Response.h +++ b/login_server/src/cpp/model/hedera/Response.h @@ -10,7 +10,7 @@ * */ -#include "../../proto/hedera/Response.pb.h" +#include "proto/hedera/Response.pb.h" #include "ConsensusTopicInfo.h" #include "TransactionReceipt.h" #include "TransactionRecord.h" @@ -23,7 +23,7 @@ namespace model { public: Response(); ~Response(); - + inline proto::Response* getResponsePtr() { return &mResponseProto; } Poco::UInt64 getAccountBalance(); std::unique_ptr getConsensusTopicInfo(); @@ -31,17 +31,17 @@ namespace model { TransactionRecord* getTransactionRecord(); Poco::UInt64 getQueryCost(); proto::ResponseCodeEnum getResponseCode(); - + inline bool isCryptoGetAccountBalanceResponse() { return mResponseProto.has_cryptogetaccountbalance(); } inline bool isConsensusGetTopicInfoResponse() { return mResponseProto.has_consensusgettopicinfo(); } protected: proto::Response mResponseProto; - + }; } } -#endif //_GRADIDO_LOGIN_SERVER_MODEL_HEDERA_RESPONSE_H \ No newline at end of file +#endif //_GRADIDO_LOGIN_SERVER_MODEL_HEDERA_RESPONSE_H diff --git a/login_server/src/cpp/model/hedera/Transaction.h b/login_server/src/cpp/model/hedera/Transaction.h index 63d273eb0..6ba7e9511 100644 --- a/login_server/src/cpp/model/hedera/Transaction.h +++ b/login_server/src/cpp/model/hedera/Transaction.h @@ -10,7 +10,7 @@ * */ -#include "../../proto/hedera/Transaction.pb.h" +#include "proto/hedera/Transaction.pb.h" #include "../../Crypto/KeyPairHedera.h" #include "TransactionBody.h" @@ -25,7 +25,7 @@ namespace model { bool sign(std::unique_ptr keyPairHedera, const TransactionBody* transactionBody); bool sign(std::unique_ptr keyPairHedera, std::unique_ptr transactionBody); - + inline proto::Transaction* getTransaction() { return mTransaction; } inline std::string getConnectionString() const { return mConnection.getUriWithPort(); } const controller::NodeServerConnection& getConnection() const { return mConnection; } @@ -43,4 +43,4 @@ namespace model { } -#endif //_GRADIDO_LOGIN_SERVER_MODEL_HEDERA_TRANSACTION_H \ No newline at end of file +#endif //_GRADIDO_LOGIN_SERVER_MODEL_HEDERA_TRANSACTION_H diff --git a/login_server/src/cpp/model/hedera/TransactionBody.h b/login_server/src/cpp/model/hedera/TransactionBody.h index b9c25d0c4..c9975a42f 100644 --- a/login_server/src/cpp/model/hedera/TransactionBody.h +++ b/login_server/src/cpp/model/hedera/TransactionBody.h @@ -17,7 +17,7 @@ #include "ConsensusCreateTopic.h" #include "ConsensusSubmitMessage.h" -#include "../../proto/hedera/TransactionBody.pb.h" +#include "proto/hedera/TransactionBody.pb.h" namespace model { namespace hedera { @@ -44,7 +44,7 @@ namespace model { bool setCryptoCreate(CryptoCreateTransaction& cryptoCreateTransaction); bool setCreateTopic(ConsensusCreateTopic& consensusCreateTopicTransaction); bool setConsensusSubmitMessage(ConsensusSubmitMessage& consensusSubmitMessageTransaction); - //bool + //bool inline const proto::TransactionBody* getProtoTransactionBody() const { return &mTransactionBody; } inline std::string getConnectionString() const { return mConnection.getUriWithPort(); } @@ -54,7 +54,7 @@ namespace model { void updateTimestamp(); protected: - + proto::TransactionBody mTransactionBody; controller::NodeServerConnection mConnection; bool mHasBody; @@ -64,4 +64,4 @@ namespace model { } -#endif //_GRADIDO_LOGIN_SERVER_MODEL_HEDERA_TRANSACTION_BODY_H \ No newline at end of file +#endif //_GRADIDO_LOGIN_SERVER_MODEL_HEDERA_TRANSACTION_BODY_H diff --git a/login_server/src/cpp/model/hedera/TransactionGetReceiptQuery.h b/login_server/src/cpp/model/hedera/TransactionGetReceiptQuery.h index bf035a941..725f6b33e 100644 --- a/login_server/src/cpp/model/hedera/TransactionGetReceiptQuery.h +++ b/login_server/src/cpp/model/hedera/TransactionGetReceiptQuery.h @@ -2,7 +2,7 @@ #define GRADIDO_LOGIN_SERVER_MODEL_HEDERA_TRANSACTION_GET_RECEIPT_QUERY_H #include "QueryHeader.h" -#include "../../proto/hedera/TransactionGetReceipt.pb.h" +#include "proto/hedera/TransactionGetReceipt.pb.h" namespace model { namespace hedera { @@ -19,11 +19,11 @@ namespace model { protected: Poco::AutoPtr mQueryHeader; proto::TransactionGetReceiptQuery mProtoReceiptQuery; - + }; } } -#endif //GRADIDO_LOGIN_SERVER_MODEL_HEDERA_TRANSACTION_GET_RECEIPT_QUERY_H \ No newline at end of file +#endif //GRADIDO_LOGIN_SERVER_MODEL_HEDERA_TRANSACTION_GET_RECEIPT_QUERY_H diff --git a/login_server/src/cpp/model/hedera/TransactionId.h b/login_server/src/cpp/model/hedera/TransactionId.h index dcc877271..3f8c5114b 100644 --- a/login_server/src/cpp/model/hedera/TransactionId.h +++ b/login_server/src/cpp/model/hedera/TransactionId.h @@ -10,7 +10,7 @@ * */ -#include "../../proto/hedera/BasicTypes.pb.h" +#include "proto/hedera/BasicTypes.pb.h" #include "Poco/JSON/Object.h" @@ -26,7 +26,7 @@ namespace model { Poco::JSON::Object::Ptr convertToJSON(); - protected: + protected: Poco::Timestamp mTransactionValidStart; union { struct { @@ -41,4 +41,4 @@ namespace model { } -#endif //_GRADIDO_LOGIN_SERVER_MODEL_HEDERA_TRANSACTION_ID_H \ No newline at end of file +#endif //_GRADIDO_LOGIN_SERVER_MODEL_HEDERA_TRANSACTION_ID_H diff --git a/login_server/src/cpp/model/hedera/TransactionRecord.h b/login_server/src/cpp/model/hedera/TransactionRecord.h index d14f42303..15ec1c4b3 100644 --- a/login_server/src/cpp/model/hedera/TransactionRecord.h +++ b/login_server/src/cpp/model/hedera/TransactionRecord.h @@ -1,11 +1,11 @@ #ifndef __GRADIDO_LOGIN_SERVER_MODEL_HEDERA_TRANSACTION_RECORD_H #define __GRADIDO_LOGIN_SERVER_MODEL_HEDERA_TRANSACTION_RECORD_H -#include "../../proto/hedera/TransactionRecord.pb.h" +#include "proto/hedera/TransactionRecord.pb.h" namespace model { - namespace hedera + namespace hedera { class TransactionRecord { diff --git a/login_server/src/cpp/model/hedera/TransactionResponse.h b/login_server/src/cpp/model/hedera/TransactionResponse.h index 325cbe73f..2f6293191 100644 --- a/login_server/src/cpp/model/hedera/TransactionResponse.h +++ b/login_server/src/cpp/model/hedera/TransactionResponse.h @@ -1,7 +1,7 @@ #ifndef __GRADIDO_LOGIN_SERVER_MODEL_HEDERA_TRANSACTION_RESPONSE_H #define __GRADIDO_LOGIN_SERVER_MODEL_HEDERA_TRANSACTION_RESPONSE_H -#include "../../proto/hedera/TransactionResponse.pb.h" +#include "proto/hedera/TransactionResponse.pb.h" #include "Poco/Types.h" namespace model { @@ -27,4 +27,4 @@ namespace model { -#endif //__GRADIDO_LOGIN_SERVER_MODEL_HEDERA_TRANSACTION_RESPONSE_H \ No newline at end of file +#endif //__GRADIDO_LOGIN_SERVER_MODEL_HEDERA_TRANSACTION_RESPONSE_H diff --git a/login_server/src/cpp/test/controller/TestHederaAccount.cpp b/login_server/src/cpp/test/controller/TestHederaAccount.cpp index 772377d2e..aaeaea723 100644 --- a/login_server/src/cpp/test/controller/TestHederaAccount.cpp +++ b/login_server/src/cpp/test/controller/TestHederaAccount.cpp @@ -1,12 +1,12 @@ #include "TestHederaAccount.h" -#include "../SingletonManager/ConnectionManager.h" +#include "../../SingletonManager/ConnectionManager.h" namespace controller { void TestHederaAccount::SetUp() { - + } - + TEST_F(TestHederaAccount, TestPick) { auto hedera_account = controller::HederaAccount::pick(ServerConfig::HEDERA_TESTNET, false); EXPECT_FALSE(hedera_account.isNull()); diff --git a/login_server/src/cpp/test/controller/TestHederaAccount.h b/login_server/src/cpp/test/controller/TestHederaAccount.h index 7e8e7843a..721ba17e8 100644 --- a/login_server/src/cpp/test/controller/TestHederaAccount.h +++ b/login_server/src/cpp/test/controller/TestHederaAccount.h @@ -1,6 +1,6 @@ #include "gtest/gtest.h" -#include "../controller/HederaAccount.h" +#include "../../controller/HederaAccount.h" namespace controller { @@ -10,4 +10,4 @@ namespace controller { void SetUp() override; }; -} \ No newline at end of file +} diff --git a/login_server/src/cpp/test/controller/TestHederaId.cpp b/login_server/src/cpp/test/controller/TestHederaId.cpp index c2fed10dd..d08dc7e59 100644 --- a/login_server/src/cpp/test/controller/TestHederaId.cpp +++ b/login_server/src/cpp/test/controller/TestHederaId.cpp @@ -1,5 +1,5 @@ #include "TestHederaId.h" -#include "../SingletonManager/ConnectionManager.h" +#include "../../SingletonManager/ConnectionManager.h" namespace controller { void TestHederaId::SetUp() diff --git a/login_server/src/cpp/test/controller/TestHederaId.h b/login_server/src/cpp/test/controller/TestHederaId.h index b6e4b574e..e19b56862 100644 --- a/login_server/src/cpp/test/controller/TestHederaId.h +++ b/login_server/src/cpp/test/controller/TestHederaId.h @@ -1,6 +1,6 @@ #include "gtest/gtest.h" -#include "../controller/HederaId.h" +#include "../../controller/HederaId.h" namespace controller { @@ -10,4 +10,4 @@ namespace controller { void SetUp() override; }; -} \ No newline at end of file +} diff --git a/login_server/src/cpp/test/crypto/TestAuthenticatedEncryption.cpp b/login_server/src/cpp/test/crypto/TestAuthenticatedEncryption.cpp index e863e773d..6c292869a 100644 --- a/login_server/src/cpp/test/crypto/TestAuthenticatedEncryption.cpp +++ b/login_server/src/cpp/test/crypto/TestAuthenticatedEncryption.cpp @@ -5,7 +5,7 @@ #include "../../lib/Profiler.h" #include "../../lib/DataTypeConverter.h" -#include "../ServerConfig.h" +#include "../../ServerConfig.h" void TestAuthenticatedEncryption::SetUp() { @@ -39,4 +39,4 @@ TEST_F(TestAuthenticatedEncryption, encryptDecryptTest) { EXPECT_EQ(std::string((const char*)*decrypted_message, decrypted_message->size()), test_message); // */ -} \ No newline at end of file +} diff --git a/login_server/unix_parse_proto.sh b/login_server/unix_parse_proto.sh deleted file mode 100755 index 43fdc3a14..000000000 --- a/login_server/unix_parse_proto.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -if [ ! -d "./src/cpp/proto" ] ; then - mkdir ./src/cpp/proto -fi -if [ ! -d "./src/cpp/proto/gradido" ] ; then - mkdir ./src/cpp/proto/gradido -fi -PROTOC_PATH=./build/bin -CPP_PLUGIN_PATH=./build/bin -$PROTOC_PATH/protoc --cpp_out=./src/cpp/proto --proto_path=./src/proto ./src/proto/gradido/*.proto - -if [ ! -d "./src/cpp/proto/hedera" ] ; then - mkdir ./src/cpp/proto/hedera -fi - -GOOGLE_PROTOBUF_INCLUDES=./dependencies/grpc/third_party/protobuf/src -$PROTOC_PATH/protoc --plugin=protoc-gen-grpc=$CPP_PLUGIN_PATH/grpc_cpp_plugin --cpp_out=./src/cpp/proto/hedera --grpc_out=./src/cpp/proto/hedera --proto_path=$GOOGLE_PROTOBUF_INCLUDES --proto_path=./src/proto/hedera/hedera-protobuf/src/main/proto ./src/proto/hedera/hedera-protobuf/src/main/proto/*.proto - - diff --git a/login_server/windows_parse_proto.sh b/login_server/windows_parse_proto.sh deleted file mode 100644 index 90497e6b8..000000000 --- a/login_server/windows_parse_proto.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -if [ ! -d "./src/cpp/proto" ] ; then - mkdir ./src/cpp/proto -fi -if [ ! -d "./src/cpp/proto/gradido" ] ; then - mkdir ./src/cpp/proto/gradido -fi -PROTOC_PATH=build/bin -CPP_PLUGIN_PATH=build/bin -$PROTOC_PATH/protoc.exe --cpp_out=./src/cpp/proto --proto_path=./src/proto ./src/proto/gradido/*.proto - -if [ ! -d "./src/cpp/proto/hedera" ] ; then - mkdir ./src/cpp/proto/hedera -fi - -GOOGLE_PROTOBUF_INCLUDES=./dependencies/grpc/third_party/protobuf/src -$PROTOC_PATH/protoc.exe --plugin=protoc-gen-grpc=$CPP_PLUGIN_PATH/grpc_cpp_plugin.exe --cpp_out=./src/cpp/proto/hedera --grpc_out=./src/cpp/proto/hedera --proto_path=$GOOGLE_PROTOBUF_INCLUDES --proto_path=./src/proto/hedera/hedera-protobuf/src/main/proto ./src/proto/hedera/hedera-protobuf/src/main/proto/*.proto - - diff --git a/package.json b/package.json index 0ebef23ff..9b37bd686 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gradido", - "version": "1.0.1", + "version": "1.0.0", "description": "Gradido", "main": "index.js", "repository": "git@github.com:gradido/gradido.git",