|
|
@@ -9,11 +9,34 @@ export default class PlayHistoriesController {
|
|
|
private paginationService = new PaginationService(PlayHistory)
|
|
|
|
|
|
public async index({ request, auth }: HttpContextContract) {
|
|
|
- return await this.paginationService.paginate({
|
|
|
+ const page = await this.paginationService.paginate({
|
|
|
...request.all(),
|
|
|
userId: auth.user!.id,
|
|
|
order: 'updatedAt,desc'
|
|
|
})
|
|
|
+ const seriesIds = new Set(
|
|
|
+ page
|
|
|
+ .all()
|
|
|
+ .map((record) => record.seriesId)
|
|
|
+ .filter((id) => !!id)
|
|
|
+ )
|
|
|
+ const series = await Series.findMany(Array.from(seriesIds))
|
|
|
+ const episodeIds = new Set(
|
|
|
+ page
|
|
|
+ .all()
|
|
|
+ .map((record) => record.episodeId)
|
|
|
+ .filter((id) => !!id)
|
|
|
+ )
|
|
|
+ const episodes = await Episode.findMany(Array.from(episodeIds))
|
|
|
+ page.all().forEach((record) => {
|
|
|
+ if (record.seriesId) {
|
|
|
+ record.series = series.find((s) => s.id === record.seriesId)
|
|
|
+ }
|
|
|
+ if (record.episodeId) {
|
|
|
+ record.episode = episodes.find((e) => e.id === record.episodeId)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ return page
|
|
|
}
|
|
|
|
|
|
public async store({ request, auth }: HttpContextContract) {
|