2024-02-17 13:25:03 +01:00
|
|
|
package controllers
|
|
|
|
|
|
|
|
import (
|
|
|
|
"database/sql"
|
|
|
|
"errors"
|
|
|
|
|
|
|
|
"git.gnous.eu/Rick/calendrier/models"
|
|
|
|
"git.gnous.eu/Rick/calendrier/services"
|
|
|
|
"github.com/gofiber/fiber/v2"
|
|
|
|
)
|
|
|
|
|
|
|
|
// @Summary Retourne tous les calendriers
|
|
|
|
// @Tag calendar
|
|
|
|
// @Param name query string false "Nom du calendrier"
|
|
|
|
// @Produce json
|
|
|
|
// @Success 200 {array} models.Calendar
|
|
|
|
// @Failure 401 "Token mal formaté"
|
|
|
|
// @Failure 500 "Erreur dans la base de données"
|
|
|
|
// @Router /calendars [get]
|
|
|
|
func GetCalendars(c *fiber.Ctx) error {
|
|
|
|
name := c.Query("name")
|
|
|
|
res, err := services.GetAllCalendar(name)
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"err": err.Error()})
|
|
|
|
} else {
|
|
|
|
return c.Status(fiber.StatusOK).JSON(res)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// @Summary Retourne les informations sur un calendrier
|
|
|
|
// @Tag calendar
|
|
|
|
// @Produce json
|
|
|
|
// @Success 200 {array} models.Calendar
|
|
|
|
// @Failure 401 "Token mal formaté"
|
|
|
|
// @Failure 404 "Calendrier introuvable"
|
|
|
|
// @Failure 500 "Erreur dans la base de données"
|
|
|
|
// @Router /calendar/{id} [get]
|
|
|
|
func GetCalendar(c *fiber.Ctx) error {
|
|
|
|
id, err := c.ParamsInt("id")
|
|
|
|
|
|
|
|
if err == nil {
|
|
|
|
tmp, err := services.GetCalendarById(id)
|
|
|
|
|
|
|
|
if errors.Is(err, sql.ErrNoRows) {
|
|
|
|
return c.SendStatus(fiber.StatusNotFound)
|
|
|
|
} else if err != nil {
|
|
|
|
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"err": err.Error()})
|
|
|
|
} else {
|
|
|
|
return c.Status(fiber.StatusOK).JSON(tmp)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{"err": err.Error()})
|
|
|
|
}
|
|
|
|
|
|
|
|
// @Summary Retourne tous les évènements d'un calendrier
|
|
|
|
// @Tag calendar
|
|
|
|
// @Param name query string false "Nom de l'évènement"
|
|
|
|
// @Produce json
|
|
|
|
// @Success 200 {array} models.Event
|
|
|
|
// @Failure 400 "Date mal formatée ou incohérente"
|
|
|
|
// @Failure 401 "Token mal formaté"
|
|
|
|
// @Failure 404 "Calendrier introuvable"
|
|
|
|
// @Failure 500 "Erreur dans la base de données"
|
|
|
|
// @Router /calendar/{id}/events [get]
|
|
|
|
func GetCalendarEvents(c *fiber.Ctx) error {
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
// @Summary Créer un calendrier
|
|
|
|
// @Tag calendar
|
|
|
|
// @Success 200
|
|
|
|
// @Failure 401 "Token mal formaté"
|
|
|
|
// @Failure 500 "Erreur dans la base de données"
|
|
|
|
// @Router /calendar/ [post]
|
|
|
|
func PostCalendar(c *fiber.Ctx) error {
|
|
|
|
tmp := new(models.Calendar)
|
|
|
|
err := c.BodyParser(tmp)
|
2024-02-25 01:10:45 +01:00
|
|
|
name := GetName(c)
|
2024-02-17 13:25:03 +01:00
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{"err": err.Error()})
|
|
|
|
}
|
|
|
|
|
2024-02-25 01:10:45 +01:00
|
|
|
err = services.CreateCalendar(tmp, name)
|
2024-02-17 13:25:03 +01:00
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{"err": err.Error()})
|
|
|
|
} else {
|
|
|
|
return c.SendStatus(fiber.StatusOK)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// @Summary Modifie un calendrier
|
|
|
|
// @Tag calendar
|
|
|
|
// @Success 200
|
|
|
|
// @Failure 401 "Token mal formaté"
|
|
|
|
// @Failure 404 "Calendrier introuvable"
|
|
|
|
// @Failure 500 "Erreur dans la base de données"
|
|
|
|
// @Router /calendar/{id} [patch]
|
|
|
|
func PatchCalendar(c *fiber.Ctx) error {
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
// @Summary Supprime un calendrier
|
|
|
|
// @Tag calendar
|
|
|
|
// @Success 200
|
|
|
|
// @Failure 401 "Token mal formaté"
|
|
|
|
// @Failure 404 "Calendrier introuvable"
|
|
|
|
// @Failure 500 "Erreur dans la base de données"
|
|
|
|
// @Router /calendar/{id} [delete]
|
|
|
|
func DeleteCalendar(c *fiber.Ctx) error {
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
// @Summary Ajoute un évènements à un calendrier
|
|
|
|
// @Tag calendar
|
|
|
|
// @Success 200
|
|
|
|
// @Failure 401 "Token mal formaté"
|
|
|
|
// @Failure 404 "Calendrier ou évènement introuvable"
|
|
|
|
// @Failure 500 "Erreur dans la base de données"
|
|
|
|
// @Router /calendar/{id}/event/{id} [post]
|
|
|
|
func PostCalendarEvent(c *fiber.Ctx) error {
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
// @Summary Partage un calendrier
|
|
|
|
// @Tag calendar
|
|
|
|
// @Success 200
|
|
|
|
// @Failure 401 "Token mal formaté"
|
|
|
|
// @Failure 404 "Calendrier ou introuvable"
|
|
|
|
// @Failure 500 "Erreur dans la base de données"
|
|
|
|
// @Router /calendar/{id}/share [post]
|
|
|
|
func PostCalendarShare(c *fiber.Ctx) error {
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
// @Summary Supprime un partage de calendrier
|
|
|
|
// @Tag calendar
|
|
|
|
// @Success 200
|
|
|
|
// @Failure 401 "Token mal formaté"
|
|
|
|
// @Failure 404 "Calendrier ou lien introuvable"
|
|
|
|
// @Failure 500 "Erreur dans la base de données"
|
|
|
|
// @Router /calendar/{id}/share/{id} [delete]
|
|
|
|
func DeleteCalendarShare(c *fiber.Ctx) error {
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
// @Summary Ajoute un utilisateur dans un calendrier
|
|
|
|
// @Tag calendar
|
|
|
|
// @Success 200
|
|
|
|
// @Failure 401 "Token mal formaté"
|
|
|
|
// @Failure 404 "Calendrier ou utilisateur introuvable"
|
|
|
|
// @Failure 500 "Erreur dans la base de données"
|
|
|
|
// @Router /calendar/{id}/user/{id} [post]
|
|
|
|
func PostCalendarUser(c *fiber.Ctx) error {
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
// @Summary Supprime un utilisateur dans un calendrier
|
|
|
|
// @Tag calendar
|
|
|
|
// @Success 200
|
|
|
|
// @Failure 401 "Token mal formaté"
|
|
|
|
// @Failure 404 "Calendrier ou utilisateur introuvable"
|
|
|
|
// @Failure 500 "Erreur dans la base de données"
|
|
|
|
// @Router /calendar/{id}/user/{id} [delete]
|
|
|
|
func DeleteCalendarUser(c *fiber.Ctx) error {
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
// @Summary Change la visibilité d'un calendrier
|
|
|
|
// @Tag calendar
|
|
|
|
// @Success 200
|
|
|
|
// @Accept json
|
|
|
|
// @Param is_public body bool true "La visiblité à mettre"
|
|
|
|
// @Failure 401 "Token mal formaté"
|
|
|
|
// @Failure 404 "Calendrier introuvable"
|
|
|
|
// @Failure 500 "Erreur dans la base de données"
|
|
|
|
// @Router /calendar/{id}/visibility [put]
|
|
|
|
/*
|
|
|
|
func PutVisibilityCalendar(c *fiber.Ctx) error {
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
*/
|