diff --git a/kg_gpti_transit_jwt.yml b/kg_gpti_transit_jwt.yml
index bbf1b57..9ebea0b 100644
--- a/kg_gpti_transit_jwt.yml
+++ b/kg_gpti_transit_jwt.yml
@@ -24,7 +24,10 @@ spring:
connection-timeout: 30000
connection-test-query: SELECT 1
validation-timeout: 5000
-
+ jpa:
+ properties:
+ hibernate:
+ dialect: org.hibernate.dialect.PostgreSQLDialect
redis:
host: 192.168.6.25
port: 6379
@@ -58,3 +61,11 @@ logging:
com:
zaxxer:
hikari: DEBUG
+
+springdoc:
+ api-docs:
+ enabled: false
+ path: /api-docs
+ swagger-ui:
+ enabled: true
+ path: /api-docs-ui
diff --git a/kz_istransit_jwt.yml b/kz_istransit_jwt.yml
index 130734b..cda8578 100644
--- a/kz_istransit_jwt.yml
+++ b/kz_istransit_jwt.yml
@@ -10,7 +10,7 @@ issuer:
spring:
application:
- name: kz_mcp_jwt
+ name: kz_istransit_jwt
datasource:
url: jdbc:postgresql://mcp.kz:5432/mcp
username: igor
@@ -24,6 +24,10 @@ spring:
connection-timeout: 30000
connection-test-query: SELECT 1
validation-timeout: 30000
+ jpa:
+ properties:
+ hibernate:
+ dialect: org.hibernate.dialect.PostgreSQLDialect
redis:
host: 127.0.0.1
port: 6379
@@ -57,3 +61,11 @@ logging:
com:
zaxxer:
hikari: DEBUG
+
+springdoc:
+ api-docs:
+ enabled: true
+ path: /api-docs
+ swagger-ui:
+ enabled: true
+ path: /api-docs-ui
\ No newline at end of file
diff --git a/kz_istransit_test_jwt.yml b/kz_istransit_test_jwt.yml
new file mode 100644
index 0000000..cda8578
--- /dev/null
+++ b/kz_istransit_test_jwt.yml
@@ -0,0 +1,71 @@
+server:
+ port: 8082
+ ssl:
+ enabled: true
+ key-store: classpath:keystore.jks
+ key-store-password: MFNX344yh4
+ key-store-type: PKCS12
+issuer:
+ name: istransit
+
+spring:
+ application:
+ name: kz_istransit_jwt
+ datasource:
+ url: jdbc:postgresql://mcp.kz:5432/mcp
+ username: igor
+ password: VnzbUdcePSLtg22ktz13
+ driver-class-name: org.postgresql.Driver
+ hikari:
+ maximum-pool-size: 10
+ minimum-idle: 5
+ max-lifetime: 600000
+ idle-timeout: 60000
+ connection-timeout: 30000
+ connection-test-query: SELECT 1
+ validation-timeout: 30000
+ jpa:
+ properties:
+ hibernate:
+ dialect: org.hibernate.dialect.PostgreSQLDialect
+ redis:
+ host: 127.0.0.1
+ port: 6379
+ password: 9F3/NKWeOjd815vkadT2DcgVHf6fEpVQXw==
+
+public:
+ key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA30j+pSoKFHSdSulIGzdFtg+z+ANJPOSVFJ6jvehj1sonOqQsI2rz539+FgIrsDZE8iydFAlQNxS8vqYtWiQSksAUId7aOY/eq7mFkGW+U5xIA2OPgIvN0uhW1Edm85jS7aAg/P/c+lLHnPzQIFdsgVrAh4esFvVS10Pj6TjJVprDj0jOraIw84GVt0gYXZTudcvZavWcmGV1mQJf0jDIHQsCRcMJAE2lzBIKpJGPPZke9xs25lm8feTFR0NNjDNvCG4dYAimyAH36UslXa/zIfRB/7r4AB9KPBFxGe8szK1EcXbJY+paq+TazZJ8Lo8nEmpehCdHUNdD9iWtiYRjNQIDAQAB
+private:
+ key: MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDfSP6lKgoUdJ1K6UgbN0W2D7P4A0k85JUUnqO96GPWyic6pCwjavPnf34WAiuwNkTyLJ0UCVA3FLy+pi1aJBKSwBQh3to5j96ruYWQZb5TnEgDY4+Ai83S6FbUR2bzmNLtoCD8/9z6Usec/NAgV2yBWsCHh6wW9VLXQ+PpOMlWmsOPSM6tojDzgZW3SBhdlO51y9lq9ZyYZXWZAl/SMMgdCwJFwwkATaXMEgqkkY89mR73GzbmWbx95MVHQ02MM28Ibh1gCKbIAffpSyVdr/Mh9EH/uvgAH0o8EXEZ7yzMrURxdslj6lqr5NrNknwujycSal6EJ0dQ10P2Ja2JhGM1AgMBAAECggEAPWsLuIzOxv+owJFYpzvV7hV1sJPe0mQh6dEVQ0ioJc3naob8KSXjP1tfaFhigg77eg3xizBgozYOEPcO5IulnD4/i22MY2cCngPjDGwgJUmIuX3qXDaYgBouwCd/1yPDaV+xk0YiF60rgTA9Y5gInbBD40Pbf1kt106yY1WedDaMaogilC6nZwde7H6UQrjoxQ3fSyw9brH04Vma7awcaEYQ6C0NM4uMJFws9jnwDXkYh0QnPW5eIIf9gmr2a+FtKtqlQyZiCjrQOJuU2TQo9wgKiOkVRIfmivXbt5I1O7SkPPUl2mtQAjbZxtHqooLC6It9svO/4rRJY0egjvsGZQKBgQDwCTGhExOahz/UH0I58Ksq44Zz6c6wt7Pt8U2S9L4Sfgjt4Gxu5XcdgMchZHu+xQtONpd7HWO4d9zK1IIHgJ/4IBMA2Lcp7EglHsnuc9II31EU9uP6Ar3yD3UC3zP/lszQs7t3Tagpq3I0bUuSnKH+SMW+mKztg5Xiu4x72HeIGwKBgQDuIpryaOhCEuwN6VguTSStNJe6fxI1NlHLF0anacuT43MotsRXYWRKWdu2nkupB3SqY+Lxipibu8I5CkWoKV8pbGYSqW8YDSzxoSPocTrbkuai7mczMSBCtFZ3nDFx1J3O2IJZaBT4OA+HEVaj+rzeyEYrwACmtSAl+YBNXE4W7wKBgH4ohuIe0aXdQgnuJ/Ol74DKNueDUnQFCVedBOWhJqk3ft/vnW4nwpRKE98UHgnlLIz+Gl3F05ynuu8MBA+HZgyWZwaB4LrzCfQgm4dtbk3leYsoPCgx+r1XrGtG/uBt1NY4MOaCdUj5aDvv2dGD64xnmS8UtYbcKxIQ+sQ4wJJTAoGAVOcVo3Pvyw8ABn25qNhsSSzFJAMGNN6nDue/kxTPNm0Ts+Jl4lmg7jlXcqbBhwRXfiCa20901aF9v+R/rVMC0LwLMIAkUcjwyz2OleM4/uxDOrgRJ1lOjTnK0l5n6pPJp+PdpY7MWytxrdBquZA+Ipf5HMQZ91YAnkl0iyBr3xUCgYBNBIb0fVTlAf7KJ4urjOE+305oRmEU5eHK2KiAViPDj16BuPy/hE11BnZE5HT4AMfuAm6AmLdrdiyb2iROMrsEQ8AFsGaFsY/njXqV75nNWceLpqrMk1FcYmnAEv0X/RhvsPzv79RzEf9jyjZlQ1XMfBfuuwwjWaUTLBcQhGFOqQ==
+access:
+ time: 600
+refresh:
+ time: 43200
+
+captcha:
+ key: PPExpv36jk4Vzda3NpYnXLfuHCLYXqaNrxlOH/Jr/1M=
+ time: 600
+
+mail:
+ host: smtp.yandex.ru
+ port: 465
+ login: info@ccalm.org
+ password: fu2lpsoGPGiq1xlRm8ag
+
+url:
+ reset: https://mcp.test/api/authorization/login/reset
+ main: https://mcp.test/
+
+logging:
+ level:
+ com:
+ zaxxer:
+ hikari: DEBUG
+
+springdoc:
+ api-docs:
+ enabled: true
+ path: /api-docs
+ swagger-ui:
+ enabled: true
+ path: /api-docs-ui
\ No newline at end of file
diff --git a/kz_mcp_jwt.yml b/kz_mcp_jwt.yml
index 680bbe3..8399b2a 100644
--- a/kz_mcp_jwt.yml
+++ b/kz_mcp_jwt.yml
@@ -24,6 +24,10 @@ spring:
connection-timeout: 30000
connection-test-query: SELECT 1
validation-timeout: 30000
+ jpa:
+ properties:
+ hibernate:
+ dialect: org.hibernate.dialect.PostgreSQLDialect
redis:
host: 127.0.0.1
port: 6379
@@ -56,4 +60,12 @@ logging:
level:
com:
zaxxer:
- hikari: DEBUG
\ No newline at end of file
+ hikari: DEBUG
+
+springdoc:
+ api-docs:
+ enabled: true
+ path: /api-docs
+ swagger-ui:
+ enabled: true
+ path: /api-docs-ui
diff --git a/org_ccalm_jwt.yml b/org_ccalm_jwt.yml
index fa7bd35..ec7b376 100644
--- a/org_ccalm_jwt.yml
+++ b/org_ccalm_jwt.yml
@@ -26,6 +26,10 @@ spring:
connection-test-query: SELECT 1
validation-timeout: 5000
validation-interval: 60000
+ jpa:
+ properties:
+ hibernate:
+ dialect: org.hibernate.dialect.PostgreSQLDialect
redis:
host: 127.0.0.1
port: 6379
@@ -64,3 +68,11 @@ refresh:
# com:
# zaxxer:
# hikari: WARN
+
+springdoc:
+ api-docs:
+ enabled: true
+ path: /api-docs
+ swagger-ui:
+ enabled: true
+ path: /api-docs-ui
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index c970224..005aabf 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
org.springframework.boot
spring-boot-starter-parent
- 3.3.3
+ 3.4.2
org.ccalm
@@ -18,26 +18,46 @@
+
+ org.slf4j
+ slf4j-api
+ 2.0.16
+
+
org.springframework.boot
spring-boot-starter-data-redis
- 3.3.3
+
+
+
+ org.apache.logging.log4j
+ log4j-api
+
+
+
org.springframework.boot
spring-boot-starter-web
- 3.3.3
+
+
+ org.springframework.boot
+ spring-boot-starter-logging
org.springframework.boot
spring-boot-starter-test
test
- 3.3.3
org.springframework.boot
spring-boot-starter-data-jpa
- 3.3.3
org.postgresql
@@ -71,22 +91,28 @@
redis.clients
jedis
3.7.0
+
+
+ org.slf4j
+ slf4j-api
+
+
net.logicsquad
nanocaptcha
2.1
-
+
+
-
+ 6.6
+
javax.mail
mail
@@ -113,6 +139,24 @@
1.5.0
+
+ 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
+
+
diff --git a/src/main/java/org/ccalm/jwt/JwtApplication.java b/src/main/java/org/ccalm/jwt/JwtApplication.java
index ef98f7d..f14298b 100644
--- a/src/main/java/org/ccalm/jwt/JwtApplication.java
+++ b/src/main/java/org/ccalm/jwt/JwtApplication.java
@@ -1,7 +1,7 @@
package org.ccalm.jwt;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
@@ -10,7 +10,7 @@ import org.springframework.context.annotation.ComponentScan;
@ComponentScan(basePackages = {"org.ccalm.jwt"})
public class JwtApplication {
- private static final Logger logger = LogManager.getLogger(JwtApplication.class);
+ private static final Logger logger = LoggerFactory.getLogger(JwtApplication.class);
public static void main(String[] args) {
logger.info("Start JwtApplication");
diff --git a/src/main/java/org/ccalm/jwt/MainController.java b/src/main/java/org/ccalm/jwt/MainController.java
index 35352e0..402a175 100644
--- a/src/main/java/org/ccalm/jwt/MainController.java
+++ b/src/main/java/org/ccalm/jwt/MainController.java
@@ -1,14 +1,16 @@
package org.ccalm.jwt;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
import com.warrenstrange.googleauth.GoogleAuthenticator;
import com.warrenstrange.googleauth.GoogleAuthenticatorKey;
import org.ccalm.jwt.models.*;
import org.ccalm.jwt.tools.*;
import com.zaxxer.hikari.HikariDataSource;
import io.jsonwebtoken.*;
-import io.jsonwebtoken.security.Keys;
import jakarta.servlet.ServletContext;
-import jakarta.servlet.http.Cookie;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import net.logicsquad.nanocaptcha.content.LatinContentProducer;
@@ -20,10 +22,10 @@ import org.json.JSONArray;
import org.json.JSONException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
-import org.springframework.core.io.ClassPathResource;
import org.springframework.dao.DataAccessException;
import org.springframework.http.HttpHeaders;
import org.springframework.http.ResponseCookie;
+import org.springframework.http.ResponseEntity;
import org.springframework.jdbc.BadSqlGrammarException;
import org.springframework.stereotype.Controller;
import org.springframework.lang.Nullable;
@@ -36,16 +38,12 @@ import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.commons.text.RandomStringGenerator;
-import redis.clients.jedis.Jedis;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
-import java.nio.file.Files;
import java.security.KeyFactory;
import java.security.PrivateKey;
import java.security.PublicKey;
-import javax.crypto.SecretKey;
-import javax.crypto.spec.SecretKeySpec;
import javax.imageio.ImageIO;
import javax.mail.MessagingException;
import java.awt.*;
@@ -53,14 +51,11 @@ import java.awt.image.BufferedImage;
import java.io.*;
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.X509EncodedKeySpec;
-import java.sql.*;
import java.sql.Date;
import java.time.Duration;
import java.time.Instant;
import java.util.*;
import java.util.List;
-import java.util.jar.Attributes;
-import java.util.jar.JarFile;
import java.util.regex.Pattern;
import java.io.InputStream;
import java.util.Properties;
@@ -125,6 +120,7 @@ public class MainController implements ServletContextAware {
this.jdbcTemplate = jdbcTemplate;
}
+ //---------------------------------------------------------------------------
public String createStrJSONError(int code, String message, String setting, String marker) {
JSONObject json = new JSONObject();
try {
@@ -137,24 +133,24 @@ public class MainController implements ServletContextAware {
}
return json.toString();
}
-
+ //---------------------------------------------------------------------------
public JSONObject createJSONError(int code, String message, String setting, String marker) {
JSONObject json = new JSONObject();
try {
json.put("error_code", code);
json.put("error_message", Arrays.asList(message));
json.put("error_setting", Arrays.asList(setting));
- json.put("error_marker", Arrays.asList(setting));
+ json.put("error_marker", marker);
} catch (JSONException e) {
logger.error(e);
}
return json;
}
-
+ //---------------------------------------------------------------------------
public String createHTMLError(int code, String message) {
return "";
}
-
+ //---------------------------------------------------------------------------
public static int countOccurrences(String str, char symbol) {
int count = 0;
@@ -245,7 +241,6 @@ public class MainController implements ServletContextAware {
return true;
}
-
/**
* Create a Access Cookie
*/
@@ -270,9 +265,10 @@ public class MainController implements ServletContextAware {
return true;
}
- @RequestMapping(value = "/",method = {RequestMethod.POST,RequestMethod.GET},produces = "application/json;charset=utf-8")
+ @Operation(summary = "Get API version(date) of build", description = "Returns the date and API name")
+ @RequestMapping(value = "/",method = RequestMethod.GET,produces = "application/json;charset=utf-8")
@ResponseBody
- public String index(Model model,@RequestParam(required=false,name="lng",defaultValue = "1") String language_id) {
+ public ResponseEntity index() {
JSONObject json = new JSONObject();
try {
json.put("error_code",0);
@@ -299,13 +295,10 @@ public class MainController implements ServletContextAware {
} catch (JSONException e) {
throw new RuntimeException(e);
}
- return json.toString();
+ return ResponseEntity.ok(json.toString());
}
- /*
- @RequestMapping(value = "/get_settings/",method = {RequestMethod.POST,RequestMethod.GET},produces = "application/json;charset=utf-8")
- @ResponseBody
- public String get_settings(Model model, @CookieValue(value = "jwt_a", defaultValue = "") String jwt_a,@RequestBody ActionName action_name, @CookieValue(value = "lng", defaultValue = "1") String language_id) {
- */
+
+ @Operation(summary = "Get user settings from the database by their ID from JWT", description = "Get user settings from the database by their ID from JWT")
@RequestMapping(value = "/get_settings",method = {RequestMethod.POST,RequestMethod.GET},produces = "application/json;charset=utf-8")
@ResponseBody
public String get_settings(@CookieValue(value = "jwt_a", defaultValue = "") String jwt_a, @RequestParam(required=false,name="lng",defaultValue = "1") String language_id) {
@@ -432,30 +425,44 @@ public class MainController implements ServletContextAware {
return json.toString();
}
- @RequestMapping(value = "/access",method = {RequestMethod.POST,RequestMethod.GET},produces = "application/json;charset=utf-8")
+ @Operation(
+ summary = "Get list of permissions",
+ description = "Get list of permissions for user by Access token",
+ responses = {
+ @ApiResponse(
+ responseCode = "200",
+ description = "Успешный ответ",
+ content = @Content(
+ mediaType = "application/json",
+ schema = @Schema(implementation = ApiResponseData.class)
+ )
+ )
+ }
+ )
+ @RequestMapping(value = "/access",method = {RequestMethod.POST},produces = "application/json;charset=utf-8")
@ResponseBody
- public String access(Model model, @CookieValue(value = "jwt_a", defaultValue = "") String jwt_a,@Nullable @RequestBody ActionName action_name,@CookieValue(value = "lng",defaultValue = "1") String language_id) {
-
+ public ApiResponseData access(
+ Model model,
+ @CookieValue(value = "jwt_a", defaultValue = "") String jwt_a,
+ @Nullable @RequestBody ActionNameModel action_name,
+ @CookieValue(value = "lng",defaultValue = "1") String language_id
+ ) {
Translation trt = new Translation(language_id,jdbcTemplate);
- String result=createStrJSONError(10000,trt.trt("Request_not_processed"), (String)null, (String)null);
+ ApiResponseData> result = null;
try {
if(jwt_a.equals("") || countOccurrences(jwt_a, '.')!=2)
{
- result=createStrJSONError(10000,trt.trt("Please_log_in"), (String)null, (String)null);
- return result;
+ return ApiResponseData.error(10000, trt.trt("Please_log_in"),null,null);
}
-
- //Connection conn = getConnection();
//Проверяю подпись токена
Jws claims = null;
- //SecretKey key_a = new SecretKeySpec(Base64.getDecoder().decode(key_a_txt), "HmacSHA256");
try {
claims = Jwts.parserBuilder()
- .setSigningKey(getPublicKey()) //.setSigningKey(key_a)
+ .setSigningKey(getPublicKey())
.build()
.parseClaimsJws(jwt_a);
} catch (Exception e) {
- return createStrJSONError(10000, trt.trt("JWT_token_verification_error"),(String)null,(String)null);
+ return ApiResponseData.error(10000, trt.trt("JWT_token_verification_error"),null,null);
}
String sql = """
select
@@ -474,24 +481,19 @@ public class MainController implements ServletContextAware {
if(action_name == null)
parameters.addValue("action_name", null);
else
- parameters.addValue("action_name", action_name.getActionName());
+ parameters.addValue("action_name", action_name.getAction_name());
List ret = jdbcTemplate.query(sql, parameters, new DBTools.JsonRowMapper());
- JSONObject json = new JSONObject();
- json.put("error_code",0);
- //json.put("error_message","");
- //json.put("error_marker",(String)null);
- JSONArray data = new JSONArray();
- for (int i = 0; i < ret.size(); i++) {
- data.put((new JSONObject(ret.get(i))).getString("name"));
+ List data = new ArrayList<>();
+ for (String s : ret) {
+ data.add((new JSONObject(s)).getString("name"));
}
- json.put("data",data);
- result = json.toString();
+ result = ApiResponseData.success(data);
} catch (Exception e) {
String uuid = UUID.randomUUID().toString();
logger.error(uuid,e);
- result=createStrJSONError(10000,trt.trt("Internal_Server_Error"), (String)null, uuid);
+ return ApiResponseData.error(10000, trt.trt("Internal_Server_Error"),(String)null,uuid);
}
- return result;
+ return (ApiResponseData) result;
}
@RequestMapping(value = "/captcha",method = {RequestMethod.POST,RequestMethod.GET},produces = "application/json;charset=utf-8")
@@ -748,7 +750,8 @@ public class MainController implements ServletContextAware {
return json.toString();
}
- @RequestMapping(value = "/login",method = {RequestMethod.POST,RequestMethod.GET},produces = "application/json;charset=utf-8")
+ @Operation(summary = "Login and get JWT token", description = "Login and get JWT token")
+ @RequestMapping(value = "/login",method = RequestMethod.POST,produces = "application/json;charset=utf-8")
@ResponseBody
public String login(HttpServletResponse response, HttpServletRequest request, @RequestBody LoginModel loginModel, @CookieValue(value = "lng", defaultValue = "1") String language_id) {
diff --git a/src/main/java/org/ccalm/jwt/models/ActionName.java b/src/main/java/org/ccalm/jwt/models/ActionName.java
deleted file mode 100644
index 6e932af..0000000
--- a/src/main/java/org/ccalm/jwt/models/ActionName.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package org.ccalm.jwt.models;
-
-//import jakarta.persistence.Column;
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-public class ActionName {
- //@Column(name = "action_name", nullable = true)
- @JsonProperty("action_name")
- private String action_name;
- public String getActionName() {
- return action_name;
- }
- public void setActionName(String action_name) {
- this.action_name = action_name;
- }
-}
\ No newline at end of file
diff --git a/src/main/java/org/ccalm/jwt/models/ActionNameModel.java b/src/main/java/org/ccalm/jwt/models/ActionNameModel.java
new file mode 100644
index 0000000..621669d
--- /dev/null
+++ b/src/main/java/org/ccalm/jwt/models/ActionNameModel.java
@@ -0,0 +1,17 @@
+package org.ccalm.jwt.models;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Data
+@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY)
+@Schema(description = "Model for getting actions by name")
+public class ActionNameModel {
+
+ @Schema(description = "Action name", example = "arm_")
+ @JsonProperty("action_name")
+ private String action_name;
+
+}
diff --git a/src/main/java/org/ccalm/jwt/models/ApiResponseData.java b/src/main/java/org/ccalm/jwt/models/ApiResponseData.java
new file mode 100644
index 0000000..0532c5f
--- /dev/null
+++ b/src/main/java/org/ccalm/jwt/models/ApiResponseData.java
@@ -0,0 +1,87 @@
+package org.ccalm.jwt.models;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+
+import java.util.Arrays;
+
+@Schema(
+ description = "Стандартный ответ API",
+ example = "{ \"error_code\": 0, \"error_message\": \"\", \"data\": [\"arm_accounting\", \"arm_carrier\", \"arm_hr\"] }"
+)
+public class ApiResponseData {
+
+ @Schema(description = "Код ошибки", example = "0")
+ private int errorCode;
+
+ @Schema(description = "Сообщение об ошибке", example = "")
+ private String errorMessage;
+
+ @Schema(description = "Параметры для переводимого текста", example = "")
+ private String errorSetting;
+
+ @Schema(description = "Уникальный идентификатор для поиска в базе", example = "")
+ private String errorMarker;
+
+ @Schema(description = "Данные", example = "[\"arm_accounting\", \"arm_carrier\", \"arm_hr\"]")
+ private T data;
+
+ public ApiResponseData() {
+ }
+
+ public ApiResponseData(int errorCode, String errorMessage, String errorSetting, String errorMarker, T data) {
+ this.errorCode = errorCode;
+ this.errorMessage = errorMessage;
+ this.errorSetting = errorSetting;
+ this.errorMarker = errorMarker;
+ this.data = data;
+ }
+
+ public static ApiResponseData success(T data) {
+ return new ApiResponseData<>(0, "","","", data);
+ }
+
+ public static ApiResponseData error(int code, String message, String setting, String marker) {
+ return new ApiResponseData<>(code, message, setting, marker, null);
+ }
+
+ // Геттеры и сеттеры
+ public int getErrorCode() {
+ return errorCode;
+ }
+
+ public void setErrorCode(int errorCode) {
+ this.errorCode = errorCode;
+ }
+
+ public String getErrorMessage() {
+ return errorMessage;
+ }
+
+ public void setErrorMessage(String errorMessage) {
+ this.errorMessage = errorMessage;
+ }
+
+ public void setErrorSetting(String errorSetting) {
+ this.errorSetting = errorSetting;
+ }
+
+ public String getErrorSetting() {
+ return errorSetting;
+ }
+
+ public void setErrorMarker(String errorMarker) {
+ this.errorMarker = errorMarker;
+ }
+
+ public String getErrorMarker() {
+ return errorMarker;
+ }
+
+ public T getData() {
+ return data;
+ }
+
+ public void setData(T data) {
+ this.data = data;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/org/ccalm/jwt/models/EmailModel.java b/src/main/java/org/ccalm/jwt/models/EmailModel.java
index 8126efe..e1f8e3b 100644
--- a/src/main/java/org/ccalm/jwt/models/EmailModel.java
+++ b/src/main/java/org/ccalm/jwt/models/EmailModel.java
@@ -1,14 +1,10 @@
package org.ccalm.jwt.models;
+import lombok.Data;
import com.fasterxml.jackson.annotation.JsonProperty;
+@Data
public class EmailModel {
@JsonProperty("email")
- String email;
- public String getEmail() {
- return email;
- }
- public void setEmail(String email) {
- this.email = email;
- }
+ private String email;
}
diff --git a/src/main/java/org/ccalm/jwt/models/ErrorModel.java b/src/main/java/org/ccalm/jwt/models/ErrorModel.java
index 237d9fe..4cb2ff7 100644
--- a/src/main/java/org/ccalm/jwt/models/ErrorModel.java
+++ b/src/main/java/org/ccalm/jwt/models/ErrorModel.java
@@ -1,7 +1,9 @@
package org.ccalm.jwt.models;
import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+@Data
public class ErrorModel {
@JsonProperty("timestamp")
private String timestamp;
diff --git a/src/main/java/org/ccalm/jwt/models/LoginModel.java b/src/main/java/org/ccalm/jwt/models/LoginModel.java
index 212ba3a..4b82f35 100644
--- a/src/main/java/org/ccalm/jwt/models/LoginModel.java
+++ b/src/main/java/org/ccalm/jwt/models/LoginModel.java
@@ -1,5 +1,8 @@
package org.ccalm.jwt.models;
+import lombok.Data;
+
+@Data
public class LoginModel {
//@JsonProperty("login")
private String login;
@@ -8,29 +11,4 @@ public class LoginModel {
//@JsonProperty("appid")
private String totp;
private String appid;
- public String getLogin() {
- return login;
- }
- public void setLogin(String login) {
- this.login = login;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- public String getTotp() { return totp; }
- public void setTotp(String totp) {
- this.totp = totp;
- }
- public String getAppid() {
- return appid;
- }
- public void setAppid(String appid) {
- this.appid = appid;
- }
-
-
-
}
diff --git a/src/main/java/org/ccalm/jwt/models/RestoreModel.java b/src/main/java/org/ccalm/jwt/models/RestoreModel.java
index 86d71ee..3273658 100644
--- a/src/main/java/org/ccalm/jwt/models/RestoreModel.java
+++ b/src/main/java/org/ccalm/jwt/models/RestoreModel.java
@@ -1,25 +1,13 @@
package org.ccalm.jwt.models;
import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+@Data
public class RestoreModel {
@JsonProperty("code")
String code;
@JsonProperty("token")
String token;
-
- public String getCode() {
- return code;
- }
- public void setCode(String code) {
- this.code = code;
- }
-
- public String getToken() {
- return token;
- }
- public void setToken(String token) {
- this.token = token;
- }
}
diff --git a/src/main/java/org/ccalm/jwt/models/SettingModel.java b/src/main/java/org/ccalm/jwt/models/SettingModel.java
index 0419fc7..79d32c2 100644
--- a/src/main/java/org/ccalm/jwt/models/SettingModel.java
+++ b/src/main/java/org/ccalm/jwt/models/SettingModel.java
@@ -1,28 +1,13 @@
package org.ccalm.jwt.models;
import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+@Data
public class SettingModel {
@JsonProperty("identifier")
private String identifier;
@JsonProperty("value")
private String value;
-
- public String getIdentifier() {
- return identifier;
- }
-
- public void setIdentifier(String identifier) {
- this.identifier = identifier;
- }
-
- public String getValue() {
- return value;
- }
-
- public void setValue(String value) {
- this.value = value;
- }
-
}
diff --git a/src/main/java/org/ccalm/jwt/models/UserModel.java b/src/main/java/org/ccalm/jwt/models/UserModel.java
index 0bae762..62bb3d9 100644
--- a/src/main/java/org/ccalm/jwt/models/UserModel.java
+++ b/src/main/java/org/ccalm/jwt/models/UserModel.java
@@ -1,7 +1,9 @@
package org.ccalm.jwt.models;
import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+@Data
public class UserModel {
@JsonProperty("country_id")
private Long countryId;
@@ -21,76 +23,4 @@ public class UserModel {
private String email;
@JsonProperty("password")
private String password;
-
- public Long getCountryId() {
- return countryId;
- }
-
- public void setCountryId(Long countryId) {
- this.countryId = countryId;
- }
-
- public String getCompanyName() {
- return companyName;
- }
-
- public void setCompanyName(String companyName) {
- this.companyName = companyName;
- }
-
- public String getPosition() {
- return position;
- }
-
- public void setPosition(String position) {
- this.position = position;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getSurname() {
- return surname;
- }
-
- public void setSurname(String surname) {
- this.surname = surname;
- }
-
- public String getPatronymic() {
- return patronymic;
- }
-
- public void setPatronymic(String patronymic) {
- this.patronymic = patronymic;
- }
-
- public String getPhone() {
- return phone;
- }
-
- public void setPhone(String phone) {
- this.phone = phone;
- }
-
- public String getEmail() {
- return email;
- }
-
- public void setEmail(String email) {
- this.email = email;
- }
-
- public String getPassword() {
- return password;
- }
-
- public void setPassword(String password) {
- this.password = password;
- }
}