Add entity type validation
This commit is contained in:
@@ -1,6 +1,10 @@
|
||||
package userentity
|
||||
|
||||
import "github.com/ente-io/museum/ente/base"
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/ente-io/museum/ente"
|
||||
"github.com/ente-io/museum/ente/base"
|
||||
)
|
||||
|
||||
type EntityType string
|
||||
|
||||
@@ -11,6 +15,15 @@ const (
|
||||
Profile EntityType = "profile"
|
||||
)
|
||||
|
||||
func (et EntityType) IsValid() error {
|
||||
|
||||
switch et {
|
||||
case Location, Person, Profile:
|
||||
return nil
|
||||
}
|
||||
return ente.NewBadRequestWithMessage(fmt.Sprintf("Invalid EntityType: %s", et))
|
||||
}
|
||||
|
||||
func (et EntityType) GetNewID() (*string, error) {
|
||||
return base.NewID(string(et))
|
||||
}
|
||||
|
||||
@@ -25,6 +25,10 @@ func (h *UserEntityHandler) CreateKey(c *gin.Context) {
|
||||
stacktrace.Propagate(ente.ErrBadRequest, fmt.Sprintf("Request binding failed %s", err)))
|
||||
return
|
||||
}
|
||||
if err := request.Type.IsValid(); err != nil {
|
||||
handler.Error(c, stacktrace.Propagate(err, "Invalid EntityType"))
|
||||
return
|
||||
}
|
||||
err := h.Controller.CreateKey(c, request)
|
||||
if err != nil {
|
||||
handler.Error(c, stacktrace.Propagate(err, "Failed to create CreateKey"))
|
||||
@@ -57,6 +61,10 @@ func (h *UserEntityHandler) CreateEntity(c *gin.Context) {
|
||||
stacktrace.Propagate(ente.ErrBadRequest, fmt.Sprintf("Request binding failed %s", err)))
|
||||
return
|
||||
}
|
||||
if err := request.Type.IsValid(); err != nil {
|
||||
handler.Error(c, stacktrace.Propagate(err, "Invalid EntityType"))
|
||||
return
|
||||
}
|
||||
resp, err := h.Controller.CreateEntity(c, request)
|
||||
if err != nil {
|
||||
handler.Error(c, stacktrace.Propagate(err, "Failed to create CreateEntity"))
|
||||
|
||||
Reference in New Issue
Block a user