diff --git a/org_ccalm_dbms.yml b/org_ccalm_dbms.yml
index ea83e88..97fad5b 100644
--- a/org_ccalm_dbms.yml
+++ b/org_ccalm_dbms.yml
@@ -11,7 +11,7 @@ issuer:
spring:
application:
- name: org_ccalm_dbms
+ name: org-ccalm-dbms
datasource:
url: jdbc:postgresql://91.201.214.156:5432/CCALM?ApplicationName=org_ccalm_dbms&ssl=true&sslmode=require&connectTimeout=10000&socketTimeout=10000
username: postgres
@@ -41,7 +41,6 @@ access:
refresh:
time: 43200
-
mail:
host: smtp.yandex.ru
port: 465
diff --git a/pom.xml b/pom.xml
index d12b9ea..286d1d6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@
org.ccalm
dbms
- 0.0.1-SNAPSHOT
+ 1.0.1
dbms
Database management system
@@ -100,9 +100,29 @@
commons-io
2.16.1
+
+
+ org.springdoc
+ springdoc-openapi-starter-webmvc-ui
+ 2.8.4
+
+
+ javax.annotation
+ javax.annotation-api
+ 1.3.2
+
+
+
+ org.projectlombok
+ lombok
+ 1.18.36
+ provided
+
+
+ org-ccalm-dbms
org.springframework.boot
@@ -121,7 +141,7 @@
2.22.2
- file:kz_mcp_dbms.properties
+ file:org_ccalm_dbms.yml
diff --git a/src/main/java/logging/JavaLogger.java b/src/main/java/logging/JavaLogger.java
new file mode 100644
index 0000000..2fb41f9
--- /dev/null
+++ b/src/main/java/logging/JavaLogger.java
@@ -0,0 +1,18 @@
+package logging;
+
+import dbms.DBMSRecords;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+public class JavaLogger implements logging.Logger {
+ private final Logger logger;
+
+ public JavaLogger(Class> clazz) {
+ this.logger = LogManager.getLogger(clazz);
+ }
+
+ public void debug(String msg) { this.logger.debug(msg); }
+ public void info(String msg) { this.logger.info(msg); }
+ public void warn(String msg) { this.logger.warn(msg); }
+ public void error(String msg) { this.logger.error(msg); }
+}
diff --git a/src/main/java/logging/Logger.java b/src/main/java/logging/Logger.java
new file mode 100644
index 0000000..02de834
--- /dev/null
+++ b/src/main/java/logging/Logger.java
@@ -0,0 +1,12 @@
+package logging;
+
+public interface Logger {
+ void debug(String msg);
+ void info(String msg);
+ void warn(String msg);
+ void error(String msg);
+
+ static Logger getLogger(Class> clazz) {
+ return LoggerFactory.createLogger(clazz); // Подменяется реализацией
+ }
+}
diff --git a/src/main/java/logging/LoggerFactory.java b/src/main/java/logging/LoggerFactory.java
new file mode 100644
index 0000000..30d3660
--- /dev/null
+++ b/src/main/java/logging/LoggerFactory.java
@@ -0,0 +1,14 @@
+package logging;
+
+import org.apache.logging.slf4j.SLF4JLogger;
+
+public class LoggerFactory {
+ public static Logger createLogger(Class> clazz) {
+ // Тут выбираешь реализацию по флагу/условию
+ //if (isAndroid()) {
+ // return new AndroidLogger(clazz);
+ //} else {
+ return new JavaLogger(clazz);
+ //}
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/models/ErrorResponseModel.java b/src/main/java/models/ErrorResponseModel.java
new file mode 100644
index 0000000..a7b5689
--- /dev/null
+++ b/src/main/java/models/ErrorResponseModel.java
@@ -0,0 +1,113 @@
+package models;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.UUID;
+
+@Schema(
+ description = "Error API response",
+ example = "{ \"error_code\": 10000, \"error_message\": [\"Internal_Server_Error\",\"Please_log_in\"], \"error_setting\": [\"99;day\",\"1;2\"], \"error_marker\": \"2a449883-c7c6-468e-b3ae-5f73fc96627d\" }"
+)
+
+public class ErrorResponseModel {
+
+ @JsonIgnore
+ private int httpCode;
+
+ @Schema(description = "Error code", example = "10000")
+ @JsonProperty("error_code")
+ private int errorCode;
+
+ @Schema(description = "List of error descriptions", example = "[\"Internal_Server_Error\",\"Please_log_in\"]")
+ @JsonProperty("error_message")
+ private List errorMessage;
+
+ @Schema(description = "Options for translated text", example = "[\"99;day\",\"1;2\"]")
+ @JsonProperty("error_setting")
+ private List errorSetting;
+
+ @Schema(description = "Unique identifier for searching in the database", example = "4260aad8-f7ee-4be4-b52c-15d56ec83232")
+ @JsonProperty("error_marker")
+ private String errorMarker;
+
+ public ErrorResponseModel(int httpCode, int errorCode) {
+ this.httpCode = httpCode;
+ this.errorCode = errorCode;
+ this.errorMessage = null;
+ this.errorSetting = null;
+ this.errorMarker = UUID.randomUUID().toString();
+ }
+
+ public ErrorResponseModel(int httpCode, int errorCode, List errorMessage, String errorMarker) {
+ this.httpCode = httpCode;
+ this.errorCode = errorCode;
+ this.errorMessage = errorMessage;
+ this.errorMarker = errorMarker;
+ }
+
+ public ErrorResponseModel(int httpCode, int errorCode, String errorMessage, String errorMarker) {
+ this.httpCode = httpCode;
+ this.errorCode = errorCode;
+ this.errorMessage = Collections.singletonList(errorMessage);
+ this.errorMarker = errorMarker;
+ }
+
+ public ErrorResponseModel(int httpCode, int errorCode, String errorMessage, String errorSetting, String errorMarker) {
+ this.httpCode = httpCode;
+ this.errorCode = errorCode;
+ this.errorMessage = Collections.singletonList(errorMessage);
+ this.errorSetting = Collections.singletonList(errorSetting);
+ this.errorMarker = errorMarker;
+ }
+
+ public ErrorResponseModel(int httpCode, int errorCode, List errorMessage, List errorSetting, String errorMarker) {
+ this.httpCode = httpCode;
+ this.errorCode = errorCode;
+ this.errorMessage = errorMessage;
+ this.errorSetting = errorSetting;
+ this.errorMarker = errorMarker;
+ }
+
+ public int getHttp_code() {
+ return httpCode;
+ }
+ public void setHttp_code(int errorCode) {
+ this.httpCode = httpCode;
+ }
+
+ public int getError_code() {
+ return errorCode;
+ }
+
+ public void setError_code(int errorCode) {
+ this.errorCode = errorCode;
+ }
+
+ public List getError_message() {
+ return errorMessage;
+ }
+
+ public void setError_message(List errorMessage) {
+ this.errorMessage = errorMessage;
+ }
+
+ public void setError_setting(List errorSetting) {
+ this.errorSetting = errorSetting;
+ }
+
+ public List getError_setting() {
+ return errorSetting;
+ }
+
+ public void setError_marker(String errorMarker) {
+ this.errorMarker = errorMarker;
+ }
+
+ public String getError_marker() {
+ return errorMarker;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/org/ccalm/dbms/MainController.java b/src/main/java/org/ccalm/dbms/MainController.java
index d479894..069449d 100644
--- a/src/main/java/org/ccalm/dbms/MainController.java
+++ b/src/main/java/org/ccalm/dbms/MainController.java
@@ -1,28 +1,37 @@
package org.ccalm.dbms;
import com.zaxxer.hikari.HikariDataSource;
+import models.ErrorResponseModel;
import org.json.JSONException;
import org.json.JSONObject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.slf4j.MarkerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.ApplicationContext;
+import org.springframework.core.env.Environment;
+import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
+import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
import java.io.InputStream;
import java.util.Properties;
import java.util.Set;
+import java.util.UUID;
import java.util.stream.Collectors;
@Controller
public class MainController {
+ private static final Logger logger = LoggerFactory.getLogger(MainController.class);
+
+ private final NamedParameterJdbcTemplate jdbcTemplate;
+ private final Environment environment;
private HikariDataSource dataSource;
@Value("${spring.application.name}")
@@ -32,36 +41,46 @@ public class MainController {
public void DatabaseService(HikariDataSource dataSource) {
this.dataSource = dataSource;
}
-
+ //---------------------------------------------------------------------------
+ @Autowired
+ public MainController(NamedParameterJdbcTemplate jdbcTemplate, HikariDataSource dataSource, Environment environment) {
+ this.jdbcTemplate = jdbcTemplate;
+ this.environment = environment;
+ this.dataSource = dataSource;
+ }
+ //---------------------------------------------------------------------------
@RequestMapping(value = "/",method = {RequestMethod.POST,RequestMethod.GET},produces = "application/json;charset=utf-8")
@ResponseBody
- public ResponseEntity index() {
- JSONObject json = new JSONObject();
+ public ResponseEntity