Skip to content

Commit

Permalink
Merge pull request #89 from PLADI-ALM/feat/PDS-117-updateResource
Browse files Browse the repository at this point in the history
[PDS-117/feat] 관리자 자원 수정 API
  • Loading branch information
leeseunghakhello authored Oct 14, 2023
2 parents 9a2dfe5 + 698ff21 commit b7d03dd
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ public ResponseCustom<Page<AdminResourcesRes>> getResources(
@ApiResponse(responseCode = "200", description = "(S0001)요청에 성공했습니다."),
@ApiResponse(responseCode = "400", description = "(R0004)설명은 255자 이하로 작성해주세요. (R0005)자원명은 50자 이하로 작성해주세요. (R0007)자원명을 입력해주세요. (R0008)카테고리를 입력해주세요. (R0009)설명을 입력해주세요.", content = @Content(schema = @Schema(implementation = ResponseCustom.class))),
@ApiResponse(responseCode = "403", description = "(G0002)접근권한이 없습니다.", content = @Content(schema = @Schema(implementation = ResponseCustom.class))),
@ApiResponse(responseCode = "404", description = "(R0006)카테고리를 찾을 수 없습니다.", content = @Content(schema = @Schema(implementation = ResponseCustom.class))),
@ApiResponse(responseCode = "404", description = "(U0001)사용자를 찾을 수 없습니다. (R0006)카테고리를 찾을 수 없습니다.", content = @Content(schema = @Schema(implementation = ResponseCustom.class))),
})
@PostMapping("")
public ResponseCustom createResource(
Expand All @@ -77,4 +77,23 @@ public ResponseCustom createResource(
return ResponseCustom.OK();
}

/**
* 관리자 자원 수정
*/
@Operation(summary = "관리자 자원 수정 (박소정)", description = "관리자가 자원을 수정한다. (요청 값 모두 필요)")
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "(S0001)요청에 성공했습니다."),
@ApiResponse(responseCode = "400", description = "(R0004)설명은 255자 이하로 작성해주세요. (R0005)자원명은 50자 이하로 작성해주세요. (R0007)자원명을 입력해주세요. (R0008)카테고리를 입력해주세요. (R0009)설명을 입력해주세요.", content = @Content(schema = @Schema(implementation = ResponseCustom.class))),
@ApiResponse(responseCode = "403", description = "(G0002)접근권한이 없습니다.", content = @Content(schema = @Schema(implementation = ResponseCustom.class))),
@ApiResponse(responseCode = "404", description = "(R0003)존재하지 않는 자원입니다. (U0001)사용자를 찾을 수 없습니다. (R0006)카테고리를 찾을 수 없습니다.", content = @Content(schema = @Schema(implementation = ResponseCustom.class))),
})
@PatchMapping("/{resourceId}")
public ResponseCustom updateResource(
@Account User user,
@Parameter(description = "(Long) 자원 Id", example = "1") @PathVariable(name="resourceId") Long resourceId,
@RequestBody @Valid CreateResourceReq request) {
resourceService.updateResourceByAdmin(user, resourceId, request);
return ResponseCustom.OK();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -53,4 +53,12 @@ public static Resource toDto(CreateResourceReq request, ResourceCategory categor
.imgUrl((request.getImgUrl()==null) ? null : request.getImgUrl())
.build();
}

public void updateResource(CreateResourceReq request, ResourceCategory category) {
if(!request.getName().equals(name)) name = request.getName();
if(!category.equals(resourceCategory)) resourceCategory = category;
if(!request.getDescription().equals(description)) description = request.getDescription();
if(!request.getImgUrl().equals(imgUrl)) imgUrl = request.getImgUrl();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -142,4 +142,20 @@ public void createResourceByAdmin(User user, CreateResourceReq request) {
.orElseThrow(() -> new BaseException(BaseResponseCode.RESOURCE_CATEGORY_NOT_FOUND));
resourceRepository.save(Resource.toDto(request, category));
}

/**
* 관리자 자원 수정
*/
@Transactional
public void updateResourceByAdmin(User user, Long resourceId, CreateResourceReq request) {
// 관리자 권한 확인
checkAdminRole(user);
// 자원 유무 확인
Resource resource = resourceRepository.findById(resourceId)
.orElseThrow(() -> new BaseException(BaseResponseCode.RESOURCE_NOT_FOUND));
ResourceCategory category = resourceCategoryRepository.findByName(request.getCategory())
.orElseThrow(() -> new BaseException(BaseResponseCode.RESOURCE_CATEGORY_NOT_FOUND));
// 자원 수정
resource.updateResource(request, category);
}
}

0 comments on commit b7d03dd

Please sign in to comment.