diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000..85e7c1dfcb
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/.idea/
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000000..13566b81b0
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/JavaDA_PROJECT7_RESTAPI.iml b/.idea/JavaDA_PROJECT7_RESTAPI.iml
new file mode 100644
index 0000000000..d6ebd48059
--- /dev/null
+++ b/.idea/JavaDA_PROJECT7_RESTAPI.iml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000000..b485a85aef
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml
new file mode 100644
index 0000000000..fc8165ed94
--- /dev/null
+++ b/.idea/dataSources.xml
@@ -0,0 +1,12 @@
+
+
+
+
+ h2.unified
+ true
+ org.h2.Driver
+ jdbc:h2:tcp://localhost:9092/default
+ $ProjectFileDir$
+
+
+
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000000..e1890dac65
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000000..7f70bdacca
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
new file mode 100644
index 0000000000..712ab9d985
--- /dev/null
+++ b/.idea/jarRepositories.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/jpa-buddy.xml b/.idea/jpa-buddy.xml
new file mode 100644
index 0000000000..25e38eeaae
--- /dev/null
+++ b/.idea/jpa-buddy.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__classworlds_classworlds_1_1_alpha_2.xml b/.idea/libraries/Maven__classworlds_classworlds_1_1_alpha_2.xml
new file mode 100644
index 0000000000..c99448dc17
--- /dev/null
+++ b/.idea/libraries/Maven__classworlds_classworlds_1_1_alpha_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml b/.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml
new file mode 100644
index 0000000000..bc7d7fd869
--- /dev/null
+++ b/.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_13_1.xml b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_13_1.xml
new file mode 100644
index 0000000000..49a5bb6ad6
--- /dev/null
+++ b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_13_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_13_1.xml b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_13_1.xml
new file mode 100644
index 0000000000..a1987aa774
--- /dev/null
+++ b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_13_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_13_1.xml b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_13_1.xml
new file mode 100644
index 0000000000..229a81bf91
--- /dev/null
+++ b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_13_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_13_1.xml b/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_13_1.xml
new file mode 100644
index 0000000000..f95653d386
--- /dev/null
+++ b/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_13_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_13_1.xml b/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_13_1.xml
new file mode 100644
index 0000000000..903e588b0d
--- /dev/null
+++ b/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_13_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_13_1.xml b/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_13_1.xml
new file mode 100644
index 0000000000..d5d9656a22
--- /dev/null
+++ b/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_13_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_github_stephenc_jcip_jcip_annotations_1_0_1.xml b/.idea/libraries/Maven__com_github_stephenc_jcip_jcip_annotations_1_0_1.xml
new file mode 100644
index 0000000000..6fe105afb3
--- /dev/null
+++ b/.idea/libraries/Maven__com_github_stephenc_jcip_jcip_annotations_1_0_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_h2database_h2_1_4_200.xml b/.idea/libraries/Maven__com_h2database_h2_1_4_200.xml
new file mode 100644
index 0000000000..98dbdb5af7
--- /dev/null
+++ b/.idea/libraries/Maven__com_h2database_h2_1_4_200.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_6_0.xml b/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_6_0.xml
new file mode 100644
index 0000000000..3056db8824
--- /dev/null
+++ b/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_6_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_nimbusds_content_type_2_1.xml b/.idea/libraries/Maven__com_nimbusds_content_type_2_1.xml
new file mode 100644
index 0000000000..04318afd46
--- /dev/null
+++ b/.idea/libraries/Maven__com_nimbusds_content_type_2_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_nimbusds_lang_tag_1_5.xml b/.idea/libraries/Maven__com_nimbusds_lang_tag_1_5.xml
new file mode 100644
index 0000000000..7234a95364
--- /dev/null
+++ b/.idea/libraries/Maven__com_nimbusds_lang_tag_1_5.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_nimbusds_nimbus_jose_jwt_9_14.xml b/.idea/libraries/Maven__com_nimbusds_nimbus_jose_jwt_9_14.xml
new file mode 100644
index 0000000000..6ea6fd233d
--- /dev/null
+++ b/.idea/libraries/Maven__com_nimbusds_nimbus_jose_jwt_9_14.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_nimbusds_oauth2_oidc_sdk_9_19.xml b/.idea/libraries/Maven__com_nimbusds_oauth2_oidc_sdk_9_19.xml
new file mode 100644
index 0000000000..36b88dc1c9
--- /dev/null
+++ b/.idea/libraries/Maven__com_nimbusds_oauth2_oidc_sdk_9_19.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_sun_activation_jakarta_activation_1_2_2.xml b/.idea/libraries/Maven__com_sun_activation_jakarta_activation_1_2_2.xml
new file mode 100644
index 0000000000..fea99f0263
--- /dev/null
+++ b/.idea/libraries/Maven__com_sun_activation_jakarta_activation_1_2_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_sun_istack_istack_commons_runtime_3_0_12.xml b/.idea/libraries/Maven__com_sun_istack_istack_commons_runtime_3_0_12.xml
new file mode 100644
index 0000000000..9f0fc0526e
--- /dev/null
+++ b/.idea/libraries/Maven__com_sun_istack_istack_commons_runtime_3_0_12.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_zaxxer_HikariCP_4_0_3.xml b/.idea/libraries/Maven__com_zaxxer_HikariCP_4_0_3.xml
new file mode 100644
index 0000000000..9314c366fc
--- /dev/null
+++ b/.idea/libraries/Maven__com_zaxxer_HikariCP_4_0_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml b/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml
new file mode 100644
index 0000000000..be90656e69
--- /dev/null
+++ b/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml b/.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml
new file mode 100644
index 0000000000..cba9dd244f
--- /dev/null
+++ b/.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__jakarta_persistence_jakarta_persistence_api_2_2_3.xml b/.idea/libraries/Maven__jakarta_persistence_jakarta_persistence_api_2_2_3.xml
new file mode 100644
index 0000000000..c11957d98c
--- /dev/null
+++ b/.idea/libraries/Maven__jakarta_persistence_jakarta_persistence_api_2_2_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__jakarta_transaction_jakarta_transaction_api_1_3_3.xml b/.idea/libraries/Maven__jakarta_transaction_jakarta_transaction_api_1_3_3.xml
new file mode 100644
index 0000000000..5b31fe5007
--- /dev/null
+++ b/.idea/libraries/Maven__jakarta_transaction_jakarta_transaction_api_1_3_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml b/.idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml
new file mode 100644
index 0000000000..e66afb958e
--- /dev/null
+++ b/.idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml b/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml
new file mode 100644
index 0000000000..04213f7386
--- /dev/null
+++ b/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__junit_junit_4_13_2.xml b/.idea/libraries/Maven__junit_junit_4_13_2.xml
new file mode 100644
index 0000000000..606c352d54
--- /dev/null
+++ b/.idea/libraries/Maven__junit_junit_4_13_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_28.xml b/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_28.xml
new file mode 100644
index 0000000000..c117a77e9d
--- /dev/null
+++ b/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_28.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_11_22.xml b/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_11_22.xml
new file mode 100644
index 0000000000..c957e32807
--- /dev/null
+++ b/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_11_22.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_11_22.xml b/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_11_22.xml
new file mode 100644
index 0000000000..b67ac50fff
--- /dev/null
+++ b/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_11_22.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__net_minidev_accessors_smart_2_4_8.xml b/.idea/libraries/Maven__net_minidev_accessors_smart_2_4_8.xml
new file mode 100644
index 0000000000..6b7b59a8aa
--- /dev/null
+++ b/.idea/libraries/Maven__net_minidev_accessors_smart_2_4_8.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__net_minidev_json_smart_2_4_8.xml b/.idea/libraries/Maven__net_minidev_json_smart_2_4_8.xml
new file mode 100644
index 0000000000..7479a40e65
--- /dev/null
+++ b/.idea/libraries/Maven__net_minidev_json_smart_2_4_8.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_17_1.xml b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_17_1.xml
new file mode 100644
index 0000000000..a54efd2aa3
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_17_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_logging_log4j_log4j_core_2_17_1.xml b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_core_2_17_1.xml
new file mode 100644
index 0000000000..9048f380f1
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_core_2_17_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_logging_log4j_log4j_jul_2_17_1.xml b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_jul_2_17_1.xml
new file mode 100644
index 0000000000..644105611a
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_jul_2_17_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_logging_log4j_log4j_slf4j_impl_2_17_1.xml b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_slf4j_impl_2_17_1.xml
new file mode 100644
index 0000000000..9be2c7ff70
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_slf4j_impl_2_17_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_maven_doxia_doxia_sink_api_1_0.xml b/.idea/libraries/Maven__org_apache_maven_doxia_doxia_sink_api_1_0.xml
new file mode 100644
index 0000000000..1cf9e84ec2
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_maven_doxia_doxia_sink_api_1_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_maven_maven_artifact_2_0_2.xml b/.idea/libraries/Maven__org_apache_maven_maven_artifact_2_0_2.xml
new file mode 100644
index 0000000000..276622e5c1
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_maven_maven_artifact_2_0_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_maven_maven_artifact_manager_2_0_2.xml b/.idea/libraries/Maven__org_apache_maven_maven_artifact_manager_2_0_2.xml
new file mode 100644
index 0000000000..c5d4780ea5
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_maven_maven_artifact_manager_2_0_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_maven_maven_plugin_api_2_0_6.xml b/.idea/libraries/Maven__org_apache_maven_maven_plugin_api_2_0_6.xml
new file mode 100644
index 0000000000..72b13b4c21
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_maven_maven_plugin_api_2_0_6.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_maven_maven_repository_metadata_2_0_2.xml b/.idea/libraries/Maven__org_apache_maven_maven_repository_metadata_2_0_2.xml
new file mode 100644
index 0000000000..787eb30fbc
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_maven_maven_repository_metadata_2_0_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_maven_reporting_maven_reporting_api_3_0.xml b/.idea/libraries/Maven__org_apache_maven_reporting_maven_reporting_api_3_0.xml
new file mode 100644
index 0000000000..a654238b14
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_maven_reporting_maven_reporting_api_3_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_maven_shared_file_management_1_2_1.xml b/.idea/libraries/Maven__org_apache_maven_shared_file_management_1_2_1.xml
new file mode 100644
index 0000000000..4be995700d
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_maven_shared_file_management_1_2_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_maven_shared_maven_shared_io_1_1.xml b/.idea/libraries/Maven__org_apache_maven_shared_maven_shared_io_1_1.xml
new file mode 100644
index 0000000000..e64e6566f7
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_maven_shared_maven_shared_io_1_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_maven_wagon_wagon_provider_api_1_0_alpha_6.xml b/.idea/libraries/Maven__org_apache_maven_wagon_wagon_provider_api_1_0_alpha_6.xml
new file mode 100644
index 0000000000..22055ec1cc
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_maven_wagon_wagon_provider_api_1_0_alpha_6.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_58.xml b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_58.xml
new file mode 100644
index 0000000000..a02ddfa50c
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_58.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_58.xml b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_58.xml
new file mode 100644
index 0000000000..a6317e038a
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_58.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_58.xml b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_58.xml
new file mode 100644
index 0000000000..ccfd14530d
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_58.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_2.xml b/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_2.xml
new file mode 100644
index 0000000000..6ac1c42c6b
--- /dev/null
+++ b/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_7.xml b/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_7.xml
new file mode 100644
index 0000000000..bbaf9a7fc6
--- /dev/null
+++ b/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_7.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_assertj_assertj_core_3_21_0.xml b/.idea/libraries/Maven__org_assertj_assertj_core_3_21_0.xml
new file mode 100644
index 0000000000..03e3cae97a
--- /dev/null
+++ b/.idea/libraries/Maven__org_assertj_assertj_core_3_21_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_attoparser_attoparser_2_0_5_RELEASE.xml b/.idea/libraries/Maven__org_attoparser_attoparser_2_0_5_RELEASE.xml
new file mode 100644
index 0000000000..5bad7db849
--- /dev/null
+++ b/.idea/libraries/Maven__org_attoparser_attoparser_2_0_5_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_codehaus_plexus_plexus_container_default_1_0_alpha_9.xml b/.idea/libraries/Maven__org_codehaus_plexus_plexus_container_default_1_0_alpha_9.xml
new file mode 100644
index 0000000000..0bc9176a89
--- /dev/null
+++ b/.idea/libraries/Maven__org_codehaus_plexus_plexus_container_default_1_0_alpha_9.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_codehaus_plexus_plexus_utils_3_0_22.xml b/.idea/libraries/Maven__org_codehaus_plexus_plexus_utils_3_0_22.xml
new file mode 100644
index 0000000000..df4ecf2b86
--- /dev/null
+++ b/.idea/libraries/Maven__org_codehaus_plexus_plexus_utils_3_0_22.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_glassfish_jaxb_jaxb_runtime_2_3_6.xml b/.idea/libraries/Maven__org_glassfish_jaxb_jaxb_runtime_2_3_6.xml
new file mode 100644
index 0000000000..44758beacc
--- /dev/null
+++ b/.idea/libraries/Maven__org_glassfish_jaxb_jaxb_runtime_2_3_6.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_glassfish_jaxb_txw2_2_3_6.xml b/.idea/libraries/Maven__org_glassfish_jaxb_txw2_2_3_6.xml
new file mode 100644
index 0000000000..be58d42b8b
--- /dev/null
+++ b/.idea/libraries/Maven__org_glassfish_jaxb_txw2_2_3_6.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_hamcrest_hamcrest_2_2.xml b/.idea/libraries/Maven__org_hamcrest_hamcrest_2_2.xml
new file mode 100644
index 0000000000..6b5496ff09
--- /dev/null
+++ b/.idea/libraries/Maven__org_hamcrest_hamcrest_2_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_hamcrest_hamcrest_core_2_2.xml b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_2_2.xml
new file mode 100644
index 0000000000..15f1e4c171
--- /dev/null
+++ b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_2_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_hibernate_common_hibernate_commons_annotations_5_1_2_Final.xml b/.idea/libraries/Maven__org_hibernate_common_hibernate_commons_annotations_5_1_2_Final.xml
new file mode 100644
index 0000000000..a775836a02
--- /dev/null
+++ b/.idea/libraries/Maven__org_hibernate_common_hibernate_commons_annotations_5_1_2_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_hibernate_hibernate_core_5_6_5_Final.xml b/.idea/libraries/Maven__org_hibernate_hibernate_core_5_6_5_Final.xml
new file mode 100644
index 0000000000..77b20789d5
--- /dev/null
+++ b/.idea/libraries/Maven__org_hibernate_hibernate_core_5_6_5_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_2_2_Final.xml b/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_2_2_Final.xml
new file mode 100644
index 0000000000..bad04c4f09
--- /dev/null
+++ b/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_2_2_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_jacoco_jacoco_maven_plugin_0_8_8.xml b/.idea/libraries/Maven__org_jacoco_jacoco_maven_plugin_0_8_8.xml
new file mode 100644
index 0000000000..f483640913
--- /dev/null
+++ b/.idea/libraries/Maven__org_jacoco_jacoco_maven_plugin_0_8_8.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_jacoco_org_jacoco_agent_runtime_0_8_8.xml b/.idea/libraries/Maven__org_jacoco_org_jacoco_agent_runtime_0_8_8.xml
new file mode 100644
index 0000000000..8b581ced66
--- /dev/null
+++ b/.idea/libraries/Maven__org_jacoco_org_jacoco_agent_runtime_0_8_8.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_jacoco_org_jacoco_core_0_8_8.xml b/.idea/libraries/Maven__org_jacoco_org_jacoco_core_0_8_8.xml
new file mode 100644
index 0000000000..83597a325f
--- /dev/null
+++ b/.idea/libraries/Maven__org_jacoco_org_jacoco_core_0_8_8.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_jacoco_org_jacoco_report_0_8_8.xml b/.idea/libraries/Maven__org_jacoco_org_jacoco_report_0_8_8.xml
new file mode 100644
index 0000000000..56ea2e3d88
--- /dev/null
+++ b/.idea/libraries/Maven__org_jacoco_org_jacoco_report_0_8_8.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_jboss_jandex_2_4_2_Final.xml b/.idea/libraries/Maven__org_jboss_jandex_2_4_2_Final.xml
new file mode 100644
index 0000000000..e65fbd02bc
--- /dev/null
+++ b/.idea/libraries/Maven__org_jboss_jandex_2_4_2_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_3_Final.xml b/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_3_Final.xml
new file mode 100644
index 0000000000..5845c01816
--- /dev/null
+++ b/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_3_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_8_2.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_8_2.xml
new file mode 100644
index 0000000000..4f367e75fd
--- /dev/null
+++ b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_8_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_8_2.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_8_2.xml
new file mode 100644
index 0000000000..8e5078321a
--- /dev/null
+++ b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_8_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_8_2.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_8_2.xml
new file mode 100644
index 0000000000..fc8291b349
--- /dev/null
+++ b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_8_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_8_2.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_8_2.xml
new file mode 100644
index 0000000000..4b3ffb131c
--- /dev/null
+++ b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_8_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_8_2.xml b/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_8_2.xml
new file mode 100644
index 0000000000..181d0959f7
--- /dev/null
+++ b/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_8_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_8_2.xml b/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_8_2.xml
new file mode 100644
index 0000000000..5f3aebea8b
--- /dev/null
+++ b/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_8_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_mockito_mockito_core_4_0_0.xml b/.idea/libraries/Maven__org_mockito_mockito_core_4_0_0.xml
new file mode 100644
index 0000000000..cf13209210
--- /dev/null
+++ b/.idea/libraries/Maven__org_mockito_mockito_core_4_0_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_mockito_mockito_junit_jupiter_4_0_0.xml b/.idea/libraries/Maven__org_mockito_mockito_junit_jupiter_4_0_0.xml
new file mode 100644
index 0000000000..49e3f23536
--- /dev/null
+++ b/.idea/libraries/Maven__org_mockito_mockito_junit_jupiter_4_0_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_objenesis_objenesis_3_2.xml b/.idea/libraries/Maven__org_objenesis_objenesis_3_2.xml
new file mode 100644
index 0000000000..6613def613
--- /dev/null
+++ b/.idea/libraries/Maven__org_objenesis_objenesis_3_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml b/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml
new file mode 100644
index 0000000000..fbc1b1635a
--- /dev/null
+++ b/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_ow2_asm_asm_9_2.xml b/.idea/libraries/Maven__org_ow2_asm_asm_9_2.xml
new file mode 100644
index 0000000000..3f9b2da107
--- /dev/null
+++ b/.idea/libraries/Maven__org_ow2_asm_asm_9_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_ow2_asm_asm_analysis_9_2.xml b/.idea/libraries/Maven__org_ow2_asm_asm_analysis_9_2.xml
new file mode 100644
index 0000000000..76fdcad2d1
--- /dev/null
+++ b/.idea/libraries/Maven__org_ow2_asm_asm_analysis_9_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_ow2_asm_asm_commons_9_2.xml b/.idea/libraries/Maven__org_ow2_asm_asm_commons_9_2.xml
new file mode 100644
index 0000000000..aeb8863846
--- /dev/null
+++ b/.idea/libraries/Maven__org_ow2_asm_asm_commons_9_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_ow2_asm_asm_tree_9_2.xml b/.idea/libraries/Maven__org_ow2_asm_asm_tree_9_2.xml
new file mode 100644
index 0000000000..b63cc1665a
--- /dev/null
+++ b/.idea/libraries/Maven__org_ow2_asm_asm_tree_9_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_projectlombok_lombok_1_18_22.xml b/.idea/libraries/Maven__org_projectlombok_lombok_1_18_22.xml
new file mode 100644
index 0000000000..72b596efe4
--- /dev/null
+++ b/.idea/libraries/Maven__org_projectlombok_lombok_1_18_22.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_36.xml b/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_36.xml
new file mode 100644
index 0000000000..5d5c14ba2c
--- /dev/null
+++ b/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_36.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_36.xml b/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_36.xml
new file mode 100644
index 0000000000..2d759c1e91
--- /dev/null
+++ b/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_36.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_6_4.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_6_4.xml
new file mode 100644
index 0000000000..2b8b091030
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_6_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_6_4.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_6_4.xml
new file mode 100644
index 0000000000..6c8ef9a4f3
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_6_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_devtools_2_6_4.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_devtools_2_6_4.xml
new file mode 100644
index 0000000000..16766fa35f
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_devtools_2_6_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_6_4.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_6_4.xml
new file mode 100644
index 0000000000..6af0306264
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_6_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_2_6_4.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_2_6_4.xml
new file mode 100644
index 0000000000..027b517d96
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_2_6_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_jpa_2_6_4.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_jpa_2_6_4.xml
new file mode 100644
index 0000000000..57ff45542f
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_jpa_2_6_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_6_4.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_6_4.xml
new file mode 100644
index 0000000000..a84fdf03b3
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_6_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_6_4.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_6_4.xml
new file mode 100644
index 0000000000..7e673db85a
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_6_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_log4j2_2_6_4.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_log4j2_2_6_4.xml
new file mode 100644
index 0000000000..a749e25d7d
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_log4j2_2_6_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_security_2_6_4.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_security_2_6_4.xml
new file mode 100644
index 0000000000..1e627ab1bf
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_security_2_6_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_6_4.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_6_4.xml
new file mode 100644
index 0000000000..f765e7c6be
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_6_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_thymeleaf_2_6_4.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_thymeleaf_2_6_4.xml
new file mode 100644
index 0000000000..e8254a2015
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_thymeleaf_2_6_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_6_4.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_6_4.xml
new file mode 100644
index 0000000000..45e4f695f4
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_6_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_validation_2_6_4.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_validation_2_6_4.xml
new file mode 100644
index 0000000000..cad1684f04
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_validation_2_6_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_6_4.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_6_4.xml
new file mode 100644
index 0000000000..d4e7821cf4
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_6_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_6_4.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_6_4.xml
new file mode 100644
index 0000000000..d60e087602
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_6_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_6_4.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_6_4.xml
new file mode 100644
index 0000000000..9d9e5f33a9
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_6_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_data_spring_data_commons_2_6_2.xml b/.idea/libraries/Maven__org_springframework_data_spring_data_commons_2_6_2.xml
new file mode 100644
index 0000000000..70d6dc0652
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_data_spring_data_commons_2_6_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_data_spring_data_jpa_2_6_2.xml b/.idea/libraries/Maven__org_springframework_data_spring_data_jpa_2_6_2.xml
new file mode 100644
index 0000000000..208122f1d0
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_data_spring_data_jpa_2_6_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_security_spring_security_config_5_6_2.xml b/.idea/libraries/Maven__org_springframework_security_spring_security_config_5_6_2.xml
new file mode 100644
index 0000000000..4a707c0aab
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_security_spring_security_config_5_6_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_security_spring_security_core_5_6_2.xml b/.idea/libraries/Maven__org_springframework_security_spring_security_core_5_6_2.xml
new file mode 100644
index 0000000000..44b8a1990b
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_security_spring_security_core_5_6_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_security_spring_security_crypto_5_6_2.xml b/.idea/libraries/Maven__org_springframework_security_spring_security_crypto_5_6_2.xml
new file mode 100644
index 0000000000..d7aa501829
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_security_spring_security_crypto_5_6_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_security_spring_security_oauth2_client_5_6_2.xml b/.idea/libraries/Maven__org_springframework_security_spring_security_oauth2_client_5_6_2.xml
new file mode 100644
index 0000000000..c132a5abc6
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_security_spring_security_oauth2_client_5_6_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_security_spring_security_oauth2_core_5_6_2.xml b/.idea/libraries/Maven__org_springframework_security_spring_security_oauth2_core_5_6_2.xml
new file mode 100644
index 0000000000..846514a854
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_security_spring_security_oauth2_core_5_6_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_security_spring_security_test_5_6_2.xml b/.idea/libraries/Maven__org_springframework_security_spring_security_test_5_6_2.xml
new file mode 100644
index 0000000000..6eb9e0aeb9
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_security_spring_security_test_5_6_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_security_spring_security_web_5_6_2.xml b/.idea/libraries/Maven__org_springframework_security_spring_security_web_5_6_2.xml
new file mode 100644
index 0000000000..a5d9efad3b
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_security_spring_security_web_5_6_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_spring_aop_5_3_16.xml b/.idea/libraries/Maven__org_springframework_spring_aop_5_3_16.xml
new file mode 100644
index 0000000000..2615fc68d8
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_spring_aop_5_3_16.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_spring_aspects_5_3_16.xml b/.idea/libraries/Maven__org_springframework_spring_aspects_5_3_16.xml
new file mode 100644
index 0000000000..a08c1012fc
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_spring_aspects_5_3_16.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_spring_beans_5_3_16.xml b/.idea/libraries/Maven__org_springframework_spring_beans_5_3_16.xml
new file mode 100644
index 0000000000..90b06170da
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_spring_beans_5_3_16.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_spring_context_5_3_16.xml b/.idea/libraries/Maven__org_springframework_spring_context_5_3_16.xml
new file mode 100644
index 0000000000..4e9d9260b6
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_spring_context_5_3_16.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_spring_core_5_3_16.xml b/.idea/libraries/Maven__org_springframework_spring_core_5_3_16.xml
new file mode 100644
index 0000000000..ebd2750b40
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_spring_core_5_3_16.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_spring_expression_5_3_16.xml b/.idea/libraries/Maven__org_springframework_spring_expression_5_3_16.xml
new file mode 100644
index 0000000000..5abe8374a9
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_spring_expression_5_3_16.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_spring_jcl_5_3_16.xml b/.idea/libraries/Maven__org_springframework_spring_jcl_5_3_16.xml
new file mode 100644
index 0000000000..ca08b0fad7
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_spring_jcl_5_3_16.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_spring_jdbc_5_3_16.xml b/.idea/libraries/Maven__org_springframework_spring_jdbc_5_3_16.xml
new file mode 100644
index 0000000000..21d77d6251
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_spring_jdbc_5_3_16.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_spring_orm_5_3_16.xml b/.idea/libraries/Maven__org_springframework_spring_orm_5_3_16.xml
new file mode 100644
index 0000000000..be3697bb48
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_spring_orm_5_3_16.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_spring_test_5_3_16.xml b/.idea/libraries/Maven__org_springframework_spring_test_5_3_16.xml
new file mode 100644
index 0000000000..1120ff82c5
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_spring_test_5_3_16.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_spring_tx_5_3_16.xml b/.idea/libraries/Maven__org_springframework_spring_tx_5_3_16.xml
new file mode 100644
index 0000000000..0bf35238c4
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_spring_tx_5_3_16.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_spring_web_5_3_16.xml b/.idea/libraries/Maven__org_springframework_spring_web_5_3_16.xml
new file mode 100644
index 0000000000..6293afdb96
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_spring_web_5_3_16.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_spring_webmvc_5_3_16.xml b/.idea/libraries/Maven__org_springframework_spring_webmvc_5_3_16.xml
new file mode 100644
index 0000000000..1e95aa0c03
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_spring_webmvc_5_3_16.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_thymeleaf_extras_thymeleaf_extras_java8time_3_0_4_RELEASE.xml b/.idea/libraries/Maven__org_thymeleaf_extras_thymeleaf_extras_java8time_3_0_4_RELEASE.xml
new file mode 100644
index 0000000000..7b246ae1ca
--- /dev/null
+++ b/.idea/libraries/Maven__org_thymeleaf_extras_thymeleaf_extras_java8time_3_0_4_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_thymeleaf_extras_thymeleaf_extras_springsecurity5_3_1_1_RELEASE.xml b/.idea/libraries/Maven__org_thymeleaf_extras_thymeleaf_extras_springsecurity5_3_1_1_RELEASE.xml
new file mode 100644
index 0000000000..f1143be0c8
--- /dev/null
+++ b/.idea/libraries/Maven__org_thymeleaf_extras_thymeleaf_extras_springsecurity5_3_1_1_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_thymeleaf_thymeleaf_3_0_15_RELEASE.xml b/.idea/libraries/Maven__org_thymeleaf_thymeleaf_3_0_15_RELEASE.xml
new file mode 100644
index 0000000000..e17f90f34e
--- /dev/null
+++ b/.idea/libraries/Maven__org_thymeleaf_thymeleaf_3_0_15_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_thymeleaf_thymeleaf_spring5_3_0_15_RELEASE.xml b/.idea/libraries/Maven__org_thymeleaf_thymeleaf_spring5_3_0_15_RELEASE.xml
new file mode 100644
index 0000000000..910256d743
--- /dev/null
+++ b/.idea/libraries/Maven__org_thymeleaf_thymeleaf_spring5_3_0_15_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_unbescape_unbescape_1_1_6_RELEASE.xml b/.idea/libraries/Maven__org_unbescape_unbescape_1_1_6_RELEASE.xml
new file mode 100644
index 0000000000..2334aa0538
--- /dev/null
+++ b/.idea/libraries/Maven__org_unbescape_unbescape_1_1_6_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_8_4.xml b/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_8_4.xml
new file mode 100644
index 0000000000..23e67e6678
--- /dev/null
+++ b/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_8_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_yaml_snakeyaml_1_29.xml b/.idea/libraries/Maven__org_yaml_snakeyaml_1_29.xml
new file mode 100644
index 0000000000..c871529980
--- /dev/null
+++ b/.idea/libraries/Maven__org_yaml_snakeyaml_1_29.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000000..9c37d0cc05
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000000..96eaa115d1
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/sqldialects.xml b/.idea/sqldialects.xml
new file mode 100644
index 0000000000..6c940772f5
--- /dev/null
+++ b/.idea/sqldialects.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
new file mode 100644
index 0000000000..2b63946d5b
--- /dev/null
+++ b/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000000..35eb1ddfbb
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Poseiden-skeleton/pom.xml b/Poseiden-skeleton/pom.xml
index a7dcbc04dc..fee04e29ec 100644
--- a/Poseiden-skeleton/pom.xml
+++ b/Poseiden-skeleton/pom.xml
@@ -15,22 +15,17 @@
org.springframework.boot
spring-boot-starter-parent
- 2.0.4.RELEASE
-
+ 2.6.4
+
UTF-8
UTF-8
- 1.8
+ 11
-
- org.springframework.boot
- spring-boot-starter-test
- test
-
org.springframework.boot
spring-boot-starter-data-jpa
@@ -43,10 +38,6 @@
org.springframework.boot
spring-boot-starter-thymeleaf
-
- org.springframework.boot
- spring-boot-starter-security
-
org.springframework.boot
spring-boot-devtools
@@ -55,12 +46,122 @@
mysql
mysql-connector-java
+ runtime
+
+
+
+ org.springframework.boot
+ spring-boot-starter-security
+
+
+ org.thymeleaf.extras
+ thymeleaf-extras-springsecurity5
+ 3.1.1.RELEASE
+
+
+ org.springframework.security
+ spring-security-oauth2-client
+
+
+
+ org.springframework.boot
+ spring-boot-starter-validation
+
+
+ javax.annotation
+ javax.annotation-api
+ 1.3.2
+
+
+ org.passay
+ passay
+ 1.6.2
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter
+
+
+ org.springframework.boot
+ spring-boot-starter-logging
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-log4j2
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ org.springframework.security
+ spring-security-test
+ test
+
+
+ org.assertj
+ assertj-core
+ test
+
+ org.junit.jupiter
+ junit-jupiter-engine
+ test
+
+
+
+ org.mockito
+ mockito-junit-jupiter
+ test
+
+
+
com.h2database
h2
+ test
-
+
+
+ org.springdoc
+ springdoc-openapi-ui
+ 1.6.14
+
+
+
+ org.jacoco
+ jacoco-maven-plugin
+ 0.8.8
+
+
+ org.projectlombok
+ lombok
+
+
+ org.passay
+ passay
+ 1.0
+
+
+
+
+
+
+
+
+
+
+ com.h2database
+ h2
+
+
@@ -68,7 +169,76 @@
org.springframework.boot
spring-boot-maven-plugin
+
+ org.apache.maven.plugins
+ maven-failsafe-plugin
+
+
+
+ integration-test
+ verify
+
+
+
+
+
+ org.jacoco
+ jacoco-maven-plugin
+ 0.8.8
+
+
+
+ prepare-agent
+
+
+
+ jacoco-report
+ prepare-package
+
+ report
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-site-plugin
+ 3.9.0
+
+
+
+
+ org.apache.maven.plugins
+ maven-project-info-reports-plugin
+ 3.2.2
+
+
+ org.apache.maven.plugins
+ maven-surefire-report-plugin
+ 3.0.0-M3
+
+
+
+
+ org.jacoco
+ jacoco-maven-plugin
+
+
+
+
+ report
+
+
+
+
+
+
+
+
+
+
-
+
+
\ No newline at end of file
diff --git a/Poseiden-skeleton/spring-boot-skeleton.iml b/Poseiden-skeleton/spring-boot-skeleton.iml
index bac7aedc30..e1504ad576 100644
--- a/Poseiden-skeleton/spring-boot-skeleton.iml
+++ b/Poseiden-skeleton/spring-boot-skeleton.iml
@@ -1,6 +1,28 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -11,92 +33,151 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/Application.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/Application.java
index f53aeb0fba..7f187ac385 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/Application.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/Application.java
@@ -2,6 +2,8 @@
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.Bean;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
@SpringBootApplication
public class Application {
@@ -9,4 +11,6 @@ public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
+
+
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/BidListController.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/BidListController.java
index a31b9b53ca..f2a59b1ede 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/BidListController.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/BidListController.java
@@ -1,6 +1,10 @@
package com.nnk.springboot.controllers;
import com.nnk.springboot.domain.BidList;
+import com.nnk.springboot.exception.DataNotFoundException;
+import com.nnk.springboot.service.IBidListService;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
@@ -10,46 +14,130 @@
import org.springframework.web.bind.annotation.RequestMapping;
import javax.validation.Valid;
+import java.security.Principal;
+import java.util.Optional;
+/**
+ * Bid List Controller
+ */
@Controller
public class BidListController {
- // TODO: Inject Bid service
+ /**
+ * SLF4J Logger instance.
+ */
+ private static final Logger logger = LogManager.getLogger("BidListController");
+
+
+ /**
+ * IBidListService instance.
+ */
+ private IBidListService bidListService;
+
+
+ /**
+ * @param bidListService
+ */
+ public BidListController(IBidListService bidListService) {
+ this.bidListService = bidListService;
+ }
+
+ /**
+ * @param model
+ * @param principal
+ * @return
+ */
@RequestMapping("/bidList/list")
- public String home(Model model)
- {
- // TODO: call service find all bids to show to the view
+ public String home(Model model, Principal principal) {
+ logger.info("@RequestMapping(\"/bidList/list\")");
+ model.addAttribute("bidList", bidListService.findAll());
return "bidList/list";
}
+ /**
+ * @param bid
+ * @return
+ */
@GetMapping("/bidList/add")
public String addBidForm(BidList bid) {
+ logger.info("@GetMapping(\"/bidList/add\")");
return "bidList/add";
}
+ /**
+ * @param bid
+ * @param result
+ * @param model
+ * @return
+ */
@PostMapping("/bidList/validate")
public String validate(@Valid BidList bid, BindingResult result, Model model) {
- // TODO: check data valid and save to db, after saving return bid list
- return "bidList/add";
+ logger.info("@PostMapping(\"/bidList/validate\")");
+ /**form data validation*/
+ if (result.hasErrors()) {
+ return "/bidList/add";
+ }
+ /**save in to dataBase:*/
+ bidListService.save(bid);
+ //redirection do not use the current Model
+ return "redirect:/bidList/list";
}
+ /**
+ * @param id
+ * @param model
+ * @return bidList update form
+ * @throws DataNotFoundException
+ */
@GetMapping("/bidList/update/{id}")
- public String showUpdateForm(@PathVariable("id") Integer id, Model model) {
- // TODO: get Bid by Id and to model then show to the form
+ public String showUpdateForm(@PathVariable("id") Integer id, Model model) throws DataNotFoundException {
+ logger.info("@GetMapping(\"/bidList/update/{id}\")");
+ Optional bidList = bidListService.findById(id);
+ if (bidList.isPresent()) {
+ model.addAttribute("Error", "This " + bidList + " is present");
+ }
+
+ model.addAttribute("bidList", bidList.get());
return "bidList/update";
}
+ /**
+ * @param id
+ * @param bidList
+ * @param result
+ * @param model
+ * @return
+ * @throws DataNotFoundException
+ */
@PostMapping("/bidList/update/{id}")
- public String updateBid(@PathVariable("id") Integer id, @Valid BidList bidList,
- BindingResult result, Model model) {
- // TODO: check required fields, if valid call service to update Bid and return list Bid
+ public String updateBid(@PathVariable("id") Integer id, BidList bidList,
+ BindingResult result, Model model) throws DataNotFoundException {
+ logger.info("@PostMapping(\"/bidList/update/{id}\")");
+ if (result.hasErrors()) {
+ logger.error("result error :{}", result.getFieldError());
+ return "bidList/update";
+ }
+ bidList.setBidListId(id);
+ bidListService.save(bidList);
+ model.addAttribute("bidList", bidListService.findAll());
return "redirect:/bidList/list";
}
+ /**
+ * @param id
+ * @param model
+ * @return
+ * @throws DataNotFoundException
+ */
@GetMapping("/bidList/delete/{id}")
- public String deleteBid(@PathVariable("id") Integer id, Model model) {
- // TODO: Find Bid by Id and delete the bid, return to Bid list
+ public String deleteBid(@PathVariable("id") Integer id, Model model) throws DataNotFoundException {
+ logger.info("@GetMapping(\"/bidList/delete/{id}\"");
+// Optional bid = bidListService.findById(id);
+ bidListService.delete(id);
+ model.addAttribute("bids", bidListService.findAll());
return "redirect:/bidList/list";
}
+
+
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/CurveController.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/CurveController.java
index db69caf549..32f83aba92 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/CurveController.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/CurveController.java
@@ -1,6 +1,10 @@
package com.nnk.springboot.controllers;
import com.nnk.springboot.domain.CurvePoint;
+import com.nnk.springboot.exception.DataNotFoundException;
+import com.nnk.springboot.service.ICurvePointService;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
@@ -10,45 +14,124 @@
import org.springframework.web.bind.annotation.RequestMapping;
import javax.validation.Valid;
+import java.security.Principal;
+import java.util.Optional;
+/**
+ * Curve Controller
+ */
@Controller
public class CurveController {
- // TODO: Inject Curve Point service
+ /**
+ * SLF4J Logger instance.
+ */
+ private static final Logger logger = LogManager.getLogger("BidListController");
+
+ /**
+ * ICurvePointService instance.
+ */
+ private ICurvePointService curvePointService;
+
+ /**
+ * @param curvePointService
+ */
+ public CurveController(ICurvePointService curvePointService) {
+ this.curvePointService = curvePointService;
+ }
+
+
+ /**
+ * @param model
+ * @param principal
+ * @return curvePoint/list
+ */
@RequestMapping("/curvePoint/list")
- public String home(Model model)
- {
- // TODO: find all Curve Point, add to model
+ public String home(Model model, Principal principal) {
+ logger.info("@RequestMapping(\"/curvePoint/List\")");
+ model.addAttribute("curvePoints", curvePointService.findAll());
return "curvePoint/list";
}
+ /**
+ * @param bid
+ * @return
+ */
@GetMapping("/curvePoint/add")
public String addBidForm(CurvePoint bid) {
+ logger.info("@GetMapping(\"/curvePoint/add\")");
return "curvePoint/add";
}
+ /**
+ * @param curvePoint
+ * @param result
+ * @param model
+ * @return
+ */
@PostMapping("/curvePoint/validate")
public String validate(@Valid CurvePoint curvePoint, BindingResult result, Model model) {
- // TODO: check data valid and save to db, after saving return Curve list
- return "curvePoint/add";
+ logger.info("@PostMapping(\"/curvePoint/validate\")");
+ /**form data validation*/
+ if (result.hasErrors()) {
+ return "/curvePoint/add";
+ }
+ /**save in to dataBase:*/
+ curvePointService.save(curvePoint);
+
+ return "redirect:/curvePoint/list";
}
+ /**
+ * @param id
+ * @param model
+ * @return curvePoint update form
+ * @throws DataNotFoundException
+ */
@GetMapping("/curvePoint/update/{id}")
- public String showUpdateForm(@PathVariable("id") Integer id, Model model) {
- // TODO: get CurvePoint by Id and to model then show to the form
+ public String showUpdateForm(@PathVariable("id") Integer id, Model model) throws DataNotFoundException {
+ logger.info("@GetMapping(\"/curvePoint/update/{id}\")");
+ Optional curvePoint = curvePointService.findById(id);
+ if(curvePoint.isPresent()){
+ model.addAttribute("error", "This" + curvePoint + "is present");
+ }
+ model.addAttribute("curvePoint", curvePoint.get());
return "curvePoint/update";
}
+ /**
+ * @param id
+ * @param curvePoint
+ * @param result
+ * @param model
+ * @return
+ */
@PostMapping("/curvePoint/update/{id}")
- public String updateBid(@PathVariable("id") Integer id, @Valid CurvePoint curvePoint,
- BindingResult result, Model model) {
- // TODO: check required fields, if valid call service to update Curve and return Curve list
+ public String updateCurvePoint(@PathVariable("id") Integer id, @Valid CurvePoint curvePoint,
+ BindingResult result, Model model) throws DataNotFoundException {
+ logger.info("@PostMapping(\"/curvePoint/update/{id}\")");
+ if (result.hasErrors()) {
+ logger.error("result error :{}", result.getFieldError());
+ return "curvePoint/update";
+ }
+ curvePoint.setId(id);
+ curvePointService.save(curvePoint);
+ model.addAttribute("curvePoint", curvePointService.findAll());
return "redirect:/curvePoint/list";
}
+ /**
+ * @param id
+ * @param model
+ * @return
+ * @throws DataNotFoundException
+ */
@GetMapping("/curvePoint/delete/{id}")
- public String deleteBid(@PathVariable("id") Integer id, Model model) {
- // TODO: Find Curve by Id and delete the Curve, return to Curve list
+ public String deleteCurvePoint(@PathVariable("id") Integer id, Model model) throws DataNotFoundException {
+ logger.info("@GetMapping(\"/curvePoint/delete/{id}\"");
+// Optional curvePoint = curvePointService.findById(id);
+ curvePointService.delete(id);
+ model.addAttribute("curvePoints", curvePointService.findAll());
return "redirect:/curvePoint/list";
}
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/HomeController.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/HomeController.java
index 50685b213f..6ca3db11e4 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/HomeController.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/HomeController.java
@@ -14,9 +14,8 @@ public String home(Model model)
}
@RequestMapping("/admin/home")
- public String adminHome(Model model)
- {
- return "redirect:/bidList/list";
+ public String adminHome(Model model){
+ return "redirect:/home";
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/LoginController.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/LoginController.java
index ef0c657c72..6566ae73d5 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/LoginController.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/LoginController.java
@@ -1,27 +1,64 @@
package com.nnk.springboot.controllers;
+import com.nnk.springboot.domain.User;
import com.nnk.springboot.repositories.UserRepository;
+import com.nnk.springboot.service.IUserService;
+import com.nnk.springboot.web.dto.UserRegistrationDto;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
+import javax.annotation.security.RolesAllowed;
+import java.util.List;
+
+/**
+ * Login Controller
+ */
@Controller
-@RequestMapping("app")
public class LoginController {
- @Autowired
+
+ /**
+ *
+ */
private UserRepository userRepository;
- @GetMapping("login")
+ /**
+ * @param userRepository
+ */
+ public LoginController(UserRepository userRepository) {
+ this.userRepository = userRepository;
+ }
+
+ private IUserService userService;
+
+
+
+ @GetMapping("/login")
public ModelAndView login() {
ModelAndView mav = new ModelAndView();
mav.setViewName("login");
return mav;
}
- @GetMapping("secure/article-details")
+ @RequestMapping("/login-success")
+ public ModelAndView getInfo() {
+ ModelAndView mav = new ModelAndView();
+ mav.setViewName("redirect:/");
+ return mav;
+ }
+
+
+ @GetMapping("/secure/article-details")
public ModelAndView getAllUserArticles() {
ModelAndView mav = new ModelAndView();
mav.addObject("users", userRepository.findAll());
@@ -29,12 +66,14 @@ public ModelAndView getAllUserArticles() {
return mav;
}
- @GetMapping("error")
+ @GetMapping("/403")
public ModelAndView error() {
ModelAndView mav = new ModelAndView();
- String errorMessage= "You are not authorized for the requested data.";
+ String errorMessage = "You are not authorized for the requested data.";
mav.addObject("errorMsg", errorMessage);
mav.setViewName("403");
return mav;
}
+
+
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/RatingController.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/RatingController.java
index 5e15e68fbc..2d104d0610 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/RatingController.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/RatingController.java
@@ -1,6 +1,11 @@
package com.nnk.springboot.controllers;
+import com.nnk.springboot.domain.BidList;
import com.nnk.springboot.domain.Rating;
+import com.nnk.springboot.exception.DataNotFoundException;
+import com.nnk.springboot.service.IRatingService;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
@@ -10,45 +15,112 @@
import org.springframework.web.bind.annotation.RequestMapping;
import javax.validation.Valid;
+import java.util.Optional;
@Controller
public class RatingController {
- // TODO: Inject Rating service
+ /**
+ * SLF4J Logger instance.
+ */
+ private static final Logger logger = LogManager.getLogger("RatingController");
+
+ /**
+ * IBidListService instance.
+ */
+ private IRatingService ratingService;
+
+ /**
+ * @param ratingService
+ */
+ public RatingController(IRatingService ratingService) {
+ this.ratingService = ratingService;
+ }
+
+
+ /**
+ * @param model
+ * @return "rating/list"
+ */
@RequestMapping("/rating/list")
- public String home(Model model)
- {
- // TODO: find all Rating, add to model
+ public String home(Model model) {
+ logger.info("@RequestMapping(\"/rating/list\")");
+ model.addAttribute("ratings", ratingService.findAll());
return "rating/list";
}
+ /**
+ * @param rating
+ * @return "rating/add"
+ */
@GetMapping("/rating/add")
public String addRatingForm(Rating rating) {
+ logger.info("@RequestMapping(\"/rating/add\")");
return "rating/add";
}
@PostMapping("/rating/validate")
public String validate(@Valid Rating rating, BindingResult result, Model model) {
- // TODO: check data valid and save to db, after saving return Rating list
- return "rating/add";
+ logger.info("@PostMapping(\"/rating/validate\")");
+ /**form data validation*/
+ if (result.hasErrors()) {
+ return "rating/add";
+ }
+ ratingService.save(rating);
+ return "redirect:/rating/list";
}
+ /**
+ * @param id
+ * @param model
+ * @return "rating/update" form
+ * @throws DataNotFoundException
+ */
@GetMapping("/rating/update/{id}")
- public String showUpdateForm(@PathVariable("id") Integer id, Model model) {
- // TODO: get Rating by Id and to model then show to the form
+ public String showUpdateForm(@PathVariable("id") Integer id, Model model) throws DataNotFoundException {
+ logger.info("@GetMapping(\"/rating/update/{id}\")");
+ Optional rating = ratingService.findById(id);
+ if(rating.isPresent() ){
+ model.addAttribute("Error", "This " + rating.get() + " is present");
+ }
+ model.addAttribute("rating",rating.get());
return "rating/update";
}
+ /**
+ * @param id
+ * @param rating
+ * @param result
+ * @param model
+ * @return rating update "redirect:/rating/list"
+ */
@PostMapping("/rating/update/{id}")
public String updateRating(@PathVariable("id") Integer id, @Valid Rating rating,
- BindingResult result, Model model) {
- // TODO: check required fields, if valid call service to update Rating and return Rating list
+ BindingResult result, Model model) throws DataNotFoundException {
+ logger.info("@PostMapping(\"/rating/update/{id}\")");
+ if (result.hasErrors()) {
+ logger.error("result error :{}", result.getFieldError());
+ return "rating/update";
+ }
+ rating.setId(id);
+ ratingService.save(rating);
+ model.addAttribute("rating", ratingService.findAll());
return "redirect:/rating/list";
}
+
+ /**
+ * @param id
+ * @param model
+ * @return delete rating
+ * @throws DataNotFoundException
+ */
@GetMapping("/rating/delete/{id}")
- public String deleteRating(@PathVariable("id") Integer id, Model model) {
- // TODO: Find Rating by Id and delete the Rating, return to Rating list
+ public String deleteRating(@PathVariable("id") Integer id, Model model) throws DataNotFoundException {
+ logger.info("@GetMapping(\"/rating/delete/{id}\"");
+
+ ratingService.delete(id);
+ model.addAttribute("ratings", ratingService.findAll());
return "redirect:/rating/list";
}
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/RegistrationController.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/RegistrationController.java
new file mode 100644
index 0000000000..0fbfce2af3
--- /dev/null
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/RegistrationController.java
@@ -0,0 +1,69 @@
+package com.nnk.springboot.controllers;
+
+import com.nnk.springboot.service.IUserService;
+import com.nnk.springboot.web.dto.UserRegistrationDto;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.servlet.ModelAndView;
+
+/**
+ * Registration Controller
+ */
+@Controller
+@RequestMapping("/registration")
+public class RegistrationController {
+
+
+ /**
+ * IUserService instance
+ */
+ private IUserService userService;
+
+ /**
+ * @param userService
+ */
+ public RegistrationController(IUserService userService) {
+ this.userService = userService;
+ }
+
+ /**
+ * @passwordEncoder cryptage password
+ */
+ @Autowired
+ private BCryptPasswordEncoder passwordEncoder;
+
+
+
+ @ModelAttribute("user")
+ public UserRegistrationDto userRegistrationDto(){
+
+ return new UserRegistrationDto();
+ }
+
+ /**
+ * endpoint to get show form add contact
+ * @return registration page
+ */
+ @GetMapping
+ public ModelAndView showRegistrationForm() {
+ return new ModelAndView("registration");
+ }
+
+ /**
+ * @param registrationDto firstName, lastName, email, password
+ * endpoint to post parameter new contact
+ * @return registration?success page
+ */
+ @PostMapping
+ public String registerUserAccount(@ModelAttribute("user") UserRegistrationDto registrationDto) {
+ String cryptedPassword = passwordEncoder.encode(registrationDto.getPassword());
+ userService.saveUser(registrationDto, cryptedPassword);
+ return "redirect:/registration?success";
+ }
+
+}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/RuleNameController.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/RuleNameController.java
index b9e72b1ba6..b34b849742 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/RuleNameController.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/RuleNameController.java
@@ -1,6 +1,11 @@
package com.nnk.springboot.controllers;
+import com.nnk.springboot.domain.Rating;
import com.nnk.springboot.domain.RuleName;
+import com.nnk.springboot.exception.DataNotFoundException;
+import com.nnk.springboot.service.IRuleNameService;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
@@ -10,45 +15,97 @@
import org.springframework.web.bind.annotation.RequestMapping;
import javax.validation.Valid;
+import java.util.Optional;
@Controller
public class RuleNameController {
- // TODO: Inject RuleName service
+ /**
+ * SLF4J Logger instance.
+ */
+ private static final Logger logger = LogManager.getLogger("RuleNameController");
+
+ /**
+ * IRuleNameService instance.
+ */
+ private IRuleNameService ruleNameService;
+
+ /**
+ * @param ruleNameService
+ */
+ public RuleNameController(IRuleNameService ruleNameService) {
+ this.ruleNameService = ruleNameService;
+ }
+
+
+ /**
+ * @param model
+ * @return ruleName list page
+ */
@RequestMapping("/ruleName/list")
- public String home(Model model)
- {
- // TODO: find all RuleName, add to model
+ public String home(Model model) {
+ logger.info("@RequestMapping(\"/ruleName/list\")");
+ model.addAttribute("ruleNames", ruleNameService.findAll());
return "ruleName/list";
}
+ /**
+ * @param bid
+ * @return ruleName add form
+ */
@GetMapping("/ruleName/add")
public String addRuleForm(RuleName bid) {
+ logger.info("@RequestMapping(\"/ruleName/add\")");
return "ruleName/add";
}
+ /**
+ * @param ruleName
+ * @param result
+ * @param model
+ * @return add New RuleName /ruleName/list
+ */
@PostMapping("/ruleName/validate")
public String validate(@Valid RuleName ruleName, BindingResult result, Model model) {
- // TODO: check data valid and save to db, after saving return RuleName list
- return "ruleName/add";
+ logger.info("@PostMapping(\"/ruleName/validate\")");
+ /**form data validation*/
+ if (result.hasErrors()) {
+ return "ruleName/add";
+ }
+ ruleNameService.save(ruleName);
+ return "redirect:/ruleName/list";
}
@GetMapping("/ruleName/update/{id}")
- public String showUpdateForm(@PathVariable("id") Integer id, Model model) {
- // TODO: get RuleName by Id and to model then show to the form
+ public String showUpdateForm(@PathVariable("id") Integer id, Model model) throws DataNotFoundException {
+ logger.info("@GetMapping(\"/ruleName/update/{id}\")");
+ Optional ruleNames = ruleNameService.findById(id);
+ if (ruleNames.isPresent()) {
+ model.addAttribute("error", "This " + ruleNames.get() + "is present");
+ }
+ model.addAttribute("ruleName", ruleNames.get());
return "ruleName/update";
}
@PostMapping("/ruleName/update/{id}")
public String updateRuleName(@PathVariable("id") Integer id, @Valid RuleName ruleName,
- BindingResult result, Model model) {
- // TODO: check required fields, if valid call service to update RuleName and return RuleName list
+ BindingResult result, Model model) {
+ logger.info("@PostMapping(\"/ruleName/update/{id}\")");
+ if (result.hasErrors()) {
+ logger.error("result error :{}", result.getFieldError());
+ return "ruleName/update";
+ }
+ ruleName.setId(id);
+ ruleNameService.save(ruleName);
+ model.addAttribute("ruleNames", ruleNameService.findAll());
return "redirect:/ruleName/list";
}
@GetMapping("/ruleName/delete/{id}")
- public String deleteRuleName(@PathVariable("id") Integer id, Model model) {
- // TODO: Find RuleName by Id and delete the RuleName, return to Rule list
+ public String deleteRuleName(@PathVariable("id") Integer id, Model model) throws DataNotFoundException {
+ logger.info("@GetMapping(\"/ruleName/delete/{id}\"");
+ ruleNameService.delete(id);
+ model.addAttribute("ruleNames", ruleNameService.findAll());
return "redirect:/ruleName/list";
}
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/TradeController.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/TradeController.java
index 4e667eec22..24faf6ef7c 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/TradeController.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/TradeController.java
@@ -1,6 +1,11 @@
package com.nnk.springboot.controllers;
+import com.nnk.springboot.domain.CurvePoint;
import com.nnk.springboot.domain.Trade;
+import com.nnk.springboot.exception.DataNotFoundException;
+import com.nnk.springboot.service.ITradeService;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
@@ -10,45 +15,121 @@
import org.springframework.web.bind.annotation.RequestMapping;
import javax.validation.Valid;
+import java.util.Optional;
+/**
+ * TradeController Controller
+ */
@Controller
public class TradeController {
- // TODO: Inject Trade service
+ /**
+ * SLF4J Logger instance.
+ */
+ private static final Logger logger = LogManager.getLogger("TradeController");
+
+ /**
+ * ITradeService instance.
+ */
+ private ITradeService tradeService;
+
+
+ /**
+ * @param tradeService
+ */
+ public TradeController(ITradeService tradeService) {
+ this.tradeService = tradeService;
+ }
+
+
+ /**
+ * @param model
+ * @return trades list
+ */
@RequestMapping("/trade/list")
- public String home(Model model)
- {
- // TODO: find all Trade, add to model
+ public String home(Model model) {
+ logger.info("@RequestMapping(\"/trade/list\")");
+ model.addAttribute("trades", tradeService.findAll());
return "trade/list";
}
+ /**
+ * @param trade
+ * @return trade add page
+ */
@GetMapping("/trade/add")
- public String addUser(Trade bid) {
+ public String addUser(Trade trade) {
+ logger.info("@GetMapping(\"/trade/add\")");
return "trade/add";
}
+ /**
+ * @param trade
+ * @param result
+ * @param model
+ * @return add new trade
+ */
@PostMapping("/trade/validate")
public String validate(@Valid Trade trade, BindingResult result, Model model) {
- // TODO: check data valid and save to db, after saving return Trade list
- return "trade/add";
+ logger.info("@PostMapping(\"/trade/validate\")");
+ /**form data validation*/
+ if (result.hasErrors()) {
+ return "/curvePoint/add";
+ }
+ /**save in to dataBase:*/
+ tradeService.save(trade);
+ return "redirect:/trade/list";
}
+ /**
+ * @param id
+ * @param model
+ * @return update trade
+ */
@GetMapping("/trade/update/{id}")
- public String showUpdateForm(@PathVariable("id") Integer id, Model model) {
- // TODO: get Trade by Id and to model then show to the form
+ public String showUpdateForm(@PathVariable("id") Integer id, Model model) throws DataNotFoundException {
+ logger.info("@GetMapping(\"/trade/update/{id}\")");
+ Optional trade = tradeService.findById(id);
+ if(trade.isPresent()){
+ model.addAttribute("error", "This" + trade + "is present");
+ }
+ model.addAttribute("trade", trade.get());
return "trade/update";
}
+ /**
+ * @param id
+ * @param trade
+ * @param result
+ * @param model
+ * @return update trade
+ */
@PostMapping("/trade/update/{id}")
public String updateTrade(@PathVariable("id") Integer id, @Valid Trade trade,
- BindingResult result, Model model) {
- // TODO: check required fields, if valid call service to update Trade and return Trade list
+ BindingResult result, Model model) {
+ logger.info("@PostMapping(\"/trade/update/{id}\")");
+ if (result.hasErrors()) {
+ logger.error("result error :{}", result.getFieldError());
+ return "trade/update";
+ }
+ trade.setTradeId(id);
+ tradeService.save(trade);
+ model.addAttribute("trade", tradeService.findAll());
return "redirect:/trade/list";
}
+ /**
+ * @param id
+ * @param model
+ * @return delete trade
+ * @throws DataNotFoundException
+ */
@GetMapping("/trade/delete/{id}")
- public String deleteTrade(@PathVariable("id") Integer id, Model model) {
- // TODO: Find Trade by Id and delete the Trade, return to Trade list
+ public String deleteTrade(@PathVariable("id") Integer id, Model model) throws DataNotFoundException {
+ logger.info("@GetMapping(\"/trade/delete/{id}\"");
+
+ tradeService.delete(id);
+ model.addAttribute("trades", tradeService.findAll());
return "redirect:/trade/list";
}
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/UserController.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/UserController.java
index 29e30be3d6..1d62e311f9 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/UserController.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/UserController.java
@@ -2,7 +2,8 @@
import com.nnk.springboot.domain.User;
import com.nnk.springboot.repositories.UserRepository;
-import org.springframework.beans.factory.annotation.Autowired;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
@@ -16,12 +17,25 @@
@Controller
public class UserController {
- @Autowired
+
+ /**
+ * SLF4J Logger instance.
+ */
+ private static final Logger logger = LogManager.getLogger("TradeController");
+
+
private UserRepository userRepository;
+ /**
+ * @param userRepository
+ */
+ public UserController(UserRepository userRepository) {
+ this.userRepository = userRepository;
+ }
+
+
@RequestMapping("/user/list")
- public String home(Model model)
- {
+ public String home(Model model) {
model.addAttribute("users", userRepository.findAll());
return "user/list";
}
@@ -36,6 +50,7 @@ public String validate(@Valid User user, BindingResult result, Model model) {
if (!result.hasErrors()) {
BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
user.setPassword(encoder.encode(user.getPassword()));
+ user.setRole(user.getRole());
userRepository.save(user);
model.addAttribute("users", userRepository.findAll());
return "redirect:/user/list";
@@ -43,8 +58,14 @@ public String validate(@Valid User user, BindingResult result, Model model) {
return "user/add";
}
+ /**
+ * @param id
+ * @param model
+ * @return
+ */
@GetMapping("/user/update/{id}")
public String showUpdateForm(@PathVariable("id") Integer id, Model model) {
+ logger.debug("get request user/update/{}", id);
User user = userRepository.findById(id).orElseThrow(() -> new IllegalArgumentException("Invalid user Id:" + id));
user.setPassword("");
model.addAttribute("user", user);
@@ -66,6 +87,11 @@ public String updateUser(@PathVariable("id") Integer id, @Valid User user,
return "redirect:/user/list";
}
+ /**
+ * @param id
+ * @param model
+ * @return delete user by id
+ */
@GetMapping("/user/delete/{id}")
public String deleteUser(@PathVariable("id") Integer id, Model model) {
User user = userRepository.findById(id).orElseThrow(() -> new IllegalArgumentException("Invalid user Id:" + id));
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/apiRest/BidListApiRestController.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/apiRest/BidListApiRestController.java
new file mode 100644
index 0000000000..ae410fe430
--- /dev/null
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/apiRest/BidListApiRestController.java
@@ -0,0 +1,84 @@
+package com.nnk.springboot.controllers.apiRest;
+
+import com.nnk.springboot.domain.BidList;
+import com.nnk.springboot.exception.DataNotFoundException;
+import com.nnk.springboot.service.IBidListService;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Optional;
+
+@RestController
+public class BidListApiRestController {
+
+ /**
+ * SLF4J Logger instance.
+ */
+ private static final Logger logger = LogManager.getLogger("BidListApiRestController");
+
+
+ private IBidListService bidListService;
+
+ public BidListApiRestController(IBidListService bidListService) {
+ this.bidListService = bidListService;
+ }
+
+ /**
+ * @return
+ */
+ @GetMapping("/bidList/api")
+ public ResponseEntity> showRestBid() {
+ logger.info("@RequestMapping(\"/bidList/api\")");
+ return new ResponseEntity<>(bidListService.findAll(), HttpStatus.OK);
+ }
+
+ /**
+ * @param id
+ * @return bid httpStatus.Ok
+ * @throws DataNotFoundException
+ */
+ @GetMapping("/bidList/api/{id}")
+ public ResponseEntity> showRestBidById(@PathVariable int id) throws DataNotFoundException {
+ logger.info("@RequestMapping(\"/bidList/api/{id}\")");
+ Optional bid = bidListService.findById(id);
+
+ return new ResponseEntity<>(bidListService.findById(id), HttpStatus.OK);
+ }
+
+ /**
+ * @param bidList
+ * @return add bidList
+ */
+ @PostMapping("/bidList/api")
+ public BidList addRestBid(@RequestBody BidList bidList) {
+ logger.info("@PostMapping(\"/bidList/api\")");
+ bidListService.save(bidList);
+ return bidList;
+ }
+
+
+ @PutMapping("/bidList/api")
+ public BidList uploadRestBid(@RequestBody BidList bidList) {
+ logger.info("@PutMapping(\"/bidList/api/{}\") Id " + bidList + " as modified", bidList.getBidListId());
+
+ return bidListService.update(bidList);
+ }
+
+ /**
+ * @param bidListId
+ * @return
+ * @throws DataNotFoundException
+ */
+ @DeleteMapping("/bidList/api/{bidListId}")
+ public String deleteRestBid(@PathVariable int bidListId) throws DataNotFoundException {
+ logger.info("@DeleteMapping(\"/bidList/api/{bidListId}\")");
+
+ bidListService.delete(bidListId);
+ return "delete bid by id: " + bidListId + " success";
+ }
+
+}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/apiRest/CurveApiRestController.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/apiRest/CurveApiRestController.java
new file mode 100644
index 0000000000..a6aee98ac4
--- /dev/null
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/apiRest/CurveApiRestController.java
@@ -0,0 +1,80 @@
+package com.nnk.springboot.controllers.apiRest;
+
+import com.nnk.springboot.domain.BidList;
+import com.nnk.springboot.domain.CurvePoint;
+import com.nnk.springboot.exception.DataNotFoundException;
+import com.nnk.springboot.service.ICurvePointService;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Optional;
+
+/**
+ * RestController Curve
+ */
+@RestController
+public class CurveApiRestController {
+
+
+ /**
+ * SLF4J Logger instance.
+ */
+ private static final Logger logger = LogManager.getLogger("CurveApiRestController");
+
+
+ /**
+ * Instance of ICurvePointService
+ */
+ private ICurvePointService curvePointService;
+
+ /**
+ * @param curvePointService
+ */
+ public CurveApiRestController(ICurvePointService curvePointService) {
+ this.curvePointService = curvePointService;
+ }
+
+
+ @GetMapping("/curvePoint/api")
+ public ResponseEntity> showRestCurvePoint() {
+ logger.info("@RequestMapping(\"/curvePoint/api\")");
+ return new ResponseEntity<>(curvePointService.findAll(), HttpStatus.OK);
+ }
+
+ @GetMapping("/curvePoint/api/{id}")
+ public ResponseEntity> showRestCurvePointById(@PathVariable int id) throws DataNotFoundException {
+ logger.info("@RequestMapping(\"/curvePoint/api{id}\")");
+ Optional curvePoint = curvePointService.findById(id);
+
+ return new ResponseEntity<>(curvePointService.findById(id), HttpStatus.OK);
+ }
+
+ @PostMapping("/curvePoint/api")
+ public CurvePoint addRestCurvePoint(@RequestBody CurvePoint curvePoint) {
+ logger.info("@PostMapping(\"/curvePoint/api\")");
+ curvePointService.save(curvePoint);
+
+ return curvePoint ;
+ }
+
+ @PutMapping("/curvePoint/api")
+ public CurvePoint uploadRestCurvePoint(@RequestBody CurvePoint curvePoint) {
+ logger.info("@PutMapping(\"/curvePoint/api/{}\") Id " + curvePoint.getId()+ " as modified", curvePoint.getId());
+ curvePointService.update(curvePoint);
+ return curvePoint;
+ }
+
+ @DeleteMapping("/curvePoint/api/{curvePointId}")
+ public String deleteRestCurvePoint(@PathVariable int curvePointId) throws DataNotFoundException {
+ logger.info("@DeleteMapping(\"/bidList/api/{bidListId}\")");
+
+ curvePointService.delete(curvePointId);
+ return "delete bid id: " + curvePointId + " success";
+ }
+
+
+}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/apiRest/RatingApiRestController.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/apiRest/RatingApiRestController.java
new file mode 100644
index 0000000000..bd7e310b11
--- /dev/null
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/apiRest/RatingApiRestController.java
@@ -0,0 +1,92 @@
+package com.nnk.springboot.controllers.apiRest;
+
+import com.nnk.springboot.domain.BidList;
+import com.nnk.springboot.domain.Rating;
+import com.nnk.springboot.exception.DataNotFoundException;
+import com.nnk.springboot.service.IRatingService;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Optional;
+
+@RestController
+public class RatingApiRestController {
+
+ /**
+ * SLF4J Logger instance.
+ */
+ private static final Logger logger = LogManager.getLogger("RatingApiRestController");
+
+
+ private IRatingService ratingService;
+
+ public RatingApiRestController(IRatingService ratingService) {
+ this.ratingService = ratingService;
+ }
+
+
+ /**
+ * @return
+ */
+ @GetMapping("/ratings/api")
+ public ResponseEntity> showRestRating() {
+ logger.info("@RequestMapping(\"/ratings/api\")");
+ return new ResponseEntity<>(ratingService.findAll(), HttpStatus.OK);
+ }
+
+ /**
+ * @param id
+ * @return rating httpStatus.Ok
+ * @throws DataNotFoundException
+ */
+ @GetMapping("/rating/api/{id}")
+ public ResponseEntity> showRestRatingById(@PathVariable int id) throws DataNotFoundException {
+ logger.info("@RequestMapping(\"/rating/api/{id}\")");
+ Optional rating = ratingService.findById(id);
+
+ return new ResponseEntity<>(ratingService.findById(id), HttpStatus.OK);
+ }
+
+ /**
+ * @param rating
+ * @return add bidList
+ */
+ @PostMapping("/rating/api")
+ public Rating addRestRating(@RequestBody Rating rating) {
+ logger.info("@PostMapping(\"/rating/api\")");
+ ratingService.save(rating);
+ return rating;
+ }
+
+
+ /**
+ * @param rating
+ * @return
+ */
+ @PutMapping("/rating/api")
+ public Rating uploadRestRating(@RequestBody Rating rating) {
+ logger.info("@PutMapping(\"/rating/api/{}\") Id " + rating.getId() + " as modified", rating.getId());
+
+ return ratingService.update(rating);
+ }
+
+
+ /**
+ * @param ratingId
+ * @return
+ * @throws DataNotFoundException
+ */
+ @DeleteMapping("/rating/api/{ratingId}")
+ public String deleteRestRating(@PathVariable int ratingId) throws DataNotFoundException {
+ logger.info("@DeleteMapping(\"/rating/api/{ratingId}\")");
+
+ ratingService.delete(ratingId);
+ return "delete rating whit id: " + ratingId + " success";
+ }
+
+
+}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/apiRest/RuleNameApiRestController.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/apiRest/RuleNameApiRestController.java
new file mode 100644
index 0000000000..201016cd86
--- /dev/null
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/apiRest/RuleNameApiRestController.java
@@ -0,0 +1,89 @@
+package com.nnk.springboot.controllers.apiRest;
+
+import com.nnk.springboot.domain.BidList;
+import com.nnk.springboot.domain.RuleName;
+import com.nnk.springboot.exception.DataNotFoundException;
+import com.nnk.springboot.service.IRuleNameService;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Optional;
+
+@RestController
+public class RuleNameApiRestController {
+
+
+ /**
+ * SLF4J Logger instance.
+ */
+ private static final Logger logger = LogManager.getLogger("RuleNameApiRestController");
+
+
+ private IRuleNameService ruleNameService;
+
+ public RuleNameApiRestController(IRuleNameService ruleNameService) {
+ this.ruleNameService = ruleNameService;
+ }
+
+
+ /**
+ * @return
+ */
+ @GetMapping("/ruleNames/api")
+ public ResponseEntity> showRestRuleNames() {
+ logger.info("@RequestMapping(\"/ruleNames/api\")");
+ return new ResponseEntity<>(ruleNameService.findAll(), HttpStatus.OK);
+ }
+
+ /**
+ * @param id
+ * @return bid httpStatus.Ok
+ * @throws DataNotFoundException
+ */
+ @GetMapping("/ruleName/api/{id}")
+ public ResponseEntity> showRestRuleNameById(@PathVariable int id) throws DataNotFoundException {
+ logger.info("@RequestMapping(\"/ruleName/api/{id}\")");
+ Optional ruleName = ruleNameService.findById(id);
+ return new ResponseEntity<>(ruleNameService.findById(id), HttpStatus.OK);
+ }
+
+ /**
+ * @param ruleName
+ * @return add ruleName
+ */
+ @PostMapping("/ruleName/api")
+ public RuleName addRestRuleName(@RequestBody RuleName ruleName) {
+ logger.info("@PostMapping(\"/ruleName/api\")");
+ ruleNameService.save(ruleName);
+ return ruleName;
+ }
+
+
+ /**
+ * @param ruleName
+ * @return update ruleName
+ */
+ @PutMapping("/ruleName/api")
+ public RuleName uploadRestRuleName(@RequestBody RuleName ruleName) {
+ logger.info("@PutMapping(\"/ruleName/api/{}\") Id " + ruleName + " as modified", ruleName.getId());
+
+ return ruleNameService.update(ruleName);
+ }
+
+ /**
+ * @param ruleNameId
+ * @return
+ * @throws DataNotFoundException
+ */
+ @DeleteMapping("/ruleName/api/{ruleNameId}")
+ public String deleteRestRuleName(@PathVariable int ruleNameId) throws DataNotFoundException {
+ logger.info("@DeleteMapping(\"/bidList/api/{bidListId}\")");
+
+ ruleNameService.delete(ruleNameId);
+ return "delete bid by id: " + ruleNameId + " success";
+ }
+}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/apiRest/TradeApiRestController.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/apiRest/TradeApiRestController.java
new file mode 100644
index 0000000000..3ecc4ed3e2
--- /dev/null
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/apiRest/TradeApiRestController.java
@@ -0,0 +1,93 @@
+package com.nnk.springboot.controllers.apiRest;
+
+import com.nnk.springboot.domain.BidList;
+import com.nnk.springboot.domain.Trade;
+import com.nnk.springboot.exception.DataNotFoundException;
+import com.nnk.springboot.service.ITradeService;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Optional;
+
+/**
+ * Trade Rest Controller
+ */
+@RestController
+public class TradeApiRestController {
+
+ /**
+ * SLF4J Logger instance.
+ */
+ private static final Logger logger = LogManager.getLogger("TradeApiRestController");
+
+
+ private ITradeService tradeService;
+
+ public TradeApiRestController(ITradeService tradeService) {
+ this.tradeService = tradeService;
+ }
+
+ /**
+ * @return
+ */
+ @GetMapping("/trades/api")
+ public ResponseEntity> showRestTrade() {
+ logger.info("@RequestMapping(\"/trades/api\")");
+ return new ResponseEntity<>(tradeService.findAll(), HttpStatus.OK);
+ }
+
+ /**
+ * @param id
+ * @return trade httpStatus.Ok
+ * @throws DataNotFoundException
+ */
+ @GetMapping("/trade/api/{id}")
+ public ResponseEntity> showRestTradeById(@PathVariable int id) throws DataNotFoundException {
+ logger.info("@RequestMapping(\"/trade/api/{id}\")");
+ Optional trade = tradeService.findById(id);
+
+ return new ResponseEntity<>(tradeService.findById(id), HttpStatus.OK);
+ }
+
+ /**
+ * @param trade
+ * @return add bidList
+ */
+ @PostMapping("/trade/api")
+ public Trade addRestTrade(@RequestBody Trade trade) {
+ logger.info("@PostMapping(\"/trade/api\")");
+ tradeService.save(trade);
+ return trade;
+ }
+
+
+ /**
+ * @param trade
+ * @return update trade
+ */
+ @PutMapping("/trade/api")
+ public Trade uploadRestTrade(@RequestBody Trade trade) {
+ logger.info("@PutMapping(\"/trade/api/{}\") Id " + trade + " as modified", trade.getTradeId());
+
+ return tradeService.update(trade);
+ }
+
+ /**
+ * @param tradeId
+ * @return
+ * @throws DataNotFoundException
+ */
+ @DeleteMapping("/trade/api/{tradeId}")
+ public String deleteRestTrade(@PathVariable int tradeId) throws DataNotFoundException {
+ logger.info("@DeleteMapping(\"/trade/api/{tradeId}\")");
+
+ tradeService.delete(tradeId);
+ return "delete bid by id: " + tradeId + " success";
+ }
+
+
+}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/apiRest/UserApiRestController.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/apiRest/UserApiRestController.java
new file mode 100644
index 0000000000..d7f882076b
--- /dev/null
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/controllers/apiRest/UserApiRestController.java
@@ -0,0 +1,94 @@
+package com.nnk.springboot.controllers.apiRest;
+
+import com.nnk.springboot.domain.BidList;
+import com.nnk.springboot.domain.User;
+import com.nnk.springboot.exception.DataNotFoundException;
+import com.nnk.springboot.service.IUserService;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Optional;
+
+@RestController
+public class UserApiRestController {
+
+ /**
+ * SLF4J Logger instance.
+ */
+ private static final Logger logger = LogManager.getLogger("UserApiRestController");
+
+
+ /**
+ * Instance of IUserService
+ */
+ private IUserService userService;
+
+ /**
+ * @param userService
+ */
+ public UserApiRestController(IUserService userService) {
+ this.userService = userService;
+ }
+
+
+ /**
+ * @return
+ */
+ @GetMapping("/users/api")
+ public ResponseEntity> showRestUser() {
+ logger.info("@RequestMapping(\"/users/api\")");
+ return new ResponseEntity<>(userService.findAll(), HttpStatus.OK);
+ }
+
+ /**
+ * @param id
+ * @return user httpStatus.Ok
+ * @throws DataNotFoundException
+ */
+ @GetMapping("/user/api/{id}")
+ public ResponseEntity> showRestUserById(@PathVariable int id) throws DataNotFoundException {
+ logger.info("@RequestMapping(\"/user/api/{id}\")");
+ Optional users = userService.findById(id);
+ return new ResponseEntity<>(userService.findById(id), HttpStatus.OK);
+ }
+
+ /**
+ * @param user
+ * @return add bidList
+ */
+ @PostMapping("/user/api")
+ public User addRestUser(@RequestBody User user) {
+ logger.info("@PostMapping(\"/user/api\")");
+ userService.save(user);
+ return user;
+ }
+
+
+ /**
+ * @param user
+ * @return user update
+ */
+ @PutMapping("/user/api")
+ public User uploadRestUser(@RequestBody User user) {
+ logger.info("@PutMapping(\"/user/api/{}\") Id " + user + " as modified", user.getId());
+
+ return userService.update(user);
+ }
+
+ /**
+ * @param userId
+ * @return
+ * @throws DataNotFoundException
+ */
+ @DeleteMapping("/user/api/{userId}")
+ public String deleteRestUser(@PathVariable int userId) throws DataNotFoundException {
+ logger.info("@DeleteMapping(\"/user/api/{userId}\")");
+ userService.delete(userId);
+ return "delete user by id: " + userId + " success";
+ }
+
+}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/BidList.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/BidList.java
index 3a0e27efc8..079b472653 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/BidList.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/BidList.java
@@ -1,15 +1,235 @@
package com.nnk.springboot.domain;
-import org.springframework.beans.factory.annotation.Required;
+import lombok.NonNull;
import javax.persistence.*;
import javax.validation.constraints.Digits;
import javax.validation.constraints.NotBlank;
-import java.sql.Date;
+import javax.validation.constraints.NotNull;
import java.sql.Timestamp;
@Entity
@Table(name = "bidlist")
public class BidList {
- // TODO: Map columns in data table BIDLIST with corresponding java fields
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ private Integer bidListId;
+
+ @NotBlank(message = "Account is mandatory")
+ private String account;
+
+ @NotBlank(message = "Type is mandatory")
+ private String type;
+
+
+ //@Digits(fraction = 0, integer = 22)
+ @NonNull
+ private Double bidQuantity;
+ Double askQuantity;
+ Double bid;
+ Double ask;
+ String benchmark;
+ Timestamp bidListDate;
+ String commentary;
+ String security;
+ String status;
+ String trader;
+ String book;
+ String creationName;
+ Timestamp creationDate;
+ String revisionName;
+ Timestamp revisionDate;
+ String dealName;
+ String dealType;
+ String sourceListId;
+ String side;
+
+ public BidList(String account, String type, @NonNull Double bidQuantity) {
+ this.account = account;
+ this.type = type;
+ this.bidQuantity = bidQuantity;
+ }
+
+
+
+ public BidList() {
+
+ }
+
+ public Integer getBidListId() {
+ return bidListId;
+ }
+
+ public void setBidListId(Integer bidListId) {
+ this.bidListId = bidListId;
+ }
+
+ public String getAccount() {
+ return account;
+ }
+
+ public void setAccount(String account) {
+ this.account = account;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public Double getBidQuantity() {
+ return bidQuantity;
+ }
+
+ public void setBidQuantity(Double bidQuantity) {
+ this.bidQuantity = bidQuantity;
+ }
+
+ public Double getAskQuantity() {
+ return askQuantity;
+ }
+
+ public void setAskQuantity(Double askQuantity) {
+ this.askQuantity = askQuantity;
+ }
+
+ public Double getBid() {
+ return bid;
+ }
+
+ public void setBid(Double bid) {
+ this.bid = bid;
+ }
+
+ public Double getAsk() {
+ return ask;
+ }
+
+ public void setAsk(Double ask) {
+ this.ask = ask;
+ }
+
+ public String getBenchmark() {
+ return benchmark;
+ }
+
+ public void setBenchmark(String benchmark) {
+ this.benchmark = benchmark;
+ }
+
+ public Timestamp getBidListDate() {
+ return bidListDate;
+ }
+
+ public void setBidListDate(Timestamp bidListDate) {
+ this.bidListDate = bidListDate;
+ }
+
+ public String getCommentary() {
+ return commentary;
+ }
+
+ public void setCommentary(String commentary) {
+ this.commentary = commentary;
+ }
+
+ public String getSecurity() {
+ return security;
+ }
+
+ public void setSecurity(String security) {
+ this.security = security;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getTrader() {
+ return trader;
+ }
+
+ public void setTrader(String trader) {
+ this.trader = trader;
+ }
+
+ public String getBook() {
+ return book;
+ }
+
+ public void setBook(String book) {
+ this.book = book;
+ }
+
+ public String getCreationName() {
+ return creationName;
+ }
+
+ public void setCreationName(String creationName) {
+ this.creationName = creationName;
+ }
+
+ public Timestamp getCreationDate() {
+ return creationDate;
+ }
+
+ public void setCreationDate(Timestamp creationDate) {
+ this.creationDate = creationDate;
+ }
+
+ public String getRevisionName() {
+ return revisionName;
+ }
+
+ public void setRevisionName(String revisionName) {
+ this.revisionName = revisionName;
+ }
+
+ public Timestamp getRevisionDate() {
+ return revisionDate;
+ }
+
+ public void setRevisionDate(Timestamp revisionDate) {
+ this.revisionDate = revisionDate;
+ }
+
+ public String getDealName() {
+ return dealName;
+ }
+
+ public void setDealName(String dealName) {
+ this.dealName = dealName;
+ }
+
+ public String getDealType() {
+ return dealType;
+ }
+
+ public void setDealType(String dealType) {
+ this.dealType = dealType;
+ }
+
+ public String getSourceListId() {
+ return sourceListId;
+ }
+
+ public void setSourceListId(String sourceListId) {
+ this.sourceListId = sourceListId;
+ }
+
+ public String getSide() {
+ return side;
+ }
+
+ public void setSide(String side) {
+ this.side = side;
+ }
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/CurvePoint.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/CurvePoint.java
index 151f80d02f..b38941b48d 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/CurvePoint.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/CurvePoint.java
@@ -1,9 +1,8 @@
package com.nnk.springboot.domain;
-import org.hibernate.validator.constraints.Length;
-
import javax.persistence.*;
-import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.sql.Timestamp;
@@ -11,5 +10,90 @@
@Entity
@Table(name = "curvepoint")
public class CurvePoint {
- // TODO: Map columns in data table CURVEPOINT with corresponding java fields
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ @Column(name = "id", nullable = false)
+ private Integer id;
+ @NotNull
+ @Min(value = -128)
+ @Max(value = 127)
+ private Integer curveId;
+ private Timestamp asOfDate;
+ @Min(1)
+ @NotNull
+ private Double term;
+ @Min(1)
+ @NotNull
+ private Double value;
+ private Timestamp creationDate;
+
+ public CurvePoint(int i, double v, double v1) {
+
+ }
+
+ public CurvePoint(Integer id, Integer curveId, Double term, Double value) {
+ this.id = id;
+ this.curveId = curveId;
+ this.term = term;
+ this.value = value;
+ }
+
+ public CurvePoint(Integer curveId, Double term, Double value) {
+ this.curveId = curveId;
+ this.term = term;
+ this.value = value;
+ }
+
+ public CurvePoint() {
+
+ }
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public Integer getCurveId() {
+ return curveId;
+ }
+
+ public void setCurveId(Integer curveId) {
+ this.curveId = curveId;
+ }
+
+ public Timestamp getAsOfDate() {
+ return asOfDate;
+ }
+
+ public void setAsOfDate(Timestamp asOfDate) {
+ this.asOfDate = asOfDate;
+ }
+
+ public Double getTerm() {
+ return term;
+ }
+
+ public void setTerm(Double term) {
+ this.term = term;
+ }
+
+ public Double getValue() {
+ return value;
+ }
+
+ public void setValue(Double value) {
+ this.value = value;
+ }
+
+ public Timestamp getCreationDate() {
+ return creationDate;
+ }
+
+ public void setCreationDate(Timestamp creationDate) {
+ this.creationDate = creationDate;
+ }
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/Rating.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/Rating.java
index 12d1be58c0..c2659cd4e8 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/Rating.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/Rating.java
@@ -1,12 +1,78 @@
package com.nnk.springboot.domain;
import javax.persistence.*;
+import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-import java.sql.Timestamp;
@Entity
@Table(name = "rating")
public class Rating {
- // TODO: Map columns in data table RATING with corresponding java fields
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ private Integer id;
+ @NotBlank(message = "Moody's Rating required")
+ private String moodysRating;
+ @NotBlank(message = "Sand Rating required")
+ private String sandRating;
+ @NotBlank(message = "fitch Rating required")
+ private String fitchRating;
+ @Min(1)
+ private Integer orderNumber;
+
+ public Rating(String moodysRating, String sandRating, String fitchRating, Integer orderNumber) {
+ this.moodysRating = moodysRating;
+ this.sandRating = sandRating;
+ this.fitchRating = fitchRating;
+ this.orderNumber = orderNumber;
+ }
+
+ public Rating(String moodysRating, String sandPRating, String fitchRating, int i) {
+ }
+
+ public Rating() {
+
+ }
+
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+
+ public String getMoodysRating() {
+ return moodysRating;
+ }
+
+ public void setMoodysRating(String moodysRating) {
+ this.moodysRating = moodysRating;
+ }
+
+ public String getSandRating() {
+ return sandRating;
+ }
+
+ public void setSandRating(String sandRating) {
+ this.sandRating = sandRating;
+ }
+
+ public String getFitchRating() {
+ return fitchRating;
+ }
+
+ public void setFitchRating(String fitchRating) {
+ this.fitchRating = fitchRating;
+ }
+
+ public Integer getOrderNumber() {
+ return orderNumber;
+ }
+
+ public void setOrderNumber(Integer orderNumber) {
+ this.orderNumber = orderNumber;
+ }
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/RuleName.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/RuleName.java
index b8ac970edf..40d161c92d 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/RuleName.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/RuleName.java
@@ -2,10 +2,96 @@
import javax.persistence.*;
import javax.validation.constraints.NotBlank;
-import java.sql.Timestamp;
@Entity
@Table(name = "rulename")
public class RuleName {
- // TODO: Map columns in data table RULENAME with corresponding java fields
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ @Column(name = "id", nullable = false)
+ private Integer id;
+ @NotBlank(message = "name required")
+ private String name;
+ @NotBlank(message = "name description")
+ private String description;
+ @NotBlank(message = "name json")
+ private String json;
+ @NotBlank(message = "name template")
+ private String template;
+ @NotBlank(message = "name sqlStr")
+ private String sqlStr;
+ @NotBlank(message = "name sqlPart")
+ private String sqlPart;
+
+
+ public RuleName(String name, String description, String json, String template, String sqlStr, String sqlPart) {
+ this.name = name;
+ this.description = description;
+ this.json = json;
+ this.template = template;
+ this.sqlStr = sqlStr;
+ this.sqlPart = sqlPart;
+ }
+
+ public RuleName() {
+
+ }
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getJson() {
+ return json;
+ }
+
+ public void setJson(String json) {
+ this.json = json;
+ }
+
+ public String getTemplate() {
+ return template;
+ }
+
+ public void setTemplate(String template) {
+ this.template = template;
+ }
+
+ public String getSqlStr() {
+ return sqlStr;
+ }
+
+ public void setSqlStr(String sqlStr) {
+ this.sqlStr = sqlStr;
+ }
+
+ public String getSqlPart() {
+ return sqlPart;
+ }
+
+ public void setSqlPart(String sqlPart) {
+ this.sqlPart = sqlPart;
+ }
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/Trade.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/Trade.java
index b6db7c13b7..c59000afb6 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/Trade.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/Trade.java
@@ -1,6 +1,7 @@
package com.nnk.springboot.domain;
import javax.persistence.*;
+import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import java.sql.Timestamp;
@@ -8,5 +9,220 @@
@Entity
@Table(name = "trade")
public class Trade {
- // TODO: Map columns in data table TRADE with corresponding java fields
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ @Column(name = "trade_id")
+ private Integer tradeId;
+ @NotBlank(message = "name account")
+ private String account;
+ @NotBlank(message = "name type required")
+ private String type;
+ @Min(1)
+ private double buyQuantity;
+
+ public Trade() {
+
+ }
+
+
+
+
+ public Trade(String account, String type, double buyQuantity) {
+ this.account = account;
+ this.type = type;
+ this.buyQuantity = buyQuantity;
+ }
+
+ public Trade(String tradeAccount, String type) {
+
+ }
+
+
+ private Double sellQuantity;
+ private Double buyPrice;
+ private Double sellPrice;
+ private String benchmark;
+ private Timestamp tradeDate;
+ private String security;
+ private String status;
+ private String trader;
+ private String book;
+ private String creationName;
+ private Timestamp creationDate;
+ private String revisionName;
+ private Timestamp revisionDate;
+ private String dealName;
+ private String dealType;
+ private String sourceListId;
+ private String side;
+
+
+ public Integer getTradeId() {
+ return tradeId;
+ }
+
+ public void setTradeId(Integer tradeId) {
+ this.tradeId = tradeId;
+ }
+
+ public String getAccount() {
+ return account;
+ }
+
+ public void setAccount(String account) {
+ this.account = account;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public double getBuyQuantity() {
+ return buyQuantity;
+ }
+
+ public void setBuyQuantity(double buyQuantity) {
+ this.buyQuantity = buyQuantity;
+ }
+
+ public Double getSellQuantity() {
+ return sellQuantity;
+ }
+
+ public void setSellQuantity(Double sellQuantity) {
+ this.sellQuantity = sellQuantity;
+ }
+
+ public Double getBuyPrice() {
+ return buyPrice;
+ }
+
+ public void setBuyPrice(Double buyPrice) {
+ this.buyPrice = buyPrice;
+ }
+
+ public Double getSellPrice() {
+ return sellPrice;
+ }
+
+ public void setSellPrice(Double sellPrice) {
+ this.sellPrice = sellPrice;
+ }
+
+ public String getBenchmark() {
+ return benchmark;
+ }
+
+ public void setBenchmark(String benchmark) {
+ this.benchmark = benchmark;
+ }
+
+ public Timestamp getTradeDate() {
+ return tradeDate;
+ }
+
+ public void setTradeDate(Timestamp tradeDate) {
+ this.tradeDate = tradeDate;
+ }
+
+ public String getSecurity() {
+ return security;
+ }
+
+ public void setSecurity(String security) {
+ this.security = security;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getTrader() {
+ return trader;
+ }
+
+ public void setTrader(String trader) {
+ this.trader = trader;
+ }
+
+ public String getBook() {
+ return book;
+ }
+
+ public void setBook(String book) {
+ this.book = book;
+ }
+
+ public String getCreationName() {
+ return creationName;
+ }
+
+ public void setCreationName(String creationName) {
+ this.creationName = creationName;
+ }
+
+ public Timestamp getCreationDate() {
+ return creationDate;
+ }
+
+ public void setCreationDate(Timestamp creationDate) {
+ this.creationDate = creationDate;
+ }
+
+ public String getRevisionName() {
+ return revisionName;
+ }
+
+ public void setRevisionName(String revisionName) {
+ this.revisionName = revisionName;
+ }
+
+ public Timestamp getRevisionDate() {
+ return revisionDate;
+ }
+
+ public void setRevisionDate(Timestamp revisionDate) {
+ this.revisionDate = revisionDate;
+ }
+
+ public String getDealName() {
+ return dealName;
+ }
+
+ public void setDealName(String dealName) {
+ this.dealName = dealName;
+ }
+
+ public String getDealType() {
+ return dealType;
+ }
+
+ public void setDealType(String dealType) {
+ this.dealType = dealType;
+ }
+
+ public String getSourceListId() {
+ return sourceListId;
+ }
+
+ public void setSourceListId(String sourceListId) {
+ this.sourceListId = sourceListId;
+ }
+
+ public String getSide() {
+ return side;
+ }
+
+ public void setSide(String side) {
+ this.side = side;
+ }
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/User.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/User.java
index 2be0b8c4ab..a9218b7eb9 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/User.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/domain/User.java
@@ -1,23 +1,48 @@
package com.nnk.springboot.domain;
+import util.Password;
+
import javax.persistence.*;
import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.Pattern;
@Entity
@Table(name = "users")
public class User {
@Id
- @GeneratedValue(strategy= GenerationType.AUTO)
+ @GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@NotBlank(message = "Username is mandatory")
private String username;
- @NotBlank(message = "Password is mandatory")
+
+ @Password
+ @NotEmpty(message = "the password should contain at least 8 characters, 1 uppercase, 1 number and 1 special character")
private String password;
@NotBlank(message = "FullName is mandatory")
private String fullname;
@NotBlank(message = "Role is mandatory")
private String role;
+ public User(String username, String password, String fullname, String role) {
+ this.username = username;
+ this.password = password;
+ this.fullname = fullname;
+ this.role = role;
+ }
+
+ public User() {
+
+ }
+
+ public User(String username, String fullname, String password) {
+ this.username = username;
+ this.password = password;
+ this.fullname = fullname;
+ }
+
+
+
public Integer getId() {
return id;
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/exception/DataNotFoundException.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/exception/DataNotFoundException.java
new file mode 100644
index 0000000000..17bc4ea65e
--- /dev/null
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/exception/DataNotFoundException.java
@@ -0,0 +1,12 @@
+package com.nnk.springboot.exception;
+
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.ResponseStatus;
+
+@ResponseStatus(HttpStatus.NOT_FOUND)
+public class DataNotFoundException extends RuntimeException {
+
+ public DataNotFoundException(String message){
+ super(message);
+ }
+}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/BidListRepository.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/BidListRepository.java
index f74b94e51d..ac69583da3 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/BidListRepository.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/BidListRepository.java
@@ -2,8 +2,10 @@
import com.nnk.springboot.domain.BidList;
import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
-
+@Repository
public interface BidListRepository extends JpaRepository {
+
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/CurvePointRepository.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/CurvePointRepository.java
index b01751b53e..c4904c483e 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/CurvePointRepository.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/CurvePointRepository.java
@@ -2,8 +2,9 @@
import com.nnk.springboot.domain.CurvePoint;
import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
-
+@Repository
public interface CurvePointRepository extends JpaRepository {
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/RatingRepository.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/RatingRepository.java
index 7ded405e6d..ded1e8a0ed 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/RatingRepository.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/RatingRepository.java
@@ -2,7 +2,9 @@
import com.nnk.springboot.domain.Rating;
import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+@Repository
public interface RatingRepository extends JpaRepository {
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/RuleNameRepository.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/RuleNameRepository.java
index 8053d1612e..a805586b44 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/RuleNameRepository.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/RuleNameRepository.java
@@ -2,7 +2,8 @@
import com.nnk.springboot.domain.RuleName;
import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
-
+@Repository
public interface RuleNameRepository extends JpaRepository {
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/TradeRepository.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/TradeRepository.java
index e8da38af02..50e9b39a15 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/TradeRepository.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/TradeRepository.java
@@ -2,7 +2,8 @@
import com.nnk.springboot.domain.Trade;
import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
-
+@Repository
public interface TradeRepository extends JpaRepository {
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/UserRepository.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/UserRepository.java
index b6a3363949..5c3aae1b5e 100644
--- a/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/UserRepository.java
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/repositories/UserRepository.java
@@ -5,8 +5,12 @@
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
+import org.springframework.stereotype.Repository;
-
+@Repository
public interface UserRepository extends JpaRepository, JpaSpecificationExecutor {
+ User findUserByUsername(String username);
+
+ boolean existsByUsername(String username);
}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/security/AppAuthProvider.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/security/AppAuthProvider.java
new file mode 100644
index 0000000000..fa434cc926
--- /dev/null
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/security/AppAuthProvider.java
@@ -0,0 +1,41 @@
+package com.nnk.springboot.security;
+
+import com.nnk.springboot.service.IUserDetailService;
+import com.nnk.springboot.service.impl.UserServiceImpl;
+import org.springframework.security.authentication.BadCredentialsException;
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.authentication.dao.DaoAuthenticationProvider;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.AuthenticationException;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.crypto.password.PasswordEncoder;
+
+public class AppAuthProvider extends DaoAuthenticationProvider {
+
+
+ IUserDetailService userDetailService;
+
+ PasswordEncoder encoder;
+
+ @Override
+ public Authentication authenticate(Authentication authentication) throws AuthenticationException {
+ UsernamePasswordAuthenticationToken auth = (UsernamePasswordAuthenticationToken) authentication;
+ String name = auth.getName();
+ String password = auth.getCredentials().toString();
+ UserDetails user = userDetailService.loadUserByUsername(name);
+
+ if (user != null && encoder.matches(password , user.getPassword()) ) {
+ return new UsernamePasswordAuthenticationToken(user, password, user.getAuthorities());
+ }
+
+ throw new BadCredentialsException("Username/Password does not match for " + auth.getPrincipal());
+
+ }
+
+ @Override
+ public boolean supports(Class> authentication) {
+ return authentication.equals(UsernamePasswordAuthenticationToken.class);
+ }
+
+
+}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/security/SecurityConfig.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/security/SecurityConfig.java
new file mode 100644
index 0000000000..c84ef6058a
--- /dev/null
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/security/SecurityConfig.java
@@ -0,0 +1,77 @@
+package com.nnk.springboot.security;
+
+import com.nnk.springboot.service.IUserDetailService;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.authentication.dao.DaoAuthenticationProvider;
+import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.config.annotation.web.builders.WebSecurity;
+import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
+import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
+
+@Configuration
+@EnableWebSecurity
+public class SecurityConfig extends WebSecurityConfigurerAdapter {
+
+ private IUserDetailService userDetailService;
+
+ public SecurityConfig(IUserDetailService userDetailService) {
+ this.userDetailService = userDetailService;
+ }
+
+
+ @Bean
+ public BCryptPasswordEncoder passwordEncoder() {
+ return new BCryptPasswordEncoder();
+ }
+
+ @Bean
+ public DaoAuthenticationProvider authenticationProvider() {
+ DaoAuthenticationProvider auth = new DaoAuthenticationProvider();
+ auth.setUserDetailsService(userDetailService);
+ auth.setPasswordEncoder(passwordEncoder());
+ return auth;
+ }
+
+ @Override
+ protected void configure(AuthenticationManagerBuilder auth) throws Exception {
+ auth.userDetailsService(userDetailService).passwordEncoder(passwordEncoder());
+ }
+
+
+ @Override
+ protected void configure(HttpSecurity http) throws Exception {
+ http.csrf().disable();
+ http.authorizeRequests().antMatchers(
+ "/registration/**",
+ "user/**",
+ "/js/**",
+ "/css/**",
+ "/img/**").permitAll()
+ .antMatchers("/user/**").hasAuthority("ADMIN")
+ .anyRequest().authenticated()
+ .and()
+ .formLogin()
+ .loginPage("/login")
+ .permitAll().defaultSuccessUrl("/login-success", true)
+ .and()
+ .oauth2Login()
+ .loginPage("/login")
+ .and()
+ .logout()
+ .invalidateHttpSession(true)
+ .clearAuthentication(true)
+ .logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
+ .logoutSuccessUrl("/login?logout")
+ .permitAll()
+ .and()
+ .exceptionHandling().accessDeniedPage("/403");
+
+
+ }
+
+
+}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/IBidListService.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/IBidListService.java
new file mode 100644
index 0000000000..0cc6b5f816
--- /dev/null
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/IBidListService.java
@@ -0,0 +1,50 @@
+package com.nnk.springboot.service;
+
+import com.nnk.springboot.domain.BidList;
+import com.nnk.springboot.exception.DataNotFoundException;
+
+import java.util.List;
+import java.util.Optional;
+
+public interface IBidListService {
+
+ /**
+ * get all BidList
+ * @return
+ */
+ List findAll();
+
+ /**
+ * find BidList by id
+ *
+ * @param id
+ * @return
+ */
+ Optional findById(Integer id) throws DataNotFoundException;
+
+ /**
+ * save given bidList
+ *
+ * @param bidList
+ * @return
+ */
+ BidList save(BidList bidList);
+
+ /**
+ * update given bidList
+ *
+ * @param bidList
+ * @return
+ */
+ BidList update(BidList bidList) ;
+
+
+ /**
+ * delete given bidList
+ * @param bidList
+ */
+ void delete(Integer bidList);
+
+
+
+}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/ICurvePointService.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/ICurvePointService.java
new file mode 100644
index 0000000000..2a015e383b
--- /dev/null
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/ICurvePointService.java
@@ -0,0 +1,49 @@
+package com.nnk.springboot.service;
+
+import com.nnk.springboot.domain.CurvePoint;
+import com.nnk.springboot.exception.DataNotFoundException;
+
+import java.util.List;
+import java.util.Optional;
+
+public interface ICurvePointService {
+
+ /**
+ * get all CurvePoint
+ * @return
+ */
+ List findAll();
+
+ /**
+ * find CurvePoint by id
+ *
+ * @param id
+ * @return
+ */
+ Optional findById(Integer id) throws DataNotFoundException;
+
+ /**
+ * save given rating
+ *
+ * @param curvePoint
+ * @return
+ */
+ CurvePoint save(CurvePoint curvePoint);
+
+ /**
+ * update given curvePoint
+ *
+ * @param curvePoint
+ * @return
+ */
+ CurvePoint update(CurvePoint curvePoint) throws DataNotFoundException;
+
+
+
+
+ /**
+ * delete given curvePoint
+ * @param curvePoint
+ */
+ void delete(Integer curvePoint);
+}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/IRatingService.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/IRatingService.java
new file mode 100644
index 0000000000..430476d50f
--- /dev/null
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/IRatingService.java
@@ -0,0 +1,48 @@
+package com.nnk.springboot.service;
+
+import com.nnk.springboot.domain.Rating;
+import com.nnk.springboot.exception.DataNotFoundException;
+
+import java.util.List;
+import java.util.Optional;
+
+public interface IRatingService {
+
+
+ /**
+ * get all rating
+ * @return
+ */
+ List findAll();
+
+ /**
+ * find rating by id
+ *
+ * @param id
+ * @return
+ */
+ Optional findById(Integer id) throws DataNotFoundException;
+
+ /**
+ * save given rating
+ *
+ * @param rating
+ * @return
+ */
+ Rating save(Rating rating);
+
+ /**
+ * update rating user
+ *
+ * @param rating
+ * @return
+ */
+ Rating update(Rating rating) throws DataNotFoundException;
+
+ /**
+ * delete given rating by rating id
+ * @param rating
+ */
+ void delete(Integer rating);
+
+}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/IRuleNameService.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/IRuleNameService.java
new file mode 100644
index 0000000000..01e7f52a04
--- /dev/null
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/IRuleNameService.java
@@ -0,0 +1,49 @@
+package com.nnk.springboot.service;
+
+import com.nnk.springboot.domain.RuleName;
+import com.nnk.springboot.exception.DataNotFoundException;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
+
+import java.util.List;
+import java.util.Optional;
+
+public interface IRuleNameService {
+
+ /**
+ * get all ruleNames
+ * @return
+ */
+ List findAll();
+
+ /**
+ * find user by id
+ *
+ * @param id
+ * @return
+ */
+ Optional findById(Integer id) throws DataNotFoundException;
+
+ /**
+ * save given trade
+ *
+ * @param ruleName
+ * @return
+ */
+ RuleName save(RuleName ruleName);
+
+
+ /**
+ * update given ruleName
+ *
+ * @param ruleName
+ * @return
+ */
+ public RuleName update(RuleName ruleName) throws DataNotFoundException;
+
+
+ /**
+ * delete given trade
+ * @param ruleName
+ */
+ void delete(Integer ruleName);
+}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/ITradeService.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/ITradeService.java
new file mode 100644
index 0000000000..1f769b9571
--- /dev/null
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/ITradeService.java
@@ -0,0 +1,50 @@
+package com.nnk.springboot.service;
+
+import com.nnk.springboot.domain.Trade;
+import com.nnk.springboot.exception.DataNotFoundException;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
+
+import java.util.List;
+import java.util.Optional;
+
+public interface ITradeService {
+
+ /**
+ * get all users
+ *
+ * @return
+ */
+ List findAll();
+
+ /**
+ * find user by id
+ *
+ * @param id
+ * @return
+ */
+ Optional findById(Integer id) throws DataNotFoundException;
+
+ /**
+ * save given trade
+ *
+ * @param trade
+ * @return
+ */
+ Trade save(Trade trade);
+
+ /**
+ * update given trade
+ *
+ * @param trade
+ * @return
+ */
+ Trade update(Trade trade) throws UsernameNotFoundException;
+
+ /**
+ * delete given trade
+ *
+ * @param trade
+ */
+ void delete(Integer trade);
+
+}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/IUserDetailService.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/IUserDetailService.java
new file mode 100644
index 0000000000..30548a778d
--- /dev/null
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/IUserDetailService.java
@@ -0,0 +1,16 @@
+package com.nnk.springboot.service;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.core.userdetails.UserDetailsService;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
+import org.springframework.stereotype.Service;
+
+import java.beans.BeanProperty;
+
+
+public interface IUserDetailService extends UserDetailsService {
+
+ @BeanProperty
+ public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException;
+}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/IUserService.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/IUserService.java
new file mode 100644
index 0000000000..359b00d24f
--- /dev/null
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/IUserService.java
@@ -0,0 +1,58 @@
+package com.nnk.springboot.service;
+
+import com.nnk.springboot.domain.User;
+import com.nnk.springboot.exception.DataNotFoundException;
+import com.nnk.springboot.web.dto.UserRegistrationDto;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
+
+import java.util.List;
+import java.util.Optional;
+
+
+public interface IUserService {
+
+
+ User saveUser(UserRegistrationDto registrationDto, String newPassword);
+
+ /**
+ * get all users
+ * @return
+ */
+ List findAll();
+
+ /**
+ * find user by id
+ *
+ * @param id
+ * @return
+ */
+ Optional findById(Integer id) throws DataNotFoundException;
+
+ /**
+ * save given user
+ *
+ * @param user
+ * @return
+ */
+ User save(User user);
+
+
+ /**
+ * update given user
+ *
+ * @param user
+ * @return
+ */
+ public User update(User user) throws UsernameNotFoundException ;
+
+
+
+
+
+
+ /**
+ * delete given user
+ * @param user
+ */
+ void delete(int user);
+}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/impl/BidListServiceImpl.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/impl/BidListServiceImpl.java
new file mode 100644
index 0000000000..19e2a1b55c
--- /dev/null
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/impl/BidListServiceImpl.java
@@ -0,0 +1,105 @@
+package com.nnk.springboot.service.impl;
+
+import com.nnk.springboot.domain.BidList;
+import com.nnk.springboot.exception.DataNotFoundException;
+import com.nnk.springboot.repositories.BidListRepository;
+import com.nnk.springboot.service.IBidListService;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Optional;
+
+/**
+ * contain all business service methods for BidListService
+ */
+@Service
+public class BidListServiceImpl implements IBidListService {
+
+ /**
+ * SLF4J LOGGER instance.
+ */
+ private static final Logger logger = LogManager.getLogger("BidListServiceImpl");
+
+ private final BidListRepository bidListRepository;
+
+ /**
+ * @param bidListRepository
+ */
+ public BidListServiceImpl(BidListRepository bidListRepository) {
+ this.bidListRepository = bidListRepository;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public List findAll() {
+ return bidListRepository.findAll();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Optional findById(Integer id) throws DataNotFoundException {
+ logger.debug("find bidById:{}", id);
+ return Optional.ofNullable(bidListRepository.findById(id).orElseThrow(()
+ -> {
+ logger.error("Invalid bid Id: {} ", id);
+ return new DataNotFoundException("Invalid bid Id:" + id);
+ }));
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @return
+ */
+ @Override
+ public BidList save(BidList bid) {
+ logger.debug("save bidList:{}", bid.getBid());
+
+ bidListRepository.save(bid);
+
+ return bid;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public BidList update(BidList bid) throws DataNotFoundException {
+ logger.debug("update bid:{}", bid.getBid());
+ BidList uploadBid = bidListRepository.findById(bid.getBidListId()).orElseThrow(() -> {
+ logger.error("This bidId:{} not found!", bid.getBidListId());
+ throw new DataNotFoundException("This bid doesn't exist with this id : " + bid.getBidListId() + " , from getBidById, BidListService.");
+ });
+ logger.info("Bid successfully found by its id(from getBidById,BidListService).");
+
+ uploadBid.setAccount(bid.getAccount());
+ uploadBid.setType(bid.getType());
+ uploadBid.setBidQuantity(bid.getBidQuantity());
+
+ return bidListRepository.save(uploadBid);
+
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void delete(Integer bid) throws DataNotFoundException {
+ logger.debug("delete bid:{}", bid);
+ BidList deleteBid = bidListRepository.findById(bid).orElseThrow(() -> {
+ throw new DataNotFoundException("Id " + bid + " Not Present in Data Base");
+ });
+
+ bidListRepository.deleteById(deleteBid.getBidListId());
+ }
+
+
+}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/impl/CurvePointServiceImpl.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/impl/CurvePointServiceImpl.java
new file mode 100644
index 0000000000..2223a5e4cd
--- /dev/null
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/impl/CurvePointServiceImpl.java
@@ -0,0 +1,91 @@
+package com.nnk.springboot.service.impl;
+
+import com.nnk.springboot.domain.CurvePoint;
+import com.nnk.springboot.domain.RuleName;
+import com.nnk.springboot.exception.DataNotFoundException;
+import com.nnk.springboot.repositories.CurvePointRepository;
+import com.nnk.springboot.service.ICurvePointService;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Optional;
+
+/**
+ * contain all business service methods for curvePoint
+ */
+@Service
+public class CurvePointServiceImpl implements ICurvePointService {
+
+ /**
+ * SLF4J LOGGER instance.
+ */
+ private static final Logger logger = LogManager.getLogger("CurvePointServiceImpl");
+
+ private final CurvePointRepository curvePointRepository;
+
+ public CurvePointServiceImpl(CurvePointRepository curvePointRepository) {
+ this.curvePointRepository = curvePointRepository;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public List findAll() {
+ return curvePointRepository.findAll();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Optional findById(Integer id) throws DataNotFoundException {
+ logger.debug("find bidById:{}", id);
+ return Optional.ofNullable(curvePointRepository.findById(id).orElseThrow(()
+ -> {
+ logger.error("Invalid bid Id: {} ", id);
+ return new DataNotFoundException("No User with id " + id + " found ");
+ }));
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @return
+ */
+ @Override
+ public CurvePoint save(CurvePoint curvePoint) {
+ logger.debug("save curvePoint:{}", curvePoint.getCurveId());
+ curvePointRepository.save(curvePoint);
+ return curvePoint;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public CurvePoint update(CurvePoint curvePoint) throws DataNotFoundException {
+ logger.debug("update curvePoint:{}", curvePoint.getId());
+ CurvePoint updateCurvePoint = curvePointRepository.findById(curvePoint.getId()).orElseThrow(() -> {
+ throw new DataNotFoundException("Id curvePoint: " + curvePoint.getId() + " Not Present in Data Base");
+ });
+
+ curvePointRepository.save(curvePoint);
+ return curvePoint;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void delete(Integer curvePoint) {
+ logger.debug("delete curvePoint:{}", curvePoint);
+ CurvePoint deletecurvePoint = curvePointRepository.findById(curvePoint).orElseThrow(() -> {
+ throw new DataNotFoundException("Id " + curvePoint + " Not Present in Data Base");
+ });
+
+ curvePointRepository.deleteById(deletecurvePoint.getId());
+ }
+}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/impl/RatingServiceImpl.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/impl/RatingServiceImpl.java
new file mode 100644
index 0000000000..04e9c83862
--- /dev/null
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/impl/RatingServiceImpl.java
@@ -0,0 +1,85 @@
+package com.nnk.springboot.service.impl;
+
+import com.nnk.springboot.domain.Rating;
+import com.nnk.springboot.exception.DataNotFoundException;
+import com.nnk.springboot.repositories.RatingRepository;
+import com.nnk.springboot.service.IRatingService;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Optional;
+
+/**
+ * contain all business service methods for RatingService
+ */
+@Service
+public class RatingServiceImpl implements IRatingService {
+
+ /**
+ * SLF4J/LOG4J LOGGER instance.
+ */
+ private static final Logger logger = LogManager.getLogger("RatingServiceImpl");
+
+ private final RatingRepository ratingRepository;
+
+ public RatingServiceImpl(RatingRepository ratingRepository) {
+ this.ratingRepository = ratingRepository;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public List findAll() {
+ return ratingRepository.findAll();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Optional findById(Integer id) throws DataNotFoundException {
+ return Optional.ofNullable(ratingRepository.findById(id).orElseThrow(() -> {
+ logger.error("Invalid Rating Id: {} ", id);
+ return new DataNotFoundException(" No User with id " + id + " found ");
+ }));
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @return
+ */
+ @Override
+ public Rating save(Rating rating) {
+ logger.error("save rating: {} ", rating);
+ ratingRepository.save(rating);
+ return rating;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @return
+ */
+ @Override
+ public Rating update(Rating rating) throws DataNotFoundException {
+ logger.debug("update rating:{}", rating.getId());
+ return ratingRepository.save(rating);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void delete(Integer rating) {
+ logger.debug("delete rating:{}", rating);
+ Rating deleteRating = ratingRepository.findById(rating).orElseThrow(() -> {
+ throw new DataNotFoundException("Id " + rating + " Not Present in Data Base");
+ });
+
+ ratingRepository.deleteById(deleteRating.getId());
+ }
+}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/impl/RuleNameServiceImpl.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/impl/RuleNameServiceImpl.java
new file mode 100644
index 0000000000..df74fc72d5
--- /dev/null
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/impl/RuleNameServiceImpl.java
@@ -0,0 +1,94 @@
+package com.nnk.springboot.service.impl;
+
+import com.nnk.springboot.domain.RuleName;
+import com.nnk.springboot.exception.DataNotFoundException;
+import com.nnk.springboot.repositories.RuleNameRepository;
+import com.nnk.springboot.service.IRuleNameService;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Optional;
+
+/**
+ * contain all business service methods for RuleNameService
+ */
+@Service
+public class RuleNameServiceImpl implements IRuleNameService {
+
+ /**
+ * SLF4J/LOG4J LOGGER instance.
+ */
+ private static final Logger logger = LogManager.getLogger("RuleNameServiceImpl");
+
+ private final RuleNameRepository ruleNameRepository;
+
+ public RuleNameServiceImpl(RuleNameRepository ruleNameRepository) {
+ this.ruleNameRepository = ruleNameRepository;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public List findAll() {
+ logger.info("Find all RuleName ");
+ return ruleNameRepository.findAll();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Optional findById(Integer id) throws DataNotFoundException {
+ logger.info("Find all RuleName by id ", id);
+ return Optional.ofNullable(ruleNameRepository.findById(id).orElseThrow(()
+ -> {
+ logger.error("Invalid Rating Id: {} ", id);
+ return new DataNotFoundException("No RuleName with id:" + id + "found");
+ }));
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @return
+ */
+ @Override
+ public RuleName save(RuleName ruleName) {
+ logger.error("save rating: {} ", ruleName);
+ ruleNameRepository.save(ruleName);
+
+ return ruleName;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @return
+ */
+ @Override
+ public RuleName update(RuleName ruleName) throws DataNotFoundException {
+ logger.debug("update ruleName:{}", ruleName.getName());
+ RuleName updateRuleName = ruleNameRepository.findById(ruleName.getId()).orElseThrow(() -> {
+ throw new DataNotFoundException("Id ruleName: " + ruleName.getId() + " Not Present in Data Base");
+ });
+ ruleNameRepository.save(updateRuleName);
+
+ return ruleName;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void delete(Integer ruleNameId) {
+ logger.debug("delete rating:{}", ruleNameId);
+ RuleName deleteRuleName = ruleNameRepository.findById(ruleNameId).orElseThrow(() -> {
+ throw new DataNotFoundException("Id ruleName: " + ruleNameId + " Not Present in Data Base");
+ });
+ ruleNameRepository.deleteById(deleteRuleName.getId());
+ }
+}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/impl/TradeServiceImpl.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/impl/TradeServiceImpl.java
new file mode 100644
index 0000000000..0dbd4f6b4d
--- /dev/null
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/impl/TradeServiceImpl.java
@@ -0,0 +1,97 @@
+package com.nnk.springboot.service.impl;
+
+import com.nnk.springboot.domain.Trade;
+import com.nnk.springboot.exception.DataNotFoundException;
+import com.nnk.springboot.repositories.TradeRepository;
+import com.nnk.springboot.service.ITradeService;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Optional;
+
+/**
+ * contain all business service methods for TradeService
+ */
+@Service
+public class TradeServiceImpl implements ITradeService {
+
+ /**
+ * SLF4J LOGGER instance.
+ */
+ private static final Logger logger = LogManager.getLogger("TradeServiceImpl");
+
+
+ private final TradeRepository tradeRepository;
+
+ public TradeServiceImpl(TradeRepository tradeRepository) {
+ this.tradeRepository = tradeRepository;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public List findAll() {
+ return tradeRepository.findAll();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Optional findById(Integer id) throws DataNotFoundException {
+ logger.debug("find bidById:{}", id);
+ return Optional.ofNullable(tradeRepository.findById(id).orElseThrow(()
+ -> {
+ logger.error("Invalid bid Id: {} ", id);
+ return new DataNotFoundException("No User with id " + id + " found ");
+ }));
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @return
+ */
+ @Override
+ public Trade save(Trade trade) {
+ logger.debug("save trade:{}", trade.getTradeId());
+ tradeRepository.save(trade);
+ return trade;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ *
+ * @return
+ */
+ @Override
+ public Trade update(Trade trade) throws UsernameNotFoundException {
+ logger.debug("update trade:{}", trade.getBook());
+// Optional isAlreadyUser = tradeRepository.findById(trade.getTradeId());
+// if (isAlreadyUser.isPresent()) {
+ Trade deleteTrade = tradeRepository.findById(trade.getTradeId()).orElseThrow(() -> {
+ throw new DataNotFoundException("Id " + trade + " Not Present in Data Base");
+ });
+ tradeRepository.save(deleteTrade);
+
+ return trade;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void delete(Integer trade) {
+ logger.debug("delete trade:{}", trade);
+ Trade deleteTrade = tradeRepository.findById(trade).orElseThrow(() -> {
+ throw new DataNotFoundException("Id " + trade + " Not Present in Data Base");
+ });
+
+ tradeRepository.deleteById(deleteTrade.getTradeId());
+ }
+}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/impl/UserDetailServiceImpl.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/impl/UserDetailServiceImpl.java
new file mode 100644
index 0000000000..7569e4a4d3
--- /dev/null
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/impl/UserDetailServiceImpl.java
@@ -0,0 +1,38 @@
+package com.nnk.springboot.service.impl;
+
+import com.nnk.springboot.domain.User;
+import com.nnk.springboot.repositories.UserRepository;
+import com.nnk.springboot.service.IUserDetailService;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.authority.SimpleGrantedAuthority;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
+import org.springframework.stereotype.Service;
+
+import java.util.Collections;
+@Service
+public class UserDetailServiceImpl implements IUserDetailService {
+
+ private UserRepository userRepository;
+
+ public UserDetailServiceImpl(UserRepository userRepository) {
+ this.userRepository = userRepository;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
+
+ User user = userRepository.findUserByUsername(username);
+ if (user == null) {
+ throw new UsernameNotFoundException("Invalid username and password.");
+ }
+ GrantedAuthority authority = new SimpleGrantedAuthority(user.getRole());
+ return new org.springframework.security.core.userdetails.User(user.getUsername(), user.getPassword(),
+ Collections.singletonList(authority));
+
+ }
+}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/impl/UserServiceImpl.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/impl/UserServiceImpl.java
new file mode 100644
index 0000000000..fca5f765cf
--- /dev/null
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/service/impl/UserServiceImpl.java
@@ -0,0 +1,129 @@
+package com.nnk.springboot.service.impl;
+
+import com.nnk.springboot.domain.User;
+import com.nnk.springboot.exception.DataNotFoundException;
+import com.nnk.springboot.repositories.UserRepository;
+import com.nnk.springboot.service.IUserService;
+import com.nnk.springboot.web.dto.UserRegistrationDto;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
+import org.springframework.stereotype.Service;
+
+import javax.transaction.Transactional;
+import java.util.List;
+import java.util.Optional;
+
+/**
+ * contain all business service methods for UserService
+ */
+@Service
+@Transactional
+public class UserServiceImpl implements IUserService {
+
+ /**
+ * SLF4J LOGGER instance.
+ */
+ private static final Logger logger = LogManager.getLogger("UserServiceImpl");
+
+ private final UserRepository userRepository;
+
+ public UserServiceImpl(UserRepository userRepository) {
+ this.userRepository = userRepository;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Transactional
+ @Override
+ public User saveUser(UserRegistrationDto registrationDto, String password) throws UsernameNotFoundException {
+ if (userExist(registrationDto.getUsername())) {
+ throw new UsernameNotFoundException(
+ "This full name : " + registrationDto.getFullname()+ " is present in database");
+ } else {
+
+ User user = new User(registrationDto.getUsername(),
+ registrationDto.getFullname(),
+ password,registrationDto.getRole());
+
+// User user = new User(registrationDto.getUsername(),
+// registrationDto.getFullname(),
+// password);
+
+ return userRepository.save(user);
+ }
+ }
+
+ public boolean userExist(String username) {
+ return userRepository.existsByUsername(username);
+
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public List findAll() {
+ logger.debug("getting all users");
+ return userRepository.findAll();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Optional findById(Integer id) throws DataNotFoundException {
+ logger.debug("fetching user by id:{}", id);
+ return Optional.ofNullable(userRepository.findById(id).orElseThrow(() -> {
+ logger.debug("Invalid user Id: {} ", id);
+ return new DataNotFoundException("No User with id " + id + " found ");
+ }));
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @return
+ */
+ @Override
+ public User save(User user) {
+ logger.debug("saving user{}", user.getFullname());
+ userRepository.save(user);
+
+ return user;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @return
+ */
+ @Override
+ public User update(User user) throws UsernameNotFoundException {
+ logger.debug("update user:{}", user.getFullname());
+ Optional isAlreadyUser = userRepository.findById(user.getId());
+ if (isAlreadyUser.isPresent()) {
+ userRepository.save(user);
+ } else {
+ throw new UsernameNotFoundException("No User " + user + " present in dataBase ");
+ }
+ return user;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void delete(int userId) throws DataNotFoundException {
+ logger.debug("deleting user:{}", userId);
+ User deleteUser = userRepository.findById(userId).orElseThrow(() -> {
+ throw new DataNotFoundException("Id " + userId + " Not Present in Data Base");
+ });
+
+ userRepository.deleteById(deleteUser.getId());
+ }
+
+
+}
diff --git a/Poseiden-skeleton/src/main/java/com/nnk/springboot/web/dto/UserRegistrationDto.java b/Poseiden-skeleton/src/main/java/com/nnk/springboot/web/dto/UserRegistrationDto.java
new file mode 100644
index 0000000000..2ba8496e79
--- /dev/null
+++ b/Poseiden-skeleton/src/main/java/com/nnk/springboot/web/dto/UserRegistrationDto.java
@@ -0,0 +1,56 @@
+package com.nnk.springboot.web.dto;
+/**
+ * user data transform object
+ */
+public class UserRegistrationDto {
+
+ private String username;
+ private String fullname;
+ private String password;
+
+ private String role;
+
+
+ public UserRegistrationDto() {
+
+ }
+
+ public UserRegistrationDto(String username, String fullname, String password) {
+ this.username = username;
+ this.fullname = fullname;
+ this.password = password;
+
+ }
+
+ public String getUsername() {
+ return username;
+ }
+
+ public void setUsername(String username) {
+ this.username = username;
+ }
+
+ public String getFullname() {
+ return fullname;
+ }
+
+ public void setFullname(String fullname) {
+ this.fullname = fullname;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public String getRole() {
+ return role;
+ }
+
+ public void setRole(String role) {
+ this.role = role;
+ }
+}
diff --git a/Poseiden-skeleton/src/main/java/util/Password.java b/Poseiden-skeleton/src/main/java/util/Password.java
new file mode 100644
index 0000000000..a479a5140c
--- /dev/null
+++ b/Poseiden-skeleton/src/main/java/util/Password.java
@@ -0,0 +1,19 @@
+package util;
+
+import javax.validation.Constraint;
+import javax.validation.Payload;
+import java.lang.annotation.*;
+
+@Target(ElementType.FIELD)
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+@Constraint(validatedBy = PasswordConstraintsValidator.class)
+public @interface Password {
+
+ String message() default "Invalid password!";
+
+ Class>[] groups() default {};
+
+ Class extends Payload>[] payload() default {};
+
+}
diff --git a/Poseiden-skeleton/src/main/java/util/PasswordConstraintsValidator.java b/Poseiden-skeleton/src/main/java/util/PasswordConstraintsValidator.java
new file mode 100644
index 0000000000..1fa09171b8
--- /dev/null
+++ b/Poseiden-skeleton/src/main/java/util/PasswordConstraintsValidator.java
@@ -0,0 +1,47 @@
+package util;
+
+import org.passay.*;
+
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+import java.util.Arrays;
+
+public class PasswordConstraintsValidator implements ConstraintValidator {
+
+
+ @Override
+ public boolean isValid(String password, ConstraintValidatorContext constraintValidatorContext) {
+
+ PasswordValidator passwordValidator = new PasswordValidator(
+ Arrays.asList(
+ //Length rule. Min 10 max 60 characters
+ new LengthRule(8, 60),
+ //At least one upper case letter
+ new UppercaseCharacterRule(1),
+ //At least one number
+ new DigitCharacterRule(1),
+ //At least one special characters
+ new SpecialCharacterRule(1),
+
+ new WhitespaceRule()));
+
+
+ RuleResult result = passwordValidator.validate(new PasswordData(password));
+
+ if (result.isValid()) {
+
+ return true;
+
+ }
+
+ //Sending one message each time failed validation.
+ constraintValidatorContext
+ .buildConstraintViolationWithTemplate(passwordValidator
+ .getMessages(result).stream().findFirst().get())
+ .addConstraintViolation()
+ .disableDefaultConstraintViolation();
+
+ return false;
+
+ }
+}
diff --git a/Poseiden-skeleton/src/main/resources/application-prod.properties b/Poseiden-skeleton/src/main/resources/application-prod.properties
index 83f1ee5b32..be5e219fc3 100644
--- a/Poseiden-skeleton/src/main/resources/application-prod.properties
+++ b/Poseiden-skeleton/src/main/resources/application-prod.properties
@@ -1,13 +1,12 @@
-
logging.level.org.springframework=INFO
################### DataSource Configuration ##########################
-spring.datasource.driver-class-name=com.mysql.jdbc.Driver
-spring.datasource.url=jdbc:mysql://localhost:3306/test
-spring.datasource.username=root
-spring.datasource.password=admin
+spring.datasource.url=jdbc:mysql://localhost:3306/poseidon?useSSL=false
+spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
+server.error.include-message=always
+server.error.include-binding-errors=always
+
-spring.datasource.initialize=true
################### Hibernate Configuration ##########################
diff --git a/Poseiden-skeleton/src/main/resources/application-test.properties b/Poseiden-skeleton/src/main/resources/application-test.properties
new file mode 100644
index 0000000000..814e349551
--- /dev/null
+++ b/Poseiden-skeleton/src/main/resources/application-test.properties
@@ -0,0 +1,18 @@
+################### LOGGING Configuration ##########################
+
+logging.level.root=INFO
+logging.level.org.springframework=INFO
+logging.level.org.hibernate.SQL=DEBUG
+
+################### DataSource Configuration ##########################
+
+spring.datasource.driver-class-name=org.h2.Driver
+spring.datasource.url=jdbc:h2:mem:db;DB_CLOSE_DELAY=-1
+spring.datasource.username=sa
+spring.datasource.password=sa
+#spring.datasource.initialize=true
+
+################### Hibernate Configuration ##########################
+
+spring.jpa.hibernate.ddl-auto=create
+spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.H2Dialect
diff --git a/Poseiden-skeleton/src/main/resources/application.properties b/Poseiden-skeleton/src/main/resources/application.properties
index 8b194cc76e..16bbd036fa 100644
--- a/Poseiden-skeleton/src/main/resources/application.properties
+++ b/Poseiden-skeleton/src/main/resources/application.properties
@@ -1,14 +1,41 @@
-logging.level.org.springframework=INFO
+logging.level.org.springframework=error
+
+#spring.datasource.url=jdbc:h2:mem:testdb
+#spring.datasource.driverClassName=org.h2.Driver
+#spring.datasource.username=user
+#spring.datasource.password=password
+#spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
+
+spring.profiles.active=dev
################### DataSource Configuration ##########################
-spring.datasource.driver-class-name=com.mysql.jdbc.Driver
-spring.datasource.url=jdbc:mysql://localhost:3306/demo
+#spring.datasource.driver-class-name=com.mysql.jdbc.Driver
+#spring.datasource.driver-class-name=com.mysql.jdbc.Driver
+#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
+spring.datasource.url=jdbc:mysql://localhost:3306/db_poseidon?serverTimezone=UTC
+spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL8Dialect
+#debug=true
+
spring.datasource.username=root
-spring.datasource.password=
+spring.datasource.password=rootroot
+
+#useSSL=false
+#server.error.include-message=always
+#server.error.include-binding-errors=always
+
+#Tomcat configuration
+server.port=8080
################### Hibernate Configuration ##########################
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
+#spring.security.user.name=admin
+#spring.security.user.password=password
+#spring.security.user.roles=ADMIN
+
+#Connect whit socials
+spring.security.oauth2.client.registration.github.client-id= 12fbb4cfec84fb56bee8
+spring.security.oauth2.client.registration.github.client-secret=e17c32037892a5332d6ba23aaaaa28d6568548c2
\ No newline at end of file
diff --git a/Poseiden-skeleton/src/main/resources/templates/bidList/add.html b/Poseiden-skeleton/src/main/resources/templates/bidList/add.html
index c0fb91a99e..bc58b4dc33 100644
--- a/Poseiden-skeleton/src/main/resources/templates/bidList/add.html
+++ b/Poseiden-skeleton/src/main/resources/templates/bidList/add.html
@@ -17,10 +17,32 @@ Add New Bid
+