Add validation to utils

This commit is contained in:
2025-04-06 21:59:06 -04:00
parent 60aa0bcb7e
commit b618d57143
35 changed files with 1670 additions and 181 deletions

View File

@@ -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;