|
|
@@ -86,6 +86,49 @@ export default class OcrRecordController {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public async updateFavorite({ params, response }: HttpContextContract) {
|
|
|
+ const record = await OcrRecord.findBy('id', params.id)
|
|
|
+ if (record) {
|
|
|
+ record.favorite = !record.favorite
|
|
|
+ await record.save()
|
|
|
+ return response.ok(record)
|
|
|
+ } else {
|
|
|
+ return response.notFound({ message: 'Record not found.' })
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public async favorite({ request, auth }: HttpContextContract) {
|
|
|
+ const user = auth.user
|
|
|
+ const isApiUser = user?.$attributes?.role === 'api'
|
|
|
+
|
|
|
+ const requestData = request.all()
|
|
|
+ requestData.favorite = 1
|
|
|
+ if (isApiUser) {
|
|
|
+ requestData.channel = user.username
|
|
|
+ }
|
|
|
+
|
|
|
+ const res = await this.paginationService.paginate(requestData)
|
|
|
+ if (isApiUser) {
|
|
|
+ res.forEach((record) => {
|
|
|
+ record.content = ''
|
|
|
+ record.record = ''
|
|
|
+ record.img = ''
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ await Promise.all(
|
|
|
+ res.map(async (record) => {
|
|
|
+ if (record.img && record.img !== '-') {
|
|
|
+ record.img = await Drive.getSignedUrl(
|
|
|
+ new URL(record.img).pathname.replace(/^\//, '')
|
|
|
+ )
|
|
|
+ }
|
|
|
+ })
|
|
|
+ )
|
|
|
+ }
|
|
|
+
|
|
|
+ return res
|
|
|
+ }
|
|
|
+
|
|
|
public async getAllAddresses({ request }: HttpContextContract) {
|
|
|
await request.validate({
|
|
|
schema: schema.create({
|