refactor color system to be separate from models, also move errors out of models.
continuous-integration/drone/push Build is passing

This commit is contained in:
2022-02-28 22:52:06 +01:00
parent df865574bf
commit 62e7cb88f4
32 changed files with 532 additions and 516 deletions
+2 -1
View File
@@ -4,6 +4,7 @@ import (
"context"
"git.aiterp.net/lucifer/new-server/app/config"
"git.aiterp.net/lucifer/new-server/app/services/publisher"
"git.aiterp.net/lucifer/new-server/internal/lerrors"
"git.aiterp.net/lucifer/new-server/models"
"github.com/gin-gonic/gin"
"log"
@@ -305,7 +306,7 @@ func Devices(r gin.IRoutes) {
forgettableDriver, ok := driver.(models.ForgettableDriver)
if !ok {
return nil, models.ErrCannotForget
return nil, lerrors.ErrCannotForget
}
err = forgettableDriver.ForgetDevice(ctxOf(c), bridge, *device)
if err != nil {
+4 -3
View File
@@ -2,6 +2,7 @@ package api
import (
"git.aiterp.net/lucifer/new-server/app/config"
"git.aiterp.net/lucifer/new-server/internal/color"
"git.aiterp.net/lucifer/new-server/models"
"github.com/gin-gonic/gin"
)
@@ -25,13 +26,13 @@ func ColorPresets(r gin.IRoutes) {
return nil, err
}
newColor, err := models.ParseColorValue(body.ColorString)
newColor, err := color.Parse(body.ColorString)
if err != nil {
return nil, err
}
preset := models.ColorPreset{
Name: body.Name,
Name: body.Name,
Value: newColor,
}
@@ -64,7 +65,7 @@ func ColorPresets(r gin.IRoutes) {
}
if body.ColorString != nil {
newColor, err := models.ParseColorValue(*body.ColorString)
newColor, err := color.Parse(*body.ColorString)
if err != nil {
return nil, err
}
+14 -14
View File
@@ -3,25 +3,25 @@ package api
import (
"context"
"encoding/json"
"git.aiterp.net/lucifer/new-server/models"
"git.aiterp.net/lucifer/new-server/internal/lerrors"
"github.com/gin-gonic/gin"
"strconv"
)
var errorMap = map[error]int{
models.ErrNotFound: 404,
models.ErrInvalidName: 400,
models.ErrBadInput: 400,
models.ErrBadColor: 400,
models.ErrInternal: 500,
models.ErrUnknownColorFormat: 400,
lerrors.ErrNotFound: 404,
lerrors.ErrInvalidName: 400,
lerrors.ErrBadInput: 400,
lerrors.ErrBadColor: 400,
lerrors.ErrInternal: 500,
lerrors.ErrUnknownColorFormat: 400,
models.ErrSceneInvalidInterval: 400,
models.ErrSceneNoRoles: 400,
models.ErrSceneRoleNoStates: 400,
models.ErrSceneRoleUnsupportedOrdering: 422,
models.ErrSceneRoleUnknownEffect: 422,
models.ErrSceneRoleUnknownPowerMode: 422,
lerrors.ErrSceneInvalidInterval: 400,
lerrors.ErrSceneNoRoles: 400,
lerrors.ErrSceneRoleNoStates: 400,
lerrors.ErrSceneRoleUnsupportedOrdering: 422,
lerrors.ErrSceneRoleUnknownEffect: 422,
lerrors.ErrSceneRoleUnknownPowerMode: 422,
}
type response struct {
@@ -66,7 +66,7 @@ func intParam(c *gin.Context, key string) int {
func parseBody(c *gin.Context, target interface{}) error {
err := json.NewDecoder(c.Request.Body).Decode(target)
if err != nil {
return models.ErrBadInput
return lerrors.ErrBadInput
}
return nil