Compare commits

2 Commits

Author SHA1 Message Date
Daniel Svitan
3c6d7e027a Adds a unique name rule 2025-04-13 17:58:05 +02:00
Daniel Svitan
50420bc0a5 Adds selecting client by name 2025-04-13 17:46:43 +02:00

View File

@@ -159,7 +159,7 @@ func main() {
app.GET("/admin/clients/:id", authed(idparam(func(c echo.Context, id uuid.UUID) error {
for _, client := range clients {
if client.ID == id {
if client.ID == id || client.Name == id.String() {
return c.JSONPretty(http.StatusOK, client, indent)
}
}
@@ -228,7 +228,7 @@ func main() {
return c.NoContent(http.StatusInternalServerError)
}
return c.JSONPretty(http.StatusOK, string(bytes[:n]), indent)
return c.String(http.StatusOK, string(bytes[:n]))
})))
app.POST("/admin/name/:id", authed(idparam(func(c echo.Context, id uuid.UUID) error {
@@ -237,12 +237,22 @@ func main() {
return c.JSON(http.StatusBadRequest, "missing field 'name'")
}
var target *Client = nil
for _, client := range clients {
if client.ID == id {
client.Name = name
client.UpdatedAt = time.Now()
return c.JSON(http.StatusOK, echo.Map{"message": "ok"})
if client.ID == id || client.Name == id.String() {
target = client
}
if client.Name == name {
return c.JSON(http.StatusBadRequest, echo.Map{"message": "name already used"})
}
}
if target != nil {
target.Name = name
target.UpdatedAt = time.Now()
return c.JSON(http.StatusOK, echo.Map{"message": "ok"})
}
return c.JSON(http.StatusNotFound, echo.Map{"message": "not found"})
@@ -250,7 +260,7 @@ func main() {
app.POST("/admin/exit/:id", authed(idparam(func(c echo.Context, id uuid.UUID) error {
for _, client := range clients {
if client.ID == id {
if client.ID == id || client.Name == id.String() {
client.ExitWanted = true
return c.JSON(http.StatusOK, echo.Map{"message": "ok"})
}