59 lines
1.6 KiB
Go
59 lines
1.6 KiB
Go
|
package controllers
|
||
|
|
||
|
import (
|
||
|
"amocrm/internal/models"
|
||
|
"github.com/gofiber/fiber/v2"
|
||
|
)
|
||
|
|
||
|
func (c *Controller) ChangeQuizSettings(ctx *fiber.Ctx) error {
|
||
|
quizID := ctx.Params("quizID")
|
||
|
if quizID == "" {
|
||
|
return ctx.Status(fiber.StatusBadRequest).SendString("quizID is nil")
|
||
|
}
|
||
|
|
||
|
var request models.RulesReq
|
||
|
if err := ctx.BodyParser(&request); err != nil {
|
||
|
return ctx.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": "Invalid request payload"})
|
||
|
}
|
||
|
|
||
|
err := c.service.ChangeQuizSettings(ctx.Context(), &request)
|
||
|
|
||
|
if err != nil {
|
||
|
return ctx.Status(fiber.StatusInternalServerError).SendString("Internal Server Error")
|
||
|
}
|
||
|
return ctx.SendStatus(fiber.StatusOK)
|
||
|
}
|
||
|
|
||
|
func (c *Controller) SetQuizSettings(ctx *fiber.Ctx) error {
|
||
|
quizID := ctx.Params("quizID")
|
||
|
if quizID == "" {
|
||
|
return ctx.Status(fiber.StatusBadRequest).SendString("quizID is nil")
|
||
|
}
|
||
|
|
||
|
var request models.RulesReq
|
||
|
if err := ctx.BodyParser(&request); err != nil {
|
||
|
return ctx.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": "Invalid request payload"})
|
||
|
}
|
||
|
|
||
|
err := c.service.SetQuizSettings(ctx.Context(), &request)
|
||
|
|
||
|
if err != nil {
|
||
|
return ctx.Status(fiber.StatusInternalServerError).SendString("Internal Server Error")
|
||
|
}
|
||
|
return ctx.SendStatus(fiber.StatusOK)
|
||
|
}
|
||
|
|
||
|
func (c *Controller) GettingQuizRules(ctx *fiber.Ctx) error {
|
||
|
quizID := ctx.Params("quizID")
|
||
|
if quizID == "" {
|
||
|
return ctx.Status(fiber.StatusBadRequest).SendString("quizID is nil")
|
||
|
}
|
||
|
|
||
|
response, err := c.service.GettingQuizRules(ctx.Context())
|
||
|
|
||
|
if err != nil {
|
||
|
return ctx.Status(fiber.StatusInternalServerError).SendString("Internal Server Error")
|
||
|
}
|
||
|
return ctx.Status(fiber.StatusOK).JSON(response)
|
||
|
}
|