Skip to content

Commit cfc0bea

Browse files
committed
Fixed Directory endpoint and improve anime endpoints
1 parent 02125b1 commit cfc0bea

28 files changed

+56
-38
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -47,3 +47,5 @@ out/
4747
gradlew
4848

4949
gradlew.bat
50+
51+
.kotlin/

src/main/kotlin/com/jeluchu/core/models/jikan/anime/Aired.kt

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.jeluchu.core.models.jikan.anime
22

3-
import com.jeluchu.core.models.jikan.anime.Prop
43
import kotlinx.serialization.SerialName
54
import kotlinx.serialization.Serializable
65

src/main/kotlin/com/jeluchu/core/models/jikan/anime/AnimeData.kt

-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package com.jeluchu.core.models.jikan.anime
33
import com.jeluchu.core.enums.Day
44
import com.jeluchu.core.utils.toVideoPromo
55
import com.jeluchu.features.rankings.models.AnimeTopEntity
6-
import com.jeluchu.features.rankings.models.MangaTopEntity
76
import com.jeluchu.features.schedule.models.DayEntity
87
import kotlinx.serialization.SerialName
98
import kotlinx.serialization.Serializable

src/main/kotlin/com/jeluchu/core/models/jikan/character/CharacterData.kt

-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
package fordelete
22

33
import com.jeluchu.core.models.jikan.anime.Images
4-
import com.jeluchu.core.models.jikan.people.PeopleData
54
import com.jeluchu.features.rankings.models.CharacterTopEntity
6-
import com.jeluchu.features.rankings.models.PeopleTopEntity
75
import kotlinx.serialization.SerialName
86
import kotlinx.serialization.Serializable
97

src/main/kotlin/com/jeluchu/core/utils/Constants.kt

+5
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,14 @@ object BaseUrls {
55
}
66

77
object Endpoints {
8+
const val FULL = "full"
9+
const val ANIME = "anime/"
810
const val SCHEDULES = "schedules"
911
const val TOP_ANIME = "top/anime"
1012
const val TOP_MANGA = "top/manga"
1113
const val TOP_PEOPLE = "top/people"
14+
const val STATISTICS = "statistics"
15+
const val CHARACTERS = "characters"
1216
const val TOP_CHARACTER = "top/characters"
1317
}
1418

@@ -41,5 +45,6 @@ object Collections {
4145
const val ANIME_RANKING = "anime_ranking"
4246
const val MANGA_RANKING = "manga_ranking"
4347
const val PEOPLE_RANKING = "people_ranking"
48+
const val ANIME_DIRECTORY = "anime_directory"
4449
const val CHARACTER_RANKING = "character_ranking"
4550
}

src/main/kotlin/com/jeluchu/core/utils/Mappers.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package com.jeluchu.core.utils
22

3-
import com.example.models.VideoPromo
43
import com.jeluchu.core.models.jikan.anime.ImageFormat
54
import com.jeluchu.core.models.jikan.anime.Trailer
65
import com.jeluchu.features.anime.models.anime.Images
6+
import com.jeluchu.features.anime.models.anime.VideoPromo
77

