Add entity type validation

This commit is contained in:
Neeraj Gupta
2024-08-16 11:40:31 +05:30
parent 05df5962ef
commit c759d37fd3
2 changed files with 22 additions and 1 deletions

View File

@@ -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))
}

View File

@@ -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"))