forked from Cookies_Github_mirror/AquaDX
[ongeki] Add ongeki basic support and api endpoint.
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
package icu.samnyan.aqua.api.controller.sega.game.ongeki;
|
||||
|
||||
import icu.samnyan.aqua.sega.ongeki.dao.gamedata.*;
|
||||
import icu.samnyan.aqua.sega.ongeki.model.gamedata.*;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author samnyan (privateamusement@protonmail.com)
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/game/ongeki/data")
|
||||
public class ApiOngekiGameDataController {
|
||||
|
||||
private final GameCardRepository gameCardRepository;
|
||||
private final GameCharaRepository gameCharaRepository;
|
||||
private final GameEventRepository gameEventRepository;
|
||||
private final GameMusicRepository gameMusicRepository;
|
||||
private final GameSkillRepository gameSkillRepository;
|
||||
|
||||
public ApiOngekiGameDataController(GameCardRepository gameCardRepository, GameCharaRepository gameCharaRepository, GameEventRepository gameEventRepository, GameMusicRepository gameMusicRepository, GameSkillRepository gameSkillRepository) {
|
||||
this.gameCardRepository = gameCardRepository;
|
||||
this.gameCharaRepository = gameCharaRepository;
|
||||
this.gameEventRepository = gameEventRepository;
|
||||
this.gameMusicRepository = gameMusicRepository;
|
||||
this.gameSkillRepository = gameSkillRepository;
|
||||
}
|
||||
|
||||
@GetMapping("cardList")
|
||||
public List<GameCard> getCardList() {
|
||||
return gameCardRepository.findAll();
|
||||
}
|
||||
|
||||
@GetMapping("charaList")
|
||||
public List<GameChara> getCharaList() {
|
||||
return gameCharaRepository.findAll();
|
||||
}
|
||||
|
||||
@GetMapping("eventList")
|
||||
public List<GameEvent> getEventList() {
|
||||
return gameEventRepository.findAll();
|
||||
}
|
||||
|
||||
@GetMapping("musicList")
|
||||
public List<GameMusic> getMusicList() {
|
||||
return gameMusicRepository.findAll();
|
||||
}
|
||||
|
||||
@GetMapping("skillList")
|
||||
public List<GameSkill> getSkillList() {
|
||||
return gameSkillRepository.findAll();
|
||||
}
|
||||
//
|
||||
// @PostMapping("cardList")
|
||||
// public List<GameCard> getCardList(@RequestBody List<GameCard> req) {
|
||||
// return gameCardRepository.saveAll(req);
|
||||
// }
|
||||
//
|
||||
// @PostMapping("charaList")
|
||||
// public List<GameChara> getCharaList(@RequestBody List<GameChara> req) {
|
||||
// return gameCharaRepository.saveAll(req);
|
||||
// }
|
||||
//
|
||||
// @PostMapping("eventList")
|
||||
// public List<GameEvent> getEventList(@RequestBody List<GameEvent> req) {
|
||||
// return gameEventRepository.saveAll(req);
|
||||
// }
|
||||
//
|
||||
// @PostMapping("musicList")
|
||||
// public List<GameMusic> getMusicList(@RequestBody List<GameMusic> req) {
|
||||
// return gameMusicRepository.saveAll(req);
|
||||
// }
|
||||
//
|
||||
// @PostMapping("skillList")
|
||||
// public List<GameSkill> getSkillList(@RequestBody List<GameSkill> req) {
|
||||
// return gameSkillRepository.saveAll(req);
|
||||
// }
|
||||
|
||||
}
|
||||
@@ -0,0 +1,149 @@
|
||||
package icu.samnyan.aqua.api.controller.sega.game.ongeki;
|
||||
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import icu.samnyan.aqua.api.model.ReducedPageResponse;
|
||||
import icu.samnyan.aqua.api.model.resp.sega.ongeki.ProfileResp;
|
||||
import icu.samnyan.aqua.api.util.ApiMapper;
|
||||
import icu.samnyan.aqua.sega.ongeki.dao.gamedata.GameCardRepository;
|
||||
import icu.samnyan.aqua.sega.ongeki.dao.userdata.*;
|
||||
import icu.samnyan.aqua.sega.ongeki.model.gamedata.GameCard;
|
||||
import icu.samnyan.aqua.sega.ongeki.model.userdata.*;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Sort;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author samnyan (privateamusement@protonmail.com)
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/game/ongeki")
|
||||
public class ApiOngekiPlayerDataController {
|
||||
|
||||
private final ApiMapper mapper;
|
||||
|
||||
private final UserActivityRepository userActivityRepository;
|
||||
private final UserCardRepository userCardRepository;
|
||||
private final UserCharacterRepository userCharacterRepository;
|
||||
private final UserDataRepository userDataRepository;
|
||||
private final UserDeckRepository userDeckRepository;
|
||||
private final UserEventPointRepository userEventPointRepository;
|
||||
private final UserItemRepository userItemRepository;
|
||||
private final UserMusicDetailRepository userMusicDetailRepository;
|
||||
private final UserOptionRepository userOptionRepository;
|
||||
private final UserPlaylogRepository userPlaylogRepository;
|
||||
|
||||
private final GameCardRepository gameCardRepository;
|
||||
|
||||
public ApiOngekiPlayerDataController(ApiMapper mapper, UserActivityRepository userActivityRepository, UserCardRepository userCardRepository, UserCharacterRepository userCharacterRepository, UserDataRepository userDataRepository, UserDeckRepository userDeckRepository, UserEventPointRepository userEventPointRepository, UserItemRepository userItemRepository, UserMusicDetailRepository userMusicDetailRepository, UserOptionRepository userOptionRepository, UserPlaylogRepository userPlaylogRepository, GameCardRepository gameCardRepository) {
|
||||
this.mapper = mapper;
|
||||
this.userActivityRepository = userActivityRepository;
|
||||
this.userCardRepository = userCardRepository;
|
||||
this.userCharacterRepository = userCharacterRepository;
|
||||
this.userDataRepository = userDataRepository;
|
||||
this.userDeckRepository = userDeckRepository;
|
||||
this.userEventPointRepository = userEventPointRepository;
|
||||
this.userItemRepository = userItemRepository;
|
||||
this.userMusicDetailRepository = userMusicDetailRepository;
|
||||
this.userOptionRepository = userOptionRepository;
|
||||
this.userPlaylogRepository = userPlaylogRepository;
|
||||
this.gameCardRepository = gameCardRepository;
|
||||
}
|
||||
|
||||
@GetMapping("profile")
|
||||
public ProfileResp getProfile(@RequestParam Integer aimeId) {
|
||||
return mapper.convert(userDataRepository.findByCard_ExtId(aimeId).orElseThrow(), new TypeReference<>() {
|
||||
});
|
||||
}
|
||||
|
||||
@PostMapping("profile/userName")
|
||||
public UserData updateName(@RequestBody Map<String, Object> request) {
|
||||
UserData profile = userDataRepository.findByCard_ExtId((Integer) request.get("aimeId")).orElseThrow();
|
||||
profile.setUserName((String) request.get("userName"));
|
||||
return userDataRepository.save(profile);
|
||||
}
|
||||
|
||||
@PostMapping("profile/plate")
|
||||
public UserData updatePlate(@RequestBody Map<String, Object> request) {
|
||||
UserData profile = userDataRepository.findByCard_ExtId((Integer) request.get("aimeId")).orElseThrow();
|
||||
profile.setNameplateId((Integer) request.get("nameplateId"));
|
||||
return userDataRepository.save(profile);
|
||||
}
|
||||
|
||||
@PostMapping("profile/trophy")
|
||||
public UserData updateTrophy(@RequestBody Map<String, Object> request) {
|
||||
UserData profile = userDataRepository.findByCard_ExtId((Integer) request.get("aimeId")).orElseThrow();
|
||||
profile.setTrophyId((Integer) request.get("trophyId"));
|
||||
return userDataRepository.save(profile);
|
||||
}
|
||||
|
||||
@PostMapping("profile/card")
|
||||
public UserData updateCard(@RequestBody Map<String, Object> request) {
|
||||
UserData profile = userDataRepository.findByCard_ExtId((Integer) request.get("aimeId")).orElseThrow();
|
||||
profile.setCardId((Integer) request.get("cardId"));
|
||||
return userDataRepository.save(profile);
|
||||
}
|
||||
|
||||
@GetMapping("card")
|
||||
public ReducedPageResponse<UserCard> getCard(@RequestParam Integer aimeId,
|
||||
@RequestParam(required = false, defaultValue = "0") int page,
|
||||
@RequestParam(required = false, defaultValue = "10") int size) {
|
||||
Page<UserCard> cards = userCardRepository.findByUser_Card_ExtId(aimeId, PageRequest.of(page,size));
|
||||
return new ReducedPageResponse<>(cards.getContent(), cards.getPageable().getPageNumber(), cards.getTotalPages(), cards.getTotalElements());
|
||||
}
|
||||
|
||||
@PostMapping("insert")
|
||||
public UserCard insertCard(@RequestBody Map<String, Object> request) {
|
||||
UserData profile = userDataRepository.findByCard_ExtId((Integer) request.get("aimeId")).orElseThrow();
|
||||
Integer cardId = (Integer) request.get("cardId");
|
||||
GameCard card = gameCardRepository.findById(cardId.longValue()).orElseThrow();
|
||||
return userCardRepository.save(new UserCard(
|
||||
profile,
|
||||
cardId,
|
||||
card.getSkillId()
|
||||
));
|
||||
}
|
||||
|
||||
@GetMapping("character")
|
||||
public ReducedPageResponse<UserCharacter> getCharacter(@RequestParam Integer aimeId,
|
||||
@RequestParam(required = false, defaultValue = "0") int page,
|
||||
@RequestParam(required = false, defaultValue = "10") int size) {
|
||||
Page<UserCharacter> characters = userCharacterRepository.findByUser_Card_ExtId(aimeId, PageRequest.of(page,size));
|
||||
return new ReducedPageResponse<>(characters.getContent(), characters.getPageable().getPageNumber(), characters.getTotalPages(), characters.getTotalElements());
|
||||
}
|
||||
|
||||
@GetMapping("item")
|
||||
public ReducedPageResponse<UserItem> getItem(@RequestParam Integer aimeId,
|
||||
@RequestParam(required = false, defaultValue = "0") int page,
|
||||
@RequestParam(required = false, defaultValue = "10") int size) {
|
||||
Page<UserItem> items = userItemRepository.findByUser_Card_ExtId(aimeId, PageRequest.of(page,size));
|
||||
return new ReducedPageResponse<>(items.getContent(), items.getPageable().getPageNumber(), items.getTotalPages(), items.getTotalElements());
|
||||
}
|
||||
|
||||
@GetMapping("recent")
|
||||
public ReducedPageResponse<UserPlaylog> getRecent(@RequestParam Integer aimeId,
|
||||
@RequestParam(required = false, defaultValue = "0") int page,
|
||||
@RequestParam(required = false, defaultValue = "10") int size) {
|
||||
Page<UserPlaylog> playlogs = userPlaylogRepository.findByUser_Card_ExtId(aimeId,PageRequest.of(page,size, Sort.Direction.DESC, "id"));
|
||||
return new ReducedPageResponse<>(playlogs.getContent(), playlogs.getPageable().getPageNumber(), playlogs.getTotalPages(), playlogs.getTotalElements());
|
||||
|
||||
}
|
||||
|
||||
@GetMapping("song/{id}")
|
||||
public List<UserMusicDetail> getSongDetail(@RequestParam Integer aimeId, @PathVariable int id) {
|
||||
return userMusicDetailRepository.findByUser_Card_ExtIdAndMusicId(aimeId, id);
|
||||
}
|
||||
|
||||
@GetMapping("song/{id}/{level}")
|
||||
public List<UserPlaylog> getLevelPlaylog(@RequestParam Integer aimeId, @PathVariable int id, @PathVariable int level) {
|
||||
return userPlaylogRepository.findByUser_Card_ExtIdAndMusicIdAndLevel(aimeId, id, level);
|
||||
}
|
||||
|
||||
@GetMapping("options")
|
||||
public UserOption getOptions(@RequestParam Integer aimeId) {
|
||||
return userOptionRepository.findByUser_Card_ExtId(aimeId).orElseThrow();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user