Added deleting package from nbki service

This commit is contained in:
Mikhail Trofimov 2025-06-18 18:57:22 +03:00
parent a78e49f1e0
commit 57bfe02fe9
2 changed files with 40 additions and 7 deletions

View file

@ -285,10 +285,12 @@ public class SignalFacade {
public ResponseEntity<MonitoringPackageDeleteResponse> deletePackage(String username, String packageName) { public ResponseEntity<MonitoringPackageDeleteResponse> deletePackage(String username, String packageName) {
try { try {
if(!signalService.isPackageExists(username, packageName)) { // if(!signalService.isPackageExists(username, packageName)) {
throw new SignalErrorException(SignalError.ERROR_016, packageName, new MonitoringPackageDeleteError(), true); // throw new SignalErrorException(SignalError.ERROR_016, packageName, new MonitoringPackageDeleteError(), true);
} // }
MonitoringPackageDeleteResponse response = signalService.deletePackage(username, packageName); MonitoringPackageDeleteResponse response = signalService.deletePackage(username, packageName);
signalRestService.deletePackage(username, packageName);
return ResponseEntity.ok(response); return ResponseEntity.ok(response);
} catch (Exception e) { } catch (Exception e) {
if (e instanceof SignalErrorException) { if (e instanceof SignalErrorException) {

View file

@ -5,10 +5,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.core.io.ByteArrayResource; import org.springframework.core.io.ByteArrayResource;
import org.springframework.core.io.Resource; import org.springframework.core.io.Resource;
import org.springframework.http.HttpEntity; import org.springframework.http.*;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap; import org.springframework.util.MultiValueMap;
@ -23,6 +20,8 @@ import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.security.MessageDigest; import java.security.MessageDigest;
import java.util.Base64; import java.util.Base64;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.zip.GZIPOutputStream; import java.util.zip.GZIPOutputStream;
@Slf4j @Slf4j
@ -30,6 +29,7 @@ import java.util.zip.GZIPOutputStream;
public class SignalRestService { public class SignalRestService {
private static String UPDATE_URI = "update"; private static String UPDATE_URI = "update";
private static String DELETE_URI = "delete";
private final RestTemplate restTemplate; private final RestTemplate restTemplate;
private final XmlUtilService xmlUtilService; private final XmlUtilService xmlUtilService;
@ -85,6 +85,37 @@ public class SignalRestService {
}; };
} }
public void deletePackage(String username, String packageName) {
String packCode = username.substring(0, 6) + "_" + packageName;
String url = DELETE_URI + "?packCode=" + packCode;
HttpHeaders headers = new HttpHeaders();
headers.setBasicAuth(authToken);
HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<>(headers);
ResponseEntity<String> response = restTemplate.exchange(
url,
HttpMethod.GET,
requestEntity,
String.class
);
String answer = response.getBody();
if (response.getStatusCode().value() == 200 && answer != null && answer.contains("<Error>")) {
if (answer.contains("<description>")) {
Pattern pattern = Pattern.compile("<description>(.*?)</description>");
Matcher matcher = pattern.matcher(answer);
if (matcher.find()) {
String description = matcher.group(1);
log.error("Ошибка при удалении пакета из сервиса НБКИ. packCode={}. Описание: {}", packCode, description);
}
} else {
log.error("Ошибка при удалении пакета из сервиса НБКИ. packCode={}", packCode);
}
} else if (response.getStatusCode().value() != 200) {
log.error("Ошибка при удалении пакета из сервиса НБКИ. Код ошибки: {} packCode={}", response.getStatusCode().value(), packCode);
}
}
private String buildToken(String signalsToken, String signalsuser) throws Exception { private String buildToken(String signalsToken, String signalsuser) throws Exception {
try { try {
MessageDigest md = MessageDigest.getInstance("MD5"); MessageDigest md = MessageDigest.getInstance("MD5");