module controllers import repository import veb import models import json pub struct IntegrationControllers { pub mut: repo repository.Repo } @['/:quizID'; get] fn (mut c IntegrationControllers) get(mut ctx veb.Context,quizID i64) veb.Result { integration := c.repo.get_integration_by_id(quizID) or { return ctx.server_error('Error getting integration: $err') } return ctx.json(integration) } @['/:quizID'; post] fn (mut c IntegrationControllers) create(mut ctx veb.Context,quizID int) veb.Result { mut integration := json.decode(models.TelegramIntegration,ctx.req.data)or { return ctx.request_error('Failed parse request body: $err') } integration.quiz_id = quizID if integration.account_id == "" || integration.bot_name == "" || integration.bot_token == ""{ return ctx.request_error('Missing required fields') } id := c.repo.create_integration(integration) or { return ctx.server_error('Failed create integration: $err') } integration.id = id return ctx.json(integration) } @['/:quizID'; patch] fn (mut c IntegrationControllers) update(mut ctx veb.Context,quizID int) veb.Result { println(quizID) return ctx.text('update') } @['/:quizID'; delete] fn (mut c IntegrationControllers) delete(mut ctx veb.Context,quizID int) veb.Result { println(quizID) return ctx.text('delete') }