dev #1
@@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user