2024-08-18 13:26:33 +00:00
|
|
|
module controllers
|
|
|
|
|
|
|
|
import repository
|
|
|
|
import veb
|
2024-08-19 09:13:40 +00:00
|
|
|
import models
|
|
|
|
import json
|
2024-08-18 13:26:33 +00:00
|
|
|
|
|
|
|
pub struct IntegrationControllers {
|
|
|
|
pub mut:
|
|
|
|
repo repository.Repo
|
|
|
|
}
|
|
|
|
|
|
|
|
@['/:quizID'; get]
|
2024-08-18 13:50:27 +00:00
|
|
|
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)
|
2024-08-18 13:26:33 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
@['/:quizID'; post]
|
2024-08-18 13:50:27 +00:00
|
|
|
fn (mut c IntegrationControllers) create(mut ctx veb.Context,quizID int) veb.Result {
|
2024-08-19 09:13:40 +00:00
|
|
|
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)
|
2024-08-18 13:26:33 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
@['/:quizID'; patch]
|
2024-08-18 13:50:27 +00:00
|
|
|
fn (mut c IntegrationControllers) update(mut ctx veb.Context,quizID int) veb.Result {
|
2024-08-18 13:26:33 +00:00
|
|
|
println(quizID)
|
|
|
|
return ctx.text('update')
|
|
|
|
}
|
|
|
|
|
|
|
|
@['/:quizID'; delete]
|
2024-08-18 13:50:27 +00:00
|
|
|
fn (mut c IntegrationControllers) delete(mut ctx veb.Context,quizID int) veb.Result {
|
2024-08-18 13:26:33 +00:00
|
|
|
println(quizID)
|
|
|
|
return ctx.text('delete')
|
|
|
|
}
|