diff --git a/docker_compose/credit_tracker_config.env b/docker_compose/credit_tracker_config.env
index 1af4328..fe34ed0 100644
--- a/docker_compose/credit_tracker_config.env
+++ b/docker_compose/credit_tracker_config.env
@@ -1,5 +1,5 @@
#commons
-APP_VERSION=1.11
+APP_VERSION=1.12
REGISTRY_URL=rh8-vm3.nbki.msk:5000
JMX_PORT=
JMX_HOSTNAME=
diff --git a/pom.xml b/pom.xml
index fa3b295..66d84d3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@
ru.nbch
credit-tracker
- 1.11
+ 1.12
credit_tracker
Credit Tracker Application
diff --git a/src/main/java/ru/nbch/credit_tracker/controller/SignalController.java b/src/main/java/ru/nbch/credit_tracker/controller/SignalController.java
index 7393f6d..00b268b 100644
--- a/src/main/java/ru/nbch/credit_tracker/controller/SignalController.java
+++ b/src/main/java/ru/nbch/credit_tracker/controller/SignalController.java
@@ -32,6 +32,11 @@ public class SignalController {
return signalFacade.findActivePackages(activePackagesRequest);
}
+ @PostMapping(value = "/all_packages", consumes = MediaType.APPLICATION_XML_VALUE, produces = MediaType.APPLICATION_XML_VALUE)
+ public ResponseEntity findAllPackages(@RequestBody MonitoringActivePackagesRequest activePackagesRequest) {
+ return signalFacade.findAllPackages(activePackagesRequest);
+ }
+
@PostMapping(value = "/delete", params = {"username", "packageName"}, produces = MediaType.APPLICATION_XML_VALUE)
public ResponseEntity deletePackage(@RequestParam("username") String username, @RequestParam("packageName") String packageName) {
return signalFacade.deletePackage(username, packageName);
diff --git a/src/main/java/ru/nbch/credit_tracker/entities/dto/UserPackage.java b/src/main/java/ru/nbch/credit_tracker/entities/dto/UserPackage.java
index aef6bfa..f5cb245 100644
--- a/src/main/java/ru/nbch/credit_tracker/entities/dto/UserPackage.java
+++ b/src/main/java/ru/nbch/credit_tracker/entities/dto/UserPackage.java
@@ -15,5 +15,6 @@ public class UserPackage {
private String packageName;
private LocalDateTime createdAt;
private String status;
+ private LocalDateTime deactivatedAt;
private String lastDownloadedReport;
}
diff --git a/src/main/java/ru/nbch/credit_tracker/entities/user_response/active_packages/Package.java b/src/main/java/ru/nbch/credit_tracker/entities/user_response/active_packages/Package.java
index 969006b..e56d1c2 100644
--- a/src/main/java/ru/nbch/credit_tracker/entities/user_response/active_packages/Package.java
+++ b/src/main/java/ru/nbch/credit_tracker/entities/user_response/active_packages/Package.java
@@ -12,7 +12,9 @@ import lombok.Setter;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"packageName",
- "createdAt"
+ "createdAt",
+ "status",
+ "deactivatedAt"
})
public class Package {
@@ -20,4 +22,8 @@ public class Package {
protected String packageName;
@XmlElement(name = "CreatedAt", required = true)
protected String createdAt;
+ @XmlElement(name = "Status", required = false)
+ protected String status;
+ @XmlElement(name = "DeactivatedAt", required = false)
+ protected String deactivatedAt;
}
diff --git a/src/main/java/ru/nbch/credit_tracker/enums/SignalError.java b/src/main/java/ru/nbch/credit_tracker/enums/SignalError.java
index 64e75cd..0b096f7 100644
--- a/src/main/java/ru/nbch/credit_tracker/enums/SignalError.java
+++ b/src/main/java/ru/nbch/credit_tracker/enums/SignalError.java
@@ -16,7 +16,8 @@ public enum SignalError implements IEnumKeyCode {
ERROR_014("014", "Файл не найден"),
ERROR_015("015", "У данного пользователя не найдено активных пакетов"),
ERROR_016("016", "Нет активного пакета с именем "),
- ERROR_017("017", "При обработке запроса произошла ошибка. Повторите запрос позже или обратитесь в службу технической поддержки"); // TODO get rid of duplicate?
+ ERROR_017("017", "При обработке запроса произошла ошибка. Повторите запрос позже или обратитесь в службу технической поддержки"), // TODO get rid of duplicate?
+ ERROR_019("019", "У данного пользователя не найдено ни одного пакета");
private final String code;
private final String message;
diff --git a/src/main/java/ru/nbch/credit_tracker/facade/SignalFacade.java b/src/main/java/ru/nbch/credit_tracker/facade/SignalFacade.java
index 12e7bf7..575662b 100644
--- a/src/main/java/ru/nbch/credit_tracker/facade/SignalFacade.java
+++ b/src/main/java/ru/nbch/credit_tracker/facade/SignalFacade.java
@@ -281,6 +281,43 @@ public class SignalFacade {
}
}
+ public ResponseEntity findAllPackages(MonitoringActivePackagesRequest activePackagesRequest) {
+ try {
+ AuthorizationService.AuthResult authResult = authorizationService.findAuthInfo(activePackagesRequest.getUserId(), activePackagesRequest.getPassword());
+ if (!authResult.isSuccess()) {
+ throw clientExcp(authResult.getError(), XmlErrorFormat.MonitoringActivePackagesError);
+ }
+ List activePackages = signalService.findAllPackages(activePackagesRequest.getUserId());
+
+ if (!activePackages.isEmpty()) {
+ MonitoringActivePackagesResponse response = new MonitoringActivePackagesResponse();
+ response.setStatus("OK");
+ response.setMembercode(activePackagesRequest.getUserId().substring(0, 6));
+ Packages packages = new Packages();
+ activePackages.forEach(data -> {
+ Package pack = new Package();
+ pack.setPackageName(data.getPackageName());
+ pack.setCreatedAt(data.getCreatedAt() != null ? data.getCreatedAt().toString() : null);
+ pack.setStatus(data.getStatus());
+ if (data.getStatus().equals(Status.DELETED.name())) {
+ pack.setDeactivatedAt(data.getDeactivatedAt() != null ? data.getDeactivatedAt().toString() : null);
+ }
+ packages.getPackages().add(pack);
+ });
+ response.setPackages(packages);
+ return ResponseEntity.ok(response);
+ } else {
+ throw clientExcp(SignalError.ERROR_019, XmlErrorFormat.MonitoringActivePackagesError);
+ }
+ } catch (Exception e) {
+ if (e instanceof SignalClientException) {
+ throw (SignalClientException) e;
+ }
+ log.error(e.getMessage(), e);
+ throw serverExcp(SignalError.ERROR_013, XmlErrorFormat.MonitoringActivePackagesError);
+ }
+ }
+
public ResponseEntity deletePackage(String username, String packageName) {
try {
if (!signalService.isPackageExists(username, packageName)) {
diff --git a/src/main/java/ru/nbch/credit_tracker/mapper/signal/UserPackageMapper.java b/src/main/java/ru/nbch/credit_tracker/mapper/signal/UserPackageMapper.java
index 436488a..0540fa1 100644
--- a/src/main/java/ru/nbch/credit_tracker/mapper/signal/UserPackageMapper.java
+++ b/src/main/java/ru/nbch/credit_tracker/mapper/signal/UserPackageMapper.java
@@ -29,4 +29,6 @@ public interface UserPackageMapper {
List findUserPackages(@Param("userId") String userId, @Param("statuses") List status);
List findAllPackagesByStatus(@Param("status") String status);
+
+ List findAllPackagesByUserId(@Param("userId") String userId);
}
diff --git a/src/main/java/ru/nbch/credit_tracker/service/SignalService.java b/src/main/java/ru/nbch/credit_tracker/service/SignalService.java
index defd4f7..d685077 100644
--- a/src/main/java/ru/nbch/credit_tracker/service/SignalService.java
+++ b/src/main/java/ru/nbch/credit_tracker/service/SignalService.java
@@ -310,6 +310,10 @@ public class SignalService {
return userPackageService.findUserPackages(userId, Status.ON_MONITORING, Status.PROCESSING);
}
+ public List findAllPackages(String userId) {
+ return userPackageService.findAllPackagesByUserId(userId);
+ }
+
public boolean isPackageExists(String username, String packageName) {
return userPackageService.isPackageExists(username, packageName, Status.ON_MONITORING);
}
diff --git a/src/main/java/ru/nbch/credit_tracker/service/signal/UserPackageService.java b/src/main/java/ru/nbch/credit_tracker/service/signal/UserPackageService.java
index 0dbc049..2699ec6 100644
--- a/src/main/java/ru/nbch/credit_tracker/service/signal/UserPackageService.java
+++ b/src/main/java/ru/nbch/credit_tracker/service/signal/UserPackageService.java
@@ -54,6 +54,10 @@ public class UserPackageService {
return mapper.findUserPackages(userId.substring(0, 6), Arrays.stream(status).map(Enum::name).toList());
}
+ public List findAllPackagesByUserId(String userId) {
+ return mapper.findAllPackagesByUserId(userId.substring(0, 6));
+ }
+
public List findAllPackagesByStatus(Status status) {
return mapper.findAllPackagesByStatus(status.name());
}
diff --git a/src/main/resources/mybatis/mapper/signal/UserPackageMapper.xml b/src/main/resources/mybatis/mapper/signal/UserPackageMapper.xml
index 9022c27..263aa5a 100644
--- a/src/main/resources/mybatis/mapper/signal/UserPackageMapper.xml
+++ b/src/main/resources/mybatis/mapper/signal/UserPackageMapper.xml
@@ -11,6 +11,7 @@
+
@@ -70,7 +71,7 @@