Add validation to utils
This commit is contained in:
@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.node.ArrayNode;
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
import com.mattrixwv.raidbuilder.annotation.AccountAuthorization;
|
||||
import com.mattrixwv.raidbuilder.annotation.RaidGroupAuthorization;
|
||||
@@ -25,6 +26,7 @@ import com.mattrixwv.raidbuilder.service.AccountService;
|
||||
import com.mattrixwv.raidbuilder.service.RaidGroupRequestService;
|
||||
import com.mattrixwv.raidbuilder.util.DatabaseTypeUtil.AccountPermissionType;
|
||||
import com.mattrixwv.raidbuilder.util.DatabaseTypeUtil.RaidGroupPermissionType;
|
||||
import com.mattrixwv.raidbuilder.util.validation.RaidGroupRequestValidationUtil;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -38,6 +40,8 @@ public class RaidGroupRequestController{
|
||||
private final ObjectMapper mapper;
|
||||
private final AccountService accountService;
|
||||
private final RaidGroupRequestService rgrService;
|
||||
//Utilities
|
||||
private final RaidGroupRequestValidationUtil rgrvUtil;
|
||||
|
||||
|
||||
@GetMapping
|
||||
@@ -98,17 +102,30 @@ public class RaidGroupRequestController{
|
||||
|
||||
@PostMapping
|
||||
@AccountAuthorization(permissions = {AccountPermissionType.ADMIN, AccountPermissionType.USER})
|
||||
public RaidGroupRequest createRaidGroupRequest(@PathVariable("raidGroupId") UUID raidGroupId, @RequestBody RaidGroupRequest raidGroupRequest, Authentication authentication){
|
||||
public ObjectNode createRaidGroupRequest(@PathVariable("raidGroupId") UUID raidGroupId, @RequestBody RaidGroupRequest raidGroupRequest, Authentication authentication){
|
||||
log.info("Creating raid group request for raid group id: {}", raidGroupId);
|
||||
|
||||
|
||||
Account account = accountService.getByUsername(authentication.getName());
|
||||
raidGroupRequest.setAccountId(account.getAccountId());
|
||||
raidGroupRequest.setRaidGroupId(raidGroupId);
|
||||
raidGroupRequest = rgrService.createRaidGroupRequest(raidGroupRequest);
|
||||
ObjectNode returnNode = mapper.createObjectNode();
|
||||
List<String> errors = rgrvUtil.validateNewRaidGroupRequest(raidGroupRequest);
|
||||
if(errors.isEmpty()){
|
||||
raidGroupRequest = rgrService.createRaidGroupRequest(raidGroupRequest);
|
||||
|
||||
returnNode.put("status", "success");
|
||||
returnNode.put("raidGroupRequestId", raidGroupRequest.getRaidGroupRequestId().toString());
|
||||
|
||||
log.info("Created raid group request for raid group id: {}", raidGroupId);
|
||||
}
|
||||
else{
|
||||
returnNode.put("status", "fail");
|
||||
returnNode.set("errors", mapper.valueToTree(errors));
|
||||
}
|
||||
|
||||
|
||||
return raidGroupRequest;
|
||||
return returnNode;
|
||||
}
|
||||
|
||||
@PutMapping("/{raidGroupRequestId}")
|
||||
@@ -119,10 +136,18 @@ public class RaidGroupRequestController{
|
||||
|
||||
raidGroupRequest.setRaidGroupRequestId(raidGroupRequestId);
|
||||
raidGroupRequest.setRaidGroupId(raidGroupId);
|
||||
raidGroupRequest = rgrService.updateRaidGroupRequest(raidGroupRequest);
|
||||
|
||||
ObjectNode returnNode = mapper.createObjectNode();
|
||||
returnNode.put("status", "success");
|
||||
List<String> errors = rgrvUtil.validateExistingRaidGroupRequest(raidGroupRequest);
|
||||
if(errors.isEmpty()){
|
||||
raidGroupRequest = rgrService.updateRaidGroupRequest(raidGroupRequest);
|
||||
|
||||
returnNode.put("status", "success");
|
||||
returnNode.put("raidGroupRequestId", raidGroupRequest.getRaidGroupRequestId().toString());
|
||||
}
|
||||
else{
|
||||
returnNode.put("status", "fail");
|
||||
returnNode.set("errors", mapper.valueToTree(errors));
|
||||
}
|
||||
|
||||
|
||||
return returnNode;
|
||||
@@ -134,10 +159,19 @@ public class RaidGroupRequestController{
|
||||
log.info("Deleting raid group request for raid group id: {}", raidGroupId);
|
||||
|
||||
|
||||
rgrService.deleteRaidGroupRequest(raidGroupRequestId);
|
||||
|
||||
ObjectNode returnNode = mapper.createObjectNode();
|
||||
returnNode.put("status", "success");
|
||||
RaidGroupRequest existingRaidGroupRequest = rgrService.getById(raidGroupRequestId);
|
||||
if(existingRaidGroupRequest != null){
|
||||
rgrService.deleteRaidGroupRequest(raidGroupRequestId);
|
||||
|
||||
returnNode.put("status", "success");
|
||||
}
|
||||
else{
|
||||
returnNode.put("status", "fail");
|
||||
ArrayNode errorsNode = mapper.createArrayNode();
|
||||
errorsNode.add("Raid Group Request does not exist");
|
||||
returnNode.set("errors", errorsNode);
|
||||
}
|
||||
|
||||
|
||||
return returnNode;
|
||||
|
||||
Reference in New Issue
Block a user