mirror of https://github.com/aruppi/aruppi-api
Fixed Directory endpoint and improve anime endpoints
This commit is contained in:
parent
02125b1403
commit
f948ca6b13
|
@ -47,3 +47,5 @@ out/
|
|||
gradlew
|
||||
|
||||
gradlew.bat
|
||||
|
||||
.kotlin/
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package com.jeluchu.core.models.jikan.anime
|
||||
|
||||
import com.jeluchu.core.models.jikan.anime.Prop
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
|
|
|
@ -3,7 +3,6 @@ package com.jeluchu.core.models.jikan.anime
|
|||
import com.jeluchu.core.enums.Day
|
||||
import com.jeluchu.core.utils.toVideoPromo
|
||||
import com.jeluchu.features.rankings.models.AnimeTopEntity
|
||||
import com.jeluchu.features.rankings.models.MangaTopEntity
|
||||
import com.jeluchu.features.schedule.models.DayEntity
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
package fordelete
|
||||
|
||||
import com.jeluchu.core.models.jikan.anime.Images
|
||||
import com.jeluchu.core.models.jikan.people.PeopleData
|
||||
import com.jeluchu.features.rankings.models.CharacterTopEntity
|
||||
import com.jeluchu.features.rankings.models.PeopleTopEntity
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
|
|
|
@ -5,10 +5,14 @@ object BaseUrls {
|
|||
}
|
||||
|
||||
object Endpoints {
|
||||
const val FULL = "full"
|
||||
const val ANIME = "anime/"
|
||||
const val SCHEDULES = "schedules"
|
||||
const val TOP_ANIME = "top/anime"
|
||||
const val TOP_MANGA = "top/manga"
|
||||
const val TOP_PEOPLE = "top/people"
|
||||
const val STATISTICS = "statistics"
|
||||
const val CHARACTERS = "characters"
|
||||
const val TOP_CHARACTER = "top/characters"
|
||||
}
|
||||
|
||||
|
@ -41,5 +45,6 @@ object Collections {
|
|||
const val ANIME_RANKING = "anime_ranking"
|
||||
const val MANGA_RANKING = "manga_ranking"
|
||||
const val PEOPLE_RANKING = "people_ranking"
|
||||
const val ANIME_DIRECTORY = "anime_directory"
|
||||
const val CHARACTER_RANKING = "character_ranking"
|
||||
}
|
|
@ -1,9 +1,9 @@
|
|||
package com.jeluchu.core.utils
|
||||
|
||||
import com.example.models.VideoPromo
|
||||
import com.jeluchu.core.models.jikan.anime.ImageFormat
|
||||
import com.jeluchu.core.models.jikan.anime.Trailer
|
||||
import com.jeluchu.features.anime.models.anime.Images
|
||||
import com.jeluchu.features.anime.models.anime.VideoPromo
|
||||
|
||||
fun Trailer.toVideoPromo() = VideoPromo(
|
||||
url = url.orEmpty(),
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
package com.jeluchu.features.anime.mappers
|
||||
|
||||
import com.example.models.*
|
||||
import com.jeluchu.core.extensions.*
|
||||
import com.jeluchu.features.anime.models.anime.Images
|
||||
import com.jeluchu.features.anime.models.anime.*
|
||||
import com.jeluchu.features.anime.models.directory.AnimeDirectoryEntity
|
||||
import com.jeluchu.features.rankings.models.AnimeTopEntity
|
||||
import com.jeluchu.features.schedule.models.DayEntity
|
||||
import org.bson.Document
|
||||
import java.sql.Timestamp
|
||||
import java.time.ZonedDateTime
|
||||
import java.time.format.DateTimeFormatter
|
||||
|
||||
fun documentToAnimeDirectoryEntity(doc: Document) = AnimeDirectoryEntity(
|
||||
rank = doc.getIntSafe("rank"),
|
||||
|
@ -26,7 +28,7 @@ fun documentToAnimeDirectoryEntity(doc: Document) = AnimeDirectoryEntity(
|
|||
|
||||
fun documentToMoreInfoEntity(doc: Document): MoreInfoEntity {
|
||||
return MoreInfoEntity(
|
||||
id = doc.getLongSafe("id"),
|
||||
id = doc.getObjectId("_id").toString(),
|
||||
malId = doc.getIntSafe("malId"),
|
||||
title = doc.getStringSafe("title"),
|
||||
poster = doc.getStringSafe("poster"),
|
||||
|
@ -155,9 +157,14 @@ fun documentToIndividual(doc: Document): Individual {
|
|||
|
||||
fun documentToMergedEpisode(doc: Document): MergedEpisode {
|
||||
return MergedEpisode(
|
||||
number = doc.getIntSafe("number", 0),
|
||||
ids = doc.getListSafe<Document>("ids").map { documentToAnimeSource(it) }.toMutableList(),
|
||||
nextEpisodeDate = doc.getStringSafe("nextEpisodeDate")
|
||||
malId = doc.getIntSafe("malId"),
|
||||
title = doc.getStringSafe("title"),
|
||||
titleJapanese = doc.getStringSafe("titleJapanese"),
|
||||
titleRomanji = doc.getStringSafe("titleRomanji"),
|
||||
aired = doc.getStringSafe("aired", ZonedDateTime.now().format(DateTimeFormatter.ISO_OFFSET_DATE_TIME)),
|
||||
score = doc.getFloatSafe("score"),
|
||||
filler = doc.getBooleanSafe("filler"),
|
||||
recap = doc.getBooleanSafe("recap")
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package com.example.models
|
||||
package com.jeluchu.features.anime.models.anime
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package com.example.models
|
||||
package com.jeluchu.features.anime.models.anime
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package com.example.models
|
||||
package com.jeluchu.features.anime.models.anime
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package com.example.models
|
||||
package com.jeluchu.features.anime.models.anime
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package com.example.models
|
||||
package com.jeluchu.features.anime.models.anime
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package com.example.models
|
||||
package com.jeluchu.features.anime.models.anime
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package com.example.models
|
||||
package com.jeluchu.features.anime.models.anime
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package com.example.models
|
||||
package com.jeluchu.features.anime.models.anime
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package com.example.models
|
||||
package com.jeluchu.features.anime.models.anime
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package com.example.models
|
||||
package com.jeluchu.features.anime.models.anime
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
|
|
|
@ -1,10 +1,16 @@
|
|||
package com.example.models
|
||||
package com.jeluchu.features.anime.models.anime
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
data class MergedEpisode(
|
||||
var number: Int,
|
||||
var ids: MutableList<AnimeSource> = mutableListOf(),
|
||||
var nextEpisodeDate: String = ""
|
||||
var malId: Int,
|
||||
var title: String,
|
||||
var titleJapanese: String,
|
||||
var titleRomanji: String,
|
||||
var aired: String,
|
||||
var score: Float,
|
||||
var filler: Boolean,
|
||||
var recap: Boolean,
|
||||
)
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package com.example.models
|
||||
package com.jeluchu.features.anime.models.anime
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.encodeToString
|
||||
|
@ -7,8 +7,8 @@ import org.bson.Document
|
|||
|
||||
@Serializable
|
||||
data class MoreInfoEntity(
|
||||
val id: Long? = null,
|
||||
var malId: Int = 0,
|
||||
val id: String = "",
|
||||
var title: String = "",
|
||||
var poster: String = "",
|
||||
var cover: String = "",
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package com.example.models
|
||||
package com.jeluchu.features.anime.models.anime
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package com.example.models
|
||||
package com.jeluchu.features.anime.models.anime
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package com.example.models
|
||||
package com.jeluchu.features.anime.models.anime
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package com.example.models
|
||||
package com.jeluchu.features.anime.models.anime
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package com.example.models
|
||||
package com.jeluchu.features.anime.models.anime
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package com.example.models
|
||||
package com.jeluchu.features.anime.models.anime
|
||||
|
||||
import com.jeluchu.features.anime.models.anime.Images
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
|
|
|
@ -8,8 +8,10 @@ import io.ktor.server.routing.*
|
|||
|
||||
fun Route.animeEndpoints(
|
||||
mongoDatabase: MongoDatabase,
|
||||
service: AnimeService = AnimeService(mongoDatabase)
|
||||
service: AnimeService = AnimeService(mongoDatabase),
|
||||
) {
|
||||
getToJson(Routes.DIRECTORY) { service.getDirectory(call) }
|
||||
getToJson(Routes.ANIME_DETAILS) { service.getAnimeByMalId(call) }
|
||||
route(Routes.DIRECTORY) {
|
||||
getToJson { service.getDirectory(call) }
|
||||
}
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
package com.jeluchu.features.rankings.models
|
||||
|
||||
import com.example.models.VideoPromo
|
||||
import com.jeluchu.features.anime.models.anime.VideoPromo
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package com.jeluchu.features.schedule.models
|
||||
|
||||
import com.jeluchu.core.models.jikan.search.Pagination
|
||||
import com.jeluchu.core.models.jikan.anime.AnimeData
|
||||
import com.jeluchu.core.models.jikan.search.Pagination
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
|
|
Loading…
Reference in New Issue