dev #1

Open
backdev wants to merge 47 commits from dev into main
2 changed files with 24 additions and 4 deletions
Showing only changes of commit 0a053a5657 - Show all commits
@@ -1,8 +1,12 @@
package ru.soune.nocopy.adminpanel.client; package ru.soune.nocopy.adminpanel.client;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.servlet.mvc.method.annotation.StreamingResponseBody;
import ru.soune.nocopy.adminpanel.dto.BaseRequest; import ru.soune.nocopy.adminpanel.dto.BaseRequest;
import java.util.Map; import java.util.Map;
@@ -18,4 +22,7 @@ public interface DashBoardAppClient {
@PostMapping("api/internal/data-control") @PostMapping("api/internal/data-control")
Map<String, Object> internalDataControl(@RequestBody BaseRequest request); Map<String, Object> internalDataControl(@RequestBody BaseRequest request);
@GetMapping("api/internal/data-download/{fileId}")
public ResponseEntity<StreamingResponseBody> download(@PathVariable String fileId);
} }
@@ -4,10 +4,7 @@ import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
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.client.DashBoardAppClient;
import ru.soune.nocopy.adminpanel.dto.BaseRequest; import ru.soune.nocopy.adminpanel.dto.BaseRequest;
import ru.soune.nocopy.adminpanel.dto.BaseResponse; import ru.soune.nocopy.adminpanel.dto.BaseResponse;
@@ -117,4 +114,20 @@ public class AdminController {
.messageBody(response) .messageBody(response)
.build()); .build());
} }
@GetMapping("/download/{fileId}")
public ResponseEntity<?> downloadFile(@PathVariable String fileId) {
Long currentUserId = (Long) httpServletRequest.getAttribute("userId");
if (!adminSectionPermissionService.canRead(currentUserId,
AdminSection.USERS)) {
return ResponseEntity.ok(BaseResponse.builder()
.msgId(0)
.messageCode(MessageCode.PERMISSION_DENIED.getCode())
.messageDesc("You can't control")
.build());
}
return dashBoardAppClient.download(fileId);
}
} }