/
gnomdeployer
/
VUZPlus
Обзор
Документация
Войти
/
gnomdeployer
/
VUZPlus
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
master
server/internal/api/handler/delegate.go
68 строк
3 KB
Gewinn
Мои кулаки — это Wi-Fi, подключишься — и ты в оффлайне.
13 апр 2025, 18:33
13 апр 2025, 18:33
6237fd9
Код
Авторство
О чём код?
package handler import ( "github.com/gofiber/fiber/v2" "vuzplus/internal/shared/log" ) // GetStudentsRegistrations // @Tags Delegate // @Summary Получение заявок студентов // @Description Возвращает список заявок студентов на регистрацию // @Accept json // @Produce json // @Success 200 {array} entities.StudentRegistration "Список заявок" // @Failure 400 {object} entities.Error "Некорректный запрос" // @Failure 401 {object} entities.Error "Ошибка аутентификации" // @Failure 403 {object} entities.Error "Недостаточно прав" // @Failure 500 {object} entities.Error "Ошибка на стороне сервера" // @Router /auth/students/registrations [get] // @Security ApiKeyAuth func (h *Handler) GetStudentsRegistrations(c *fiber.Ctx) error { adminId, ok := c.Locals("id").(int) if !ok { logEvent := log.CreateLog(h.logger, log.LogsField{Level: "Error", Method: c.Method(), Url: c.OriginalURL(), Status: fiber.StatusBadRequest}) logEvent.Msg("error: cant get id from token") return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": "cant get id from token"}) } h.logger.Debug().Msg("call h.repository.DB.DBGetRoleById") userStatus, err := h.repository.DB.DBGetRoleById(adminId) if err != nil { logEvent := log.CreateLog(h.logger, log.LogsField{Level: "Error", Method: c.Method(), Url: c.OriginalURL(), Status: fiber.StatusBadRequest}) logEvent.Msg(err.Error()) return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": err.Error()}) } if (userStatus.Role == "admin" || userStatus.Role == "delegate") && userStatus.Status == "verified" { h.logger.Debug().Msg("call h.repository.DB.DBGetUniversityIdByUserId") universityID, err := h.repository.DB.DBGetUniversityIdByUserId(adminId) if err != nil { logEvent := log.CreateLog(h.logger, log.LogsField{Level: "Error", Method: c.Method(), Url: c.OriginalURL(), Status: fiber.StatusBadRequest}) logEvent.Msg(err.Error()) return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": err.Error()}) } h.logger.Debug().Msg("call h.repository.DB.DBGetRoleById") students, err := h.repository.DB.DBGetStudentsApplications(universityID) if err != nil { logEvent := log.CreateLog(h.logger, log.LogsField{Level: "Error", Method: c.Method(), Url: c.OriginalURL(), Status: fiber.StatusBadRequest}) logEvent.Msg(err.Error()) return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": err.Error()}) } logEvent := log.CreateLog(h.logger, log.LogsField{Level: "Info", Method: c.Method(), Url: c.OriginalURL(), Status: fiber.StatusOK}) logEvent.Msg("successful getting all students applications") return c.Status(fiber.StatusOK).JSON(students) } else { logEvent := log.CreateLog(h.logger, log.LogsField{Level: "Error", Method: c.Method(), Url: c.OriginalURL(), Status: fiber.StatusOK}) logEvent.Msg("error: There are not enough rights for this action") return c.Status(fiber.StatusForbidden).JSON(fiber.Map{"error": "There are not enough rights for this action"}) } }