Person page working
This commit is contained in:
@@ -36,6 +36,15 @@ public class GameClassController{
|
|||||||
private final GameClassService gameClassService;
|
private final GameClassService gameClassService;
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping("/{gameClassId}")
|
||||||
|
@AccountAuthorization(permissions = {AccountPermissionType.ADMIN, AccountPermissionType.USER})
|
||||||
|
public GameClass getGameClass(@PathVariable("gameClassId") UUID gameClassId){
|
||||||
|
log.info("Getting game class {}", gameClassId);
|
||||||
|
|
||||||
|
|
||||||
|
return gameClassService.getById(gameClassId);
|
||||||
|
}
|
||||||
|
|
||||||
@GetMapping("/game/{gameId}")
|
@GetMapping("/game/{gameId}")
|
||||||
@AccountAuthorization(permissions = {AccountPermissionType.ADMIN, AccountPermissionType.USER})
|
@AccountAuthorization(permissions = {AccountPermissionType.ADMIN, AccountPermissionType.USER})
|
||||||
public List<GameClass> getByGameId(@PathVariable("gameId") UUID gameId, @RequestParam("page") int page, @RequestParam("pageSize") int pageSize, @RequestParam(name = "searchTerm", required = false) String searchTerm){
|
public List<GameClass> getByGameId(@PathVariable("gameId") UUID gameId, @RequestParam("page") int page, @RequestParam("pageSize") int pageSize, @RequestParam(name = "searchTerm", required = false) String searchTerm){
|
||||||
|
|||||||
@@ -11,8 +11,11 @@ import org.springframework.web.bind.annotation.PostMapping;
|
|||||||
import org.springframework.web.bind.annotation.PutMapping;
|
import org.springframework.web.bind.annotation.PutMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||||
import com.mattrixwv.raidbuilder.annotation.AccountAuthorization;
|
import com.mattrixwv.raidbuilder.annotation.AccountAuthorization;
|
||||||
import com.mattrixwv.raidbuilder.annotation.RaidGroupAuthorization;
|
import com.mattrixwv.raidbuilder.annotation.RaidGroupAuthorization;
|
||||||
import com.mattrixwv.raidbuilder.entity.PersonCharacter;
|
import com.mattrixwv.raidbuilder.entity.PersonCharacter;
|
||||||
@@ -29,6 +32,7 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
@RequestMapping("/raidGroup/{raidGroupId}/person/{personId}/character")
|
@RequestMapping("/raidGroup/{raidGroupId}/person/{personId}/character")
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class PersonCharacterController{
|
public class PersonCharacterController{
|
||||||
|
private final ObjectMapper mapper;
|
||||||
private final PersonCharacterService personCharacterService;
|
private final PersonCharacterService personCharacterService;
|
||||||
|
|
||||||
|
|
||||||
@@ -42,6 +46,48 @@ public class PersonCharacterController{
|
|||||||
return personCharacterService.getByPersonId(personId);
|
return personCharacterService.getByPersonId(personId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/page")
|
||||||
|
@AccountAuthorization(permissions = {AccountPermissionType.ADMIN, AccountPermissionType.USER})
|
||||||
|
@RaidGroupAuthorization(permissions = {RaidGroupPermissionType.ADMIN, RaidGroupPermissionType.LEADER})
|
||||||
|
public List<PersonCharacter> getCharactersForPersonPaged(@PathVariable("raidGroupId") UUID raidGroupId, @PathVariable("personId") UUID personId, @RequestParam("page") int page, @RequestParam("pageSize") int pageSize, @RequestParam(name = "searchTerm", required = false) String searchTerm){
|
||||||
|
log.info("Getting person characters for person {} with page {} of size {} with search term {}", personId, page, pageSize, searchTerm);
|
||||||
|
|
||||||
|
|
||||||
|
List<PersonCharacter> personCharacters;
|
||||||
|
if(searchTerm == null){
|
||||||
|
personCharacters = personCharacterService.getByPersonId(personId, page, pageSize);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
personCharacters = personCharacterService.getByPersonId(personId, page, pageSize, searchTerm);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return personCharacters;
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/count")
|
||||||
|
@AccountAuthorization(permissions = {AccountPermissionType.ADMIN, AccountPermissionType.USER})
|
||||||
|
@RaidGroupAuthorization(permissions = {RaidGroupPermissionType.ADMIN, RaidGroupPermissionType.LEADER})
|
||||||
|
public ObjectNode getCharactersCountForPerson(@PathVariable("raidGroupId") UUID raidGroupId, @PathVariable("personId") UUID personId, @RequestParam(name = "searchTerm", required = false) String searchTerm){
|
||||||
|
log.info("Getting person characters count for person {} with search term {}", personId, searchTerm);
|
||||||
|
|
||||||
|
|
||||||
|
Long count;
|
||||||
|
if(searchTerm == null){
|
||||||
|
count = personCharacterService.getCountByPersonId(personId);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
count = personCharacterService.getCountByPersonId(personId, searchTerm);
|
||||||
|
}
|
||||||
|
|
||||||
|
ObjectNode returnNode = mapper.createObjectNode();
|
||||||
|
returnNode.put("status", "success");
|
||||||
|
returnNode.put("count", count);
|
||||||
|
|
||||||
|
return returnNode;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@PostMapping
|
@PostMapping
|
||||||
@AccountAuthorization(permissions = {AccountPermissionType.ADMIN, AccountPermissionType.USER})
|
@AccountAuthorization(permissions = {AccountPermissionType.ADMIN, AccountPermissionType.USER})
|
||||||
@RaidGroupAuthorization(permissions = {RaidGroupPermissionType.ADMIN, RaidGroupPermissionType.LEADER})
|
@RaidGroupAuthorization(permissions = {RaidGroupPermissionType.ADMIN, RaidGroupPermissionType.LEADER})
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ package com.mattrixwv.raidbuilder.repository.person_character;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import org.springframework.data.domain.PageRequest;
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
|
||||||
import com.mattrixwv.raidbuilder.entity.PersonCharacter;
|
import com.mattrixwv.raidbuilder.entity.PersonCharacter;
|
||||||
@@ -16,4 +17,9 @@ public interface PersonCharacterRepository extends PersonCharacterCustomReposito
|
|||||||
|
|
||||||
public PersonCharacter findByPersonCharacterId(UUID personCharacterId);
|
public PersonCharacter findByPersonCharacterId(UUID personCharacterId);
|
||||||
public List<PersonCharacter> findAllByPersonId(UUID personId);
|
public List<PersonCharacter> findAllByPersonId(UUID personId);
|
||||||
|
public List<PersonCharacter> findAllByPersonId(UUID personId, PageRequest pageRequest);
|
||||||
|
public List<PersonCharacter> findAllByPersonIdAndCharacterNameContainingIgnoreCase(UUID personId, String searchTerm, PageRequest pageRequest);
|
||||||
|
|
||||||
|
public long countByPersonId(UUID personId);
|
||||||
|
public long countByPersonIdAndCharacterNameContainingIgnoreCase(UUID personId, String searchTerm);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ package com.mattrixwv.raidbuilder.service;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import org.springframework.data.domain.PageRequest;
|
||||||
|
import org.springframework.data.domain.Sort;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
@@ -47,4 +49,20 @@ public class PersonCharacterService{
|
|||||||
public List<PersonCharacter> getByPersonId(UUID personId){
|
public List<PersonCharacter> getByPersonId(UUID personId){
|
||||||
return personCharacterRepository.findAllByPersonId(personId);
|
return personCharacterRepository.findAllByPersonId(personId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<PersonCharacter> getByPersonId(UUID personId, int page, int pageSize){
|
||||||
|
return personCharacterRepository.findAllByPersonId(personId, PageRequest.of(page, pageSize, Sort.by("characterName").ascending()));
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<PersonCharacter> getByPersonId(UUID personId, int page, int pageSize, String searchTerm){
|
||||||
|
return personCharacterRepository.findAllByPersonIdAndCharacterNameContainingIgnoreCase(personId, searchTerm, PageRequest.of(page, pageSize, Sort.by("characterName").ascending()));
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getCountByPersonId(UUID personId){
|
||||||
|
return personCharacterRepository.countByPersonId(personId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getCountByPersonId(UUID personId, String searchTerm){
|
||||||
|
return personCharacterRepository.countByPersonIdAndCharacterNameContainingIgnoreCase(personId, searchTerm);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user