Files
Ron Rise dd383b6fb3
All checks were successful
🧪 ✨ Unit Tests Workflow / 🧪 📜 JavaScript Tests (push) Successful in 7m28s
🧪 ✨ Unit Tests Workflow / 🧪 🐹 GolangCI-Lint (push) Successful in 7m40s
🧪 ✨ Unit Tests Workflow / 🔍 🐹 Go Tests (push) Successful in 10m24s
fix tpyo (#8)
Reviewed-on: Siteworxpro/reloading-manager#8
Co-authored-by: Ron Rise <ron@siteworxpro.com>
Co-committed-by: Ron Rise <ron@siteworxpro.com>
2025-06-10 15:56:03 +00:00

103 lines
2.1 KiB
Go

package cartridge
import (
"context"
"encoding/json"
"git.siteworxpro.com/reloading-manager/backend/database"
"git.siteworxpro.com/reloading-manager/backend/handlers"
"git.siteworxpro.com/reloading-manager/backend/models/loads"
"github.com/labstack/echo/v4"
"net/http"
)
type response struct {
Id string `json:"id"`
Name string `json:"name"`
}
type postRequest struct {
Name string `json:"name"`
Meta string `json:"meta"`
}
func Get(c echo.Context) error {
db := c.(*database.CustomContext).Db
defer func() {
_ = db.Db.Close(context.Background())
}()
cartridges, err := db.Loads.GetCartridges(context.Background())
if err != nil {
return echo.NewHTTPError(http.StatusInternalServerError, err.Error())
}
var res = make([]response, 0)
for _, cartridge := range cartridges {
res = append(res, response{
Id: cartridge.ID.String(),
Name: cartridge.Name,
})
}
return c.JSON(http.StatusOK, handlers.Response[[]response]{
Payload: res,
Status: http.StatusText(http.StatusOK),
})
}
func Post(c echo.Context) error {
db := c.(*database.CustomContext).Db
defer func() {
_ = db.Db.Close(context.Background())
}()
req := postRequest{}
err := c.Bind(&req)
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, err.Error())
}
if req.Name == "" {
return echo.NewHTTPError(http.StatusBadRequest, "name is required")
}
var meta json.RawMessage
if req.Meta != "" {
meta = []byte(req.Meta)
} else {
meta = []byte("{}")
}
retId, err := db.Loads.CreateCartridge(context.Background(), loads.CreateCartridgeParams{
Name: req.Name,
Meta: meta,
})
if err != nil {
return handlers.BadRequest(c, "already exists")
}
return c.JSON(http.StatusOK, map[string]string{"id": retId.String()})
}
func Delete(c echo.Context) error {
db := c.(*database.CustomContext).Db
defer func() {
_ = db.Db.Close(context.Background())
}()
uid, err := handlers.ParseUuidOrBadRequest(c, c.Param("id"))
if err != nil || uid == nil {
return echo.NewHTTPError(http.StatusBadRequest, "invalid id")
}
err = db.Loads.DeleteCartridge(context.Background(), *uid)
if err != nil {
return err
}
return c.NoContent(http.StatusOK)
}