fixed: response status 변경, list 객체 바인딩 수정

This commit is contained in:
shinmj
2021-11-11 09:57:07 +09:00
parent 8c34a5f56e
commit 5af904b97a
39 changed files with 96 additions and 37 deletions

View File

@@ -10,6 +10,7 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.http.ContentDisposition;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
@@ -56,6 +57,7 @@ public class AttachmentApiController {
* @throws Exception
*/
@PostMapping(value = "/api/v1/upload")
@ResponseStatus(HttpStatus.CREATED)
public AttachmentFileResponseDto upload(@RequestParam("file") MultipartFile file) {
return attachmentService.uploadFile(file);
}
@@ -69,6 +71,7 @@ public class AttachmentApiController {
* @return
*/
@PostMapping(value = "/api/v1/upload/multi")
@ResponseStatus(HttpStatus.CREATED)
public List<AttachmentFileResponseDto> uploadMulti(@RequestParam("files") List<MultipartFile> files) {
return attachmentService.uploadFiles(files);
}
@@ -81,6 +84,7 @@ public class AttachmentApiController {
* @return
*/
@PostMapping(value = "/api/v1/upload/editor")
@ResponseStatus(HttpStatus.CREATED)
public AttachmentEditorResponseDto uploadEditor(@RequestBody AttachmentBase64RequestDto editorRequestDto) {
return attachmentService.uploadEditor(editorRequestDto);
}
@@ -210,6 +214,7 @@ public class AttachmentApiController {
* @return 새로 생성한 첨부파일 code
*/
@PostMapping(value = "/api/v1/attachments/file")
@ResponseStatus(HttpStatus.CREATED)
public String save(@RequestBody List<AttachmentTempSaveRequestDto> saveRequestDtoList) {
return attachmentService.save(saveRequestDtoList);
}
@@ -260,6 +265,7 @@ public class AttachmentApiController {
* @param uniqueId
*/
@DeleteMapping(value = "/api/v1/attachments/{uniqueId}")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void delete(@PathVariable String uniqueId) {
attachmentService.delete(uniqueId);
}
@@ -273,6 +279,7 @@ public class AttachmentApiController {
* @return
*/
@PostMapping(value = "/api/v1/attachments/upload", consumes = {MediaType.MULTIPART_FORM_DATA_VALUE, MediaType.APPLICATION_JSON_VALUE})
@ResponseStatus(HttpStatus.CREATED)
public String uploadAndSave(@RequestPart(value = "files", required = true) List<MultipartFile> files,
@RequestPart(value = "info", required = false) AttachmentUploadRequestDto uploadRequestDto) {
return attachmentService.uploadAndSave(files, uploadRequestDto);
@@ -339,6 +346,7 @@ public class AttachmentApiController {
* @param attachmentCode
*/
@DeleteMapping("/api/v1/attachments/{attachmentCode}/children")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void deleteAllEmptyEntity(@PathVariable String attachmentCode) {
attachmentService.deleteAllEmptyEntity(attachmentCode);
}

View File

@@ -7,6 +7,7 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.web.PageableDefault;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
@@ -94,6 +95,7 @@ public class BannerApiController {
* @return BannerResponseDto 배너 상세 응답 DTO
*/
@PostMapping("/api/v1/banners")
@ResponseStatus(HttpStatus.CREATED)
public BannerResponseDto save(@RequestBody @Valid BannerSaveRequestDto requestDto) {
return bannerService.save(requestDto);
}
@@ -128,6 +130,7 @@ public class BannerApiController {
* @param bannerNo 배너 번호
*/
@DeleteMapping("/api/v1/banners/{bannerNo}")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void delete(@PathVariable Integer bannerNo) {
bannerService.delete(bannerNo);
}

View File

@@ -10,6 +10,7 @@ import org.egovframe.cloud.portalservice.domain.code.CodeRepository;
import org.egovframe.cloud.portalservice.service.code.CodeService;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
@@ -79,6 +80,7 @@ public class CodeApiController {
* @return
*/
@PostMapping("/api/v1/codes")
@ResponseStatus(HttpStatus.CREATED)
public String save(@RequestBody @Valid CodeSaveRequestDto requestDto) {
return codeService.save(requestDto);
}
@@ -113,6 +115,7 @@ public class CodeApiController {
* @param codeId
*/
@DeleteMapping("/api/v1/codes/{codeId}")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void delete(@PathVariable String codeId) {
codeService.delete(codeId);
}

View File

@@ -6,6 +6,7 @@ import org.egovframe.cloud.portalservice.domain.code.CodeRepository;
import org.egovframe.cloud.portalservice.service.code.CodeDetailService;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
@@ -100,6 +101,7 @@ public class CodeDetailApiController {
* @return
*/
@PostMapping("/api/v1/code-details")
@ResponseStatus(HttpStatus.CREATED)
public String save(@RequestBody @Valid CodeDetailSaveRequestDto requestDto) {
return codeDetailService.save(requestDto);
}
@@ -134,6 +136,7 @@ public class CodeDetailApiController {
* @param codeId
*/
@DeleteMapping("/api/v1/code-details/{codeId}")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void delete(@PathVariable String codeId) {
codeDetailService.delete(codeId);
}

View File

@@ -11,6 +11,7 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.web.PageableDefault;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
@@ -72,6 +73,7 @@ public class ContentApiController {
* @return ContentResponseDto 컨텐츠 상세 응답 DTO
*/
@PostMapping("/api/v1/contents")
@ResponseStatus(HttpStatus.CREATED)
public ContentResponseDto save(@RequestBody @Valid ContentSaveRequestDto requestDto) {
return contentService.save(requestDto);
}
@@ -94,6 +96,7 @@ public class ContentApiController {
* @param contentNo 컨텐츠 번호
*/
@DeleteMapping("/api/v1/contents/{contentNo}")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void delete(@PathVariable Integer contentNo) {
contentService.delete(contentNo);
}

View File

@@ -5,6 +5,7 @@ import lombok.extern.slf4j.Slf4j;
import org.egovframe.cloud.portalservice.api.menu.dto.*;
import org.egovframe.cloud.portalservice.domain.menu.SiteRepository;
import org.egovframe.cloud.portalservice.service.menu.MenuService;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
@@ -75,6 +76,7 @@ public class MenuApiController {
* @return
*/
@PostMapping(value = "/api/v1/menus")
@ResponseStatus(HttpStatus.CREATED)
public MenuTreeResponseDto save(@RequestBody @Valid MenuTreeRequestDto menuTreeRequestDto) {
return menuService.save(menuTreeRequestDto);
}
@@ -121,6 +123,7 @@ public class MenuApiController {
* @param menuId
*/
@DeleteMapping(value = "/api/v1/menus/{menuId}")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void delete(@PathVariable Long menuId) {
menuService.delete(menuId);
}

View File

@@ -7,6 +7,7 @@ import org.egovframe.cloud.portalservice.api.menu.dto.MenuRoleResponseDto;
import org.egovframe.cloud.portalservice.api.menu.dto.MenuSideResponseDto;
import org.egovframe.cloud.portalservice.domain.user.User;
import org.egovframe.cloud.portalservice.service.menu.MenuRoleService;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -54,6 +55,7 @@ public class MenuRoleApiController {
* @return
*/
@PostMapping("/api/v1/menu-roles")
@ResponseStatus(HttpStatus.CREATED)
public String save(@RequestBody List<MenuRoleRequestDto> menuRoleRequestDtoList) {
return menuRoleService.save(menuRoleRequestDtoList);
}

View File

@@ -48,6 +48,6 @@ public class MenuDnDRequestDto {
this.parentId = parentId;
this.level = level;
this.icon = icon;
this.children = new ArrayList<>(children);
this.children = children == null ? null : new ArrayList<>(children);
}
}

View File

@@ -54,6 +54,6 @@ public class MenuRoleRequestDto {
this.sortSeq = sortSeq;
this.icon = icon;
this.level = level;
this.children = new ArrayList<>(children);
this.children = children == null ? null : new ArrayList<>(children);
}
}

View File

@@ -9,6 +9,7 @@ import org.egovframe.cloud.portalservice.api.policy.dto.PolicyUpdateRequestDto;
import org.egovframe.cloud.portalservice.service.policy.PolicyService;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
/**
@@ -76,6 +77,7 @@ public class PolicyApiController {
* @return
*/
@PostMapping("/api/v1/policies")
@ResponseStatus(HttpStatus.CREATED)
public Long save(@RequestBody PolicySaveRequestDto saveRequestDto) {
return policyService.save(saveRequestDto);
}
@@ -110,6 +112,7 @@ public class PolicyApiController {
* @param id
*/
@DeleteMapping("/api/v1/policies/{id}")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void delete(@PathVariable Long id) {
policyService.delete(id);
}

View File

@@ -11,6 +11,7 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.web.PageableDefault;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
@@ -83,6 +84,7 @@ public class PrivacyApiController {
* @return PrivacyResponseDto 개인정보처리방침 상세 응답 DTO
*/
@PostMapping("/api/v1/privacies")
@ResponseStatus(HttpStatus.CREATED)
public PrivacyResponseDto save(@RequestBody @Valid PrivacySaveRequestDto requestDto) {
return privacyService.save(requestDto);
}
@@ -117,6 +119,7 @@ public class PrivacyApiController {
* @param privacyNo 개인정보처리방침 번호
*/
@DeleteMapping("/api/v1/privacies/{privacyNo}")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void delete(@PathVariable Integer privacyNo) {
privacyService.delete(privacyNo);
}

View File

@@ -4,6 +4,7 @@ import lombok.RequiredArgsConstructor;
import org.egovframe.cloud.portalservice.api.statistics.dto.StatisticsResponseDto;
import org.egovframe.cloud.portalservice.api.statistics.dto.StatisticsYMRequestDto;
import org.egovframe.cloud.portalservice.service.statistics.StatisticsService;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
@@ -59,6 +60,7 @@ public class StatisticsApiController {
* @param request
*/
@PostMapping("/api/v1/statistics/{statisticsId}")
@ResponseStatus(HttpStatus.CREATED)
public void save(@PathVariable String statisticsId, HttpServletRequest request) {
statisticsService.save(request, statisticsId);
}

View File

@@ -187,7 +187,7 @@ class AttachmentApiControllerTest {
ResponseEntity<AttachmentEditorResponseDto> responseEntity =
restTemplate.postForEntity(url, requestDto, AttachmentEditorResponseDto.class);
assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.OK);
assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.CREATED);
assertThat(responseEntity.getBody().getOriginalFileName()).isEqualTo(testFile.getFilename());
}
@@ -209,7 +209,7 @@ class AttachmentApiControllerTest {
restTemplate.postForEntity(url, requestEntity, AttachmentFileResponseDto.class);
//then
assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.OK);
assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.CREATED);
}
@@ -234,7 +234,7 @@ class AttachmentApiControllerTest {
new ParameterizedTypeReference<List<AttachmentFileResponseDto>>() {});
//then
assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.OK);
assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.CREATED);
}
@@ -273,7 +273,7 @@ class AttachmentApiControllerTest {
ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, saveRequestDtoList, String.class);
//then
assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.OK);
assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.CREATED);
}
@Test
@@ -454,7 +454,7 @@ class AttachmentApiControllerTest {
ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, requestEntity, String.class);
//then
assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.OK);
assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.CREATED);
List<Attachment> attachmentList = attachmentRepository.findByCode(responseEntity.getBody());
attachmentList.stream().forEach(attachment -> {
Path filePath = Paths.get(fileStorageUtils.getFileStorageLocation()+"/" +attachment.getPhysicalFileName())

View File

@@ -289,7 +289,7 @@ class BannerApiControllerTest {
);
// then
assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.OK);
assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.CREATED);
BannerResponseDto dto = responseEntity.getBody();
assertThat(dto).isNotNull();
@@ -386,7 +386,7 @@ class BannerApiControllerTest {
);
// then
assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.OK);
assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.NO_CONTENT);
Optional<Banner> banner = selectData(bannerNo);
assertThat(banner).isNotPresent();

View File

@@ -128,7 +128,7 @@ class CodeApiControllerTest {
ResponseEntity<String> responseEntity = restTemplate.exchange(API_URL, HttpMethod.POST, httpEntity, String.class);
// then
assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.OK);
assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.CREATED);
}
@Test

View File

@@ -133,7 +133,7 @@ class CodeDetailApiControllerTest {
ResponseEntity<String> responseEntity = restTemplate.exchange(API_URL, HttpMethod.POST, httpEntity, String.class);
// then
assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.OK);
assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.CREATED);
}
@Test

View File

@@ -193,7 +193,7 @@ class ContentApiControllerTest {
});
// then
assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.OK);
assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.CREATED);
ContentResponseDto dto = responseEntity.getBody();
assertThat(dto).isNotNull();
@@ -270,7 +270,7 @@ class ContentApiControllerTest {
ContentResponseDto.class);
// then
assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.OK);
assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.NO_CONTENT);
Optional<Content> content = selectData(contentNo);
assertThat(content).isNotPresent();

View File

@@ -232,7 +232,7 @@ class MenuApiControllerTest {
ResponseEntity<MenuTreeResponseDto> responseEntity = restTemplate.postForEntity(url, menuTreeRequestDto, MenuTreeResponseDto.class);
//then
assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.OK);
assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.CREATED);
System.out.println(responseEntity.getBody());
assertThat(responseEntity.getBody()).extracting("name").isEqualTo(menuTreeRequestDto.getName());

View File

@@ -189,7 +189,7 @@ class MenuRoleApiControllerTest {
restTemplate.exchange("/api/v1/menu-roles", HttpMethod.POST, httpEntity, String.class);
//then
assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.OK);
assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.CREATED);
assertThat(responseEntity.getBody()).isEqualTo("Success");
List<MenuRole> roles = menuRoleRepository.findAll();

View File

@@ -2,6 +2,7 @@ package org.egovframe.cloud.portalservice.api.message;
import java.util.List;
import java.util.Map;
import org.assertj.core.api.Assertions;
import org.egovframe.cloud.portalservice.api.message.dto.MessageListResponseDto;
import org.egovframe.cloud.portalservice.domain.message.Message;
@@ -52,10 +53,14 @@ class MessageApiControllerTest {
String lang = "ko";
// when
ResponseEntity<List<MessageListResponseDto>> responseEntity = restTemplate.exchange(API_URL + lang, HttpMethod.GET, null, new ParameterizedTypeReference<List<MessageListResponseDto>>(){});
ResponseEntity<Map<String, String>> responseEntity =
restTemplate.exchange(API_URL + lang, HttpMethod.GET, null, new ParameterizedTypeReference<Map<String, String>>(){});
// then
responseEntity.getBody().forEach(messageListResponseDto -> System.out.println("id = " + messageListResponseDto.getMessageId() + ", messageName() = " + messageListResponseDto.getMessageName()));
Map<String, String> body = responseEntity.getBody();
body.entrySet().stream().forEach(entry -> {
System.out.println("id = " + entry.getKey() + ", messageName() = " + entry.getValue());
});
Assertions.assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.OK);
Assertions.assertThat(responseEntity.getBody().size()).isEqualTo(3);
}

View File

@@ -93,7 +93,7 @@ class PolicyApiControllerTest {
ResponseEntity<Long> responseEntity = restTemplate.postForEntity(API_URL, requestDto, Long.class);
//then
assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.OK);
assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.CREATED);
Optional<Policy> policy = policyRepository.findById(responseEntity.getBody().longValue());
System.out.println(policy.get().toString());

View File

@@ -232,7 +232,7 @@ class PrivacyApiControllerTest {
);
// then
assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.OK);
assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.CREATED);
PrivacyResponseDto dto = responseEntity.getBody();
assertThat(dto).isNotNull();
@@ -354,7 +354,7 @@ class PrivacyApiControllerTest {
);
// then
assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.OK);
assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.NO_CONTENT);
Optional<Privacy> privacy = selectData(privacyNo);
assertThat(privacy).isNotPresent();