package apihandler import ( "net/http" "sort" "codeberg.org/vlbeaudoin/pave" "git.agecem.com/agecem/agecem-org/apiresponse" "git.agecem.com/agecem/agecem-org/config" "git.agecem.com/agecem/agecem-org/media" "github.com/labstack/echo/v4" ) type V1Handler struct { Config config.Config MediaClient *media.MediaClient Pave *pave.Pave } // API Handlers // HandleV1 affiche les routes accessibles. // Les routes sont triées selon .Path, pour les rendre plus facilement navigables. func (h *V1Handler) HandleV1(c echo.Context) error { routes := c.Echo().Routes() sort.Slice(routes, func(i, j int) bool { return routes[i].Path < routes[j].Path }) return c.JSON(http.StatusOK, routes) } // HandleV1Seed créé des buckets dans minio selon la liste de buckets dans server.documents.buckets // Les buckets sont créés avec paramètres par défaut, et sont ensuite visible dans /v1/bucket. func (h *V1Handler) HandleV1Seed(c echo.Context) error { var response apiresponse.V1SeedPOST new_buckets, err := h.MediaClient.Seed() response.Data.Buckets = new_buckets if err != nil { response.StatusCode = http.StatusInternalServerError response.Message = "Error during mediaClient.Seed()" response.Error = err.Error() return c.JSON(response.StatusCode, response) } if len(new_buckets) == 0 { response.Message = "All buckets already exist" } else { response.Message = "Buckets successfully created" } response.StatusCode = http.StatusOK return c.JSON(response.StatusCode, response) }