88
fun Trailer.toVideoPromo() = VideoPromo(
99
url = url.orEmpty(),

src/main/kotlin/com/jeluchu/features/anime/mappers/AnimeMappers.kt

+13-6
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
package com.jeluchu.features.anime.mappers
22

3-
import com.example.models.*
43
import com.jeluchu.core.extensions.*
5-
import com.jeluchu.features.anime.models.anime.Images
4+
import com.jeluchu.features.anime.models.anime.*
65
import com.jeluchu.features.anime.models.directory.AnimeDirectoryEntity
76
import com.jeluchu.features.rankings.models.AnimeTopEntity
87
import com.jeluchu.features.schedule.models.DayEntity
98
import org.bson.Document
9+
import java.sql.Timestamp
10+
import java.time.ZonedDateTime
11+
import java.time.format.DateTimeFormatter
1012

1113
fun documentToAnimeDirectoryEntity(doc: Document) = AnimeDirectoryEntity(
1214
rank = doc.getIntSafe("rank"),
@@ -26,7 +28,7 @@ fun documentToAnimeDirectoryEntity(doc: Document) = AnimeDirectoryEntity(
2628

2729
fun documentToMoreInfoEntity(doc: Document): MoreInfoEntity {
2830
return MoreInfoEntity(
29-
id = doc.getLongSafe("id"),
31+
id = doc.getObjectId("_id").toString(),
3032
malId = doc.getIntSafe("malId"),
3133
title = doc.getStringSafe("title"),
3234
poster = doc.getStringSafe("poster"),
@@ -155,9 +157,14 @@ fun documentToIndividual(doc: Document): Individual {
155157

156158
fun documentToMergedEpisode(doc: Document): MergedEpisode {
157159
return MergedEpisode(
158-
number = doc.getIntSafe("number", 0),
159-
ids = doc.getListSafe<Document>("ids").map { documentToAnimeSource(it) }.toMutableList(),
160-
nextEpisodeDate = doc.getStringSafe("nextEpisodeDate")
160+
malId = doc.getIntSafe("malId"),
161+
title = doc.getStringSafe("title"),
162+
titleJapanese = doc.getStringSafe("titleJapanese"),
163+
titleRomanji = doc.getStringSafe("titleRomanji"),
164+
aired = doc.getStringSafe("aired", ZonedDateTime.now().format(DateTimeFormatter.ISO_OFFSET_DATE_TIME)),
165+
score = doc.getFloatSafe("score"),
166+
filler = doc.getBooleanSafe("filler"),
167+
recap = doc.getBooleanSafe("recap")
161168
)
162169
}
163170

src/main/kotlin/com/jeluchu/features/anime/models/anime/Actor.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.example.models
1+
package com.jeluchu.features.anime.models.anime
22

33
import kotlinx.serialization.Serializable
44

src/main/kotlin/com/jeluchu/features/anime/models/anime/AiringTime.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.example.models
1+
package com.jeluchu.features.anime.models.anime
22

33
import kotlinx.serialization.Serializable
44

src/main/kotlin/com/jeluchu/features/anime/models/anime/AlternativeTitles.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.example.models
1+
package com.jeluchu.features.anime.models.anime
22

33
import kotlinx.serialization.Serializable
44

src/main/kotlin/com/jeluchu/features/anime/models/anime/AnimeBroadcast.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.example.models
1+
package com.jeluchu.features.anime.models.anime
22

33
import kotlinx.serialization.Serializable
44

src/main/kotlin/com/jeluchu/features/anime/models/anime/AnimeSource.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.example.models
1+
package com.jeluchu.features.anime.models.anime
22

33
import kotlinx.serialization.Serializable
44

src/main/kotlin/com/jeluchu/features/anime/models/anime/Character.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.example.models
1+
package com.jeluchu.features.anime.models.anime
22

33
import kotlinx.serialization.Serializable
44

src/main/kotlin/com/jeluchu/features/anime/models/anime/Companies.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.example.models
1+
package com.jeluchu.features.anime.models.anime
22

33
import kotlinx.serialization.Serializable
44

src/main/kotlin/com/jeluchu/features/anime/models/anime/ExternalLinks.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.example.models
1+
package com.jeluchu.features.anime.models.anime
22

33
import kotlinx.serialization.Serializable
44

src/main/kotlin/com/jeluchu/features/anime/models/anime/ImageMediaEntity.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.example.models
1+
package com.jeluchu.features.anime.models.anime
22

33
import kotlinx.serialization.Serializable
44

src/main/kotlin/com/jeluchu/features/anime/models/anime/Individual.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.example.models
1+
package com.jeluchu.features.anime.models.anime
22

33
import kotlinx.serialization.Serializable
44

Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
1-
package com.example.models
1+
package com.jeluchu.features.anime.models.anime
22

33
import kotlinx.serialization.Serializable
44

55
@Serializable
66
data class MergedEpisode(
7-
var number: Int,
8-
var ids: MutableList<AnimeSource> = mutableListOf(),
9-
var nextEpisodeDate: String = ""
7+
var malId: Int,
8+
var title: String,
9+
var titleJapanese: String,
10+
var titleRomanji: String,
11+
var aired: String,
12+
var score: Float,
13+
var filler: Boolean,
14+
var recap: Boolean,
1015
)
16+

src/main/kotlin/com/jeluchu/features/anime/models/anime/MoreInfoEntity.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.example.models
1+
package com.jeluchu.features.anime.models.anime
22

33
import kotlinx.serialization.Serializable
44
import kotlinx.serialization.encodeToString
@@ -7,8 +7,8 @@ import org.bson.Document
77

88
@Serializable
99
data class MoreInfoEntity(
10-
val id: Long? = null,
1110
var malId: Int = 0,
11+
val id: String = "",
1212
var title: String = "",
1313
var poster: String = "",
1414
var cover: String = "",

src/main/kotlin/com/jeluchu/features/anime/models/anime/Related.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.example.models
1+
package com.jeluchu.features.anime.models.anime
22

33
import kotlinx.serialization.Serializable
44

src/main/kotlin/com/jeluchu/features/anime/models/anime/Score.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.example.models
1+
package com.jeluchu.features.anime.models.anime
22

33
import kotlinx.serialization.Serializable
44

src/main/kotlin/com/jeluchu/features/anime/models/anime/Staff.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.example.models
1+
package com.jeluchu.features.anime.models.anime
22

33
import kotlinx.serialization.Serializable
44

src/main/kotlin/com/jeluchu/features/anime/models/anime/Statistics.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.example.models
1+
package com.jeluchu.features.anime.models.anime
22

33
import kotlinx.serialization.Serializable
44

src/main/kotlin/com/jeluchu/features/anime/models/anime/Themes.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.example.models
1+
package com.jeluchu.features.anime.models.anime
22

33
import kotlinx.serialization.Serializable
44

src/main/kotlin/com/jeluchu/features/anime/models/anime/VideoPromo.kt

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
package com.example.models
1+
package com.jeluchu.features.anime.models.anime
22

3-
import com.jeluchu.features.anime.models.anime.Images
43
import kotlinx.serialization.Serializable
54

65
@Serializable

src/main/kotlin/com/jeluchu/features/anime/routes/AnimeRoutes.kt

+5-2
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,16 @@ package com.jeluchu.features.anime.routes
33
import com.jeluchu.core.extensions.getToJson
44
import com.jeluchu.core.utils.Routes
55
import com.jeluchu.features.anime.services.AnimeService
6+
import com.jeluchu.features.anime.services.DirectoryService
67
import com.mongodb.client.MongoDatabase
78
import io.ktor.server.routing.*
89

910
fun Route.animeEndpoints(
1011
mongoDatabase: MongoDatabase,
11-
service: AnimeService = AnimeService(mongoDatabase)
12+
service: AnimeService = AnimeService(mongoDatabase),
1213
) {
13-
getToJson(Routes.DIRECTORY) { service.getDirectory(call) }
1414
getToJson(Routes.ANIME_DETAILS) { service.getAnimeByMalId(call) }
15+
route(Routes.DIRECTORY) {
16+
getToJson { service.getDirectory(call) }
17+
}
1518
}

src/main/kotlin/com/jeluchu/features/rankings/models/AnimeTopEntity.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.jeluchu.features.rankings.models
22

3-
import com.example.models.VideoPromo
3+
import com.jeluchu.features.anime.models.anime.VideoPromo
44
import kotlinx.serialization.Serializable
55

66
@Serializable

src/main/kotlin/com/jeluchu/features/schedule/models/ScheduleEntity.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.jeluchu.features.schedule.models
22

3-
import com.jeluchu.core.models.jikan.search.Pagination
43
import com.jeluchu.core.models.jikan.anime.AnimeData
4+
import com.jeluchu.core.models.jikan.search.Pagination
55
import kotlinx.serialization.SerialName
66
import kotlinx.serialization.Serializable
77

0 commit comments

Comments
 (0)