add internal feign key

This commit is contained in:
2026-05-28 13:06:58 +07:00
parent f88c8fe500
commit a4feb5277a
2 changed files with 21 additions and 3 deletions
@@ -25,5 +25,5 @@ public interface DashBoardAppClient {
Map<String, Object> internalDataControl(@RequestBody BaseRequest request);
@GetMapping("api/internal/data-download/{fileId}")
ResponseEntity<Resource> download(@PathVariable String fileId);
ResponseEntity<byte[]> download(@PathVariable String fileId);
}
@@ -4,9 +4,11 @@ import feign.FeignException;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.mvc.method.annotation.StreamingResponseBody;
import ru.soune.nocopy.adminpanel.client.DashBoardAppClient;
import ru.soune.nocopy.adminpanel.dto.BaseRequest;
import ru.soune.nocopy.adminpanel.dto.BaseResponse;
@@ -129,11 +131,27 @@ public class AdminController {
.messageDesc("You can't control")
.build());
}
try {
return dashBoardAppClient.download(fileId);
ResponseEntity<byte[]> response = dashBoardAppClient.download(fileId);
StreamingResponseBody stream = outputStream -> {
outputStream.write(response.getBody());
outputStream.flush();
};
return ResponseEntity.ok()
.contentType(response.getHeaders().getContentType())
.header(HttpHeaders.CONTENT_DISPOSITION,
response.getHeaders().getFirst(HttpHeaders.CONTENT_DISPOSITION))
.header(HttpHeaders.CACHE_CONTROL,
response.getHeaders().getFirst(HttpHeaders.CACHE_CONTROL))
.body(stream);
} catch (FeignException.NotFound e) {
return ResponseEntity.notFound().build();
} catch (FeignException e) {
log.error("Error downloading file: {}", fileId, e);
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
}
}
}