forked from Cookies_Github_mirror/AquaDX
[RF] move userMusicFromList to GameApiController and add GenericUserMusicRepo
This commit is contained in:
@@ -22,6 +22,7 @@ abstract class GameApiController<T : IUserData>(val name: String, userDataClass:
|
||||
abstract val us: AquaUserServices
|
||||
abstract val userDataRepo: GenericUserDataRepo<T>
|
||||
abstract val playlogRepo: GenericPlaylogRepo<*>
|
||||
abstract val userMusicRepo: GenericUserMusicRepo<*>
|
||||
abstract val shownRanks: List<Pair<Int, String>>
|
||||
abstract val settableFields: Map<String, (T, String) -> Unit>
|
||||
open val gettableFields: Set<String> = setOf()
|
||||
@@ -133,6 +134,11 @@ abstract class GameApiController<T : IUserData>(val name: String, userDataClass:
|
||||
}
|
||||
}
|
||||
|
||||
@API("user-music-from-list")
|
||||
suspend fun userMusicFromList(@RP username: Str, @RB musicList: List<Int>) = us.cardByName(username) { card ->
|
||||
userMusicRepo.findByUser_Card_ExtIdAndMusicIdIn(card.extId, musicList)
|
||||
}
|
||||
|
||||
fun genericUserSummary(card: Card, ratingComp: Map<String, String>, rival: Boolean? = null): GenericGameSummary {
|
||||
// Summary values: total plays, player rating, server-wide ranking
|
||||
// number of each rank, max combo, number of full combo, number of all perfect
|
||||
|
||||
@@ -107,6 +107,10 @@ interface IGenericGamePlaylog {
|
||||
val isAllPerfect: Boolean
|
||||
}
|
||||
|
||||
interface IGenericUserMusic {
|
||||
val musicId: Int
|
||||
}
|
||||
|
||||
@MappedSuperclass
|
||||
open class BaseEntity(
|
||||
@Id
|
||||
@@ -132,4 +136,10 @@ interface GenericPlaylogRepo<T: IGenericGamePlaylog> : JpaRepository<T, Long> {
|
||||
fun findByUserCardExtId(extId: Long, page: Pageable): Page<T>
|
||||
}
|
||||
|
||||
@NoRepositoryBean
|
||||
interface GenericUserMusicRepo<T: IGenericUserMusic> : JpaRepository<T, Long> {
|
||||
fun findByUserCardExtId(extId: Long): List<T>
|
||||
fun findByUser_Card_ExtIdAndMusicIdIn(userId: Long, musicId: List<Int>): List<T>
|
||||
}
|
||||
|
||||
data class ImportResult(val errors: List<String>, val warnings: List<String>, val json: String)
|
||||
|
||||
@@ -14,6 +14,7 @@ class Chusan(
|
||||
override val us: AquaUserServices,
|
||||
override val playlogRepo: Chu3UserPlaylogRepo,
|
||||
override val userDataRepo: Chu3UserDataRepo,
|
||||
override val userMusicRepo: Chu3UserMusicDetailRepo,
|
||||
val rp: Chu3Repos
|
||||
): GameApiController<Chu3UserData>("chu3", Chu3UserData::class) {
|
||||
override suspend fun trend(@RP username: Str): List<TrendOut> = us.cardByName(username) { card ->
|
||||
|
||||
@@ -16,6 +16,7 @@ class Maimai2(
|
||||
override val us: AquaUserServices,
|
||||
override val playlogRepo: Mai2UserPlaylogRepo,
|
||||
override val userDataRepo: Mai2UserDataRepo,
|
||||
override val userMusicRepo: Mai2UserMusicDetailRepo,
|
||||
val repos: Mai2Repos,
|
||||
) : GameApiController<Mai2UserDetail>("mai2", Mai2UserDetail::class) {
|
||||
override suspend fun trend(@RP username: Str): List<TrendOut> = us.cardByName(username) { card ->
|
||||
@@ -99,11 +100,6 @@ class Maimai2(
|
||||
repos.userFavorite.findByUser_Card_ExtId(card.extId)
|
||||
}
|
||||
|
||||
@API("user-music-from-list")
|
||||
suspend fun userMusicFromList(@RP username: Str, @RB musicList: List<Int>) = us.cardByName(username) { card ->
|
||||
repos.userMusicDetail.findByUser_Card_ExtIdAndMusicIdIn(card.extId, musicList)
|
||||
}
|
||||
|
||||
@PostMapping("change-name")
|
||||
suspend fun changeName(@RP token: String, @RP newName: String) = us.jwt.auth(token) { u ->
|
||||
val newNameFull = toFullWidth(newName)
|
||||
|
||||
@@ -6,6 +6,7 @@ import icu.samnyan.aqua.net.games.*
|
||||
import icu.samnyan.aqua.net.utils.*
|
||||
import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserDataRepository
|
||||
import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserGeneralDataRepository
|
||||
import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserMusicDetailRepository
|
||||
import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserPlaylogRepository
|
||||
import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData
|
||||
import org.springframework.web.bind.annotation.RestController
|
||||
@@ -16,6 +17,7 @@ class Ongeki(
|
||||
override val us: AquaUserServices,
|
||||
override val playlogRepo: UserPlaylogRepository,
|
||||
override val userDataRepo: UserDataRepository,
|
||||
override val userMusicRepo: UserMusicDetailRepository,
|
||||
val userGeneralDataRepository: UserGeneralDataRepository
|
||||
): GameApiController<UserData>("ongeki", UserData::class) {
|
||||
override suspend fun trend(username: String) = us.cardByName(username) { card ->
|
||||
|
||||
@@ -5,6 +5,7 @@ import icu.samnyan.aqua.net.db.AquaUserServices
|
||||
import icu.samnyan.aqua.net.games.*
|
||||
import icu.samnyan.aqua.net.utils.waccaScores
|
||||
import icu.samnyan.aqua.sega.wacca.model.db.WaccaUser
|
||||
import icu.samnyan.aqua.sega.wacca.model.db.WcUserBestScoreRepo
|
||||
import icu.samnyan.aqua.sega.wacca.model.db.WcUserPlayLogRepo
|
||||
import icu.samnyan.aqua.sega.wacca.model.db.WcUserRepo
|
||||
import org.springframework.web.bind.annotation.RestController
|
||||
@@ -15,6 +16,7 @@ class Wacca(
|
||||
override val us: AquaUserServices,
|
||||
override val playlogRepo: WcUserPlayLogRepo,
|
||||
override val userDataRepo: WcUserRepo,
|
||||
override val userMusicRepo: WcUserBestScoreRepo,
|
||||
): GameApiController<WaccaUser>("wacca", WaccaUser::class) {
|
||||
override val settableFields: Map<String, (WaccaUser, String) -> Unit> by lazy { mapOf(
|
||||
"userName" to usernameCheck(WACCA_USERNAME_CHARS),
|
||||
|
||||
Reference in New Issue
Block a user