From cbd73d64583349271212cbe2e52af301d2815017 Mon Sep 17 00:00:00 2001 From: backdev-1 Date: Fri, 8 May 2026 16:54:51 +0700 Subject: [PATCH] add section admin permission --- build.gradle | 6 ++++++ .../nocopy/adminpanel/AdminPanelApplication.java | 2 ++ .../adminpanel/client/DashBoardAppClient.java | 15 +++++++++++++++ .../adminpanel/controller/AdminController.java | 16 ++++++++++++++++ src/main/resources/application.yaml | 8 +++++++- 5 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 src/main/java/ru/soune/nocopy/adminpanel/client/DashBoardAppClient.java diff --git a/build.gradle b/build.gradle index d1c6244..4411033 100644 --- a/build.gradle +++ b/build.gradle @@ -20,6 +20,11 @@ configurations { } } +dependencyManagement { + imports { + mavenBom "org.springframework.cloud:spring-cloud-dependencies:2023.0.0" + } +} repositories { mavenCentral() @@ -41,5 +46,6 @@ dependencies { testImplementation 'org.springframework.boot:spring-boot-starter-data-jpa-test' testImplementation 'org.springframework.boot:spring-boot-starter-webmvc-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' + implementation 'org.springframework.cloud:spring-cloud-starter-openfeign:4.1.0' } diff --git a/src/main/java/ru/soune/nocopy/adminpanel/AdminPanelApplication.java b/src/main/java/ru/soune/nocopy/adminpanel/AdminPanelApplication.java index 0fc77f6..a998898 100644 --- a/src/main/java/ru/soune/nocopy/adminpanel/AdminPanelApplication.java +++ b/src/main/java/ru/soune/nocopy/adminpanel/AdminPanelApplication.java @@ -1,9 +1,11 @@ package ru.soune.nocopy.adminpanel; import org.springframework.boot.SpringApplication; +import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication +@EnableFeignClients public class AdminPanelApplication { public static void main(String[] args) { diff --git a/src/main/java/ru/soune/nocopy/adminpanel/client/DashBoardAppClient.java b/src/main/java/ru/soune/nocopy/adminpanel/client/DashBoardAppClient.java new file mode 100644 index 0000000..795e39c --- /dev/null +++ b/src/main/java/ru/soune/nocopy/adminpanel/client/DashBoardAppClient.java @@ -0,0 +1,15 @@ +package ru.soune.nocopy.adminpanel.client; + +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import ru.soune.nocopy.adminpanel.dto.BaseRequest; + +import java.util.Map; + +@FeignClient(name = "dashboard", url = "${nocopy-dashboard.url}") +public interface DashBoardAppClient { + + @PostMapping("/api/v1/data") + Map getUsersWithPagination(@RequestBody BaseRequest request); +} diff --git a/src/main/java/ru/soune/nocopy/adminpanel/controller/AdminController.java b/src/main/java/ru/soune/nocopy/adminpanel/controller/AdminController.java index d408846..9b079ed 100644 --- a/src/main/java/ru/soune/nocopy/adminpanel/controller/AdminController.java +++ b/src/main/java/ru/soune/nocopy/adminpanel/controller/AdminController.java @@ -7,6 +7,7 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import ru.soune.nocopy.adminpanel.client.DashBoardAppClient; import ru.soune.nocopy.adminpanel.dto.BaseRequest; import ru.soune.nocopy.adminpanel.dto.BaseResponse; import ru.soune.nocopy.adminpanel.handler.RequestHandler; @@ -22,6 +23,8 @@ public class AdminController { private final Map handlers; + private final DashBoardAppClient dashBoardAppClient; + @PostMapping public ResponseEntity handleRequest(@RequestBody BaseRequest request) { log.info("Received request: msg_id={}, version={}", request.getMsgId(), request.getVersion()); @@ -55,4 +58,17 @@ public class AdminController { ); } } + + @PostMapping("/get-users") + public ResponseEntity handleUsers(@RequestBody BaseRequest request) { + Map response = dashBoardAppClient.getUsersWithPagination(request); + + return ResponseEntity.ok( + BaseResponse.builder() + .msgId(request.getMsgId()) + .messageCode(MessageCode.SUCCESS.getCode()) + .messageDesc(MessageCode.SUCCESS.getDescription()) + .messageBody(response) + .build()); + } } diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index 3efd934..28764bf 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -1,4 +1,7 @@ spring: + cloud: + compatibility-verifier: + enabled: false datasource: url: jdbc:postgresql://${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB} username: ${POSTGRES_USER} @@ -13,4 +16,7 @@ server: jwt: secret: Z29nb3Bvd2VycmFuZ2VydHVtYmF5YW1iZjMyNDIyMjh3aW5lcndpbmVy - expiration: 3600000 \ No newline at end of file + expiration: 3600000 + +nocopy-dashboard: + url: http://localhost:3001 \ No newline at end of file