|
|
@@ -2,13 +2,26 @@ import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
|
|
|
import Banner from 'App/Models/Banner'
|
|
|
import PaginationService from 'App/Services/PaginationService'
|
|
|
import { schema } from '@ioc:Adonis/Core/Validator'
|
|
|
+import FilesService from 'App/Services/FilesService'
|
|
|
|
|
|
export default class BannersController {
|
|
|
private paginationService = new PaginationService(Banner)
|
|
|
public async index({ request }: HttpContextContract) {
|
|
|
- const { page, perPage } = request.qs()
|
|
|
- const pagination = await this.paginationService.paginate(request.all())
|
|
|
- return pagination
|
|
|
+ const result = await this.paginationService.paginate(request.all())
|
|
|
+ await Promise.all(
|
|
|
+ result.map(async (banner) => {
|
|
|
+ if (banner.img) {
|
|
|
+ try {
|
|
|
+ const url = new URL(banner.img)
|
|
|
+ const filePath = url.pathname.replace(/^\//, '')
|
|
|
+ banner.img = await FilesService.generateThumbnailUrl(filePath)
|
|
|
+ } catch (e) {
|
|
|
+ // ignore invalid url
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ )
|
|
|
+ return result
|
|
|
}
|
|
|
|
|
|
public async store({ request, bouncer }: HttpContextContract) {
|