import {HttpContextContract} from "@ioc:Adonis/Core/HttpContext"; import GuestValidator from "App/Validators/guestbook/GuestValidator"; import GuestbookMessage from "App/Models/GuestbookMessage"; import User from "App/Models/User"; export default class GuestBookController { public async index ({response}: HttpContextContract) { const guestbook_messages = await GuestbookMessage .query() .preload('user') .orderBy('created_at', 'desc') return response.status(200).send({ guestbook_messages }) } public async store ({request, response}: HttpContextContract) { const data = await request.validate(GuestValidator) let user = await User.findBy('email', data.email) if (!user) { user = await User.create({ email: data.email, }) } const guestbook_message = user.related('guestbook_message').firstOrCreate({ userId: user.id }, { userId: user.id, message: data.message }) return response.status(200).send({ guestbook_message }) } public async get ({params, response}: HttpContextContract) { const email = await params.email const guestbook_message = await GuestbookMessage.findBy('email', email) return response.status(200).send({ signed: guestbook_message !== null }) } }