AttachmentController.java
2.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package isa.qa.controller;
import isa.qa.core.Result;
import isa.qa.core.ResultGenerator;
import isa.qa.dto.request.AttachmentRequestDTO;
import isa.qa.service.AttachmentService;
import lombok.AllArgsConstructor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.Valid;
import java.io.IOException;
import java.util.List;
import static isa.qa.core.ResultCodeEnums.INTERNAL_SERVER_ERROR;
@RestController
@RequestMapping("/api/attachments")
@AllArgsConstructor
public class AttachmentController {
/**
* logger
*/
private static final Logger LOGGER = LoggerFactory.getLogger(AttachmentController.class);
private final AttachmentService attachmentService;
@PostMapping("/actions/upload")
public Result uploadFile(@RequestHeader("Authorization") String accessKey, @RequestPart MultipartFile file) {
LOGGER.info("API 调用 :App client upload a new attachment");
try {
return ResultGenerator.genSuccessResult(attachmentService.uploadFile(accessKey, file));
} catch (IOException e) {
return ResultGenerator.genFailResult(INTERNAL_SERVER_ERROR, "Save file occurs error");
}
}
@PostMapping("/actions/batchUpload")
public Result uploadFiles(@RequestHeader("Authorization") String accessKey, @RequestPart List<MultipartFile> files) {
LOGGER.info("API 调用 :App client batch upload attachments");
try {
return ResultGenerator.genSuccessResult(attachmentService.uploadFiles(accessKey, files));
} catch (IOException e) {
return ResultGenerator.genFailResult(INTERNAL_SERVER_ERROR, "Save file occurs error");
}
}
@DeleteMapping("/actions/delete")
public Result deleteFile(@RequestHeader("Authorization") String accessKey, @Valid @RequestBody AttachmentRequestDTO requestDTO) {
LOGGER.info("API 调用 :APP client delete the attachment");
return ResultGenerator.genSuccessResult(attachmentService.deleteFile(accessKey, requestDTO.getName()));
}
@DeleteMapping("/managers/actions/delete")
public Result deleteFile(@Valid @RequestBody AttachmentRequestDTO requestDTO) {
LOGGER.info("API 调用 :Manager delete the file");
return ResultGenerator.genSuccessResult(attachmentService.deleteFile(requestDTO.getName()));
}
}