mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-05-24 22:19:09 -05:00
go-micro errors on validator (OCIS-363)
This commit is contained in:
committed by
Benedikt Kulmann
parent
d59bc0b4b9
commit
dedcbd0412
+58
-27
@@ -5,6 +5,7 @@ import (
|
||||
|
||||
validation "github.com/go-ozzo/ozzo-validation/v4"
|
||||
"github.com/go-ozzo/ozzo-validation/v4/is"
|
||||
merrors "github.com/micro/go-micro/v2/errors"
|
||||
"github.com/owncloud/ocis-settings/pkg/proto/v0"
|
||||
)
|
||||
|
||||
@@ -32,43 +33,49 @@ func validateSaveBundle(req *proto.SaveBundleRequest) error {
|
||||
validation.Field(&req.Bundle.DisplayName, validation.Required),
|
||||
validation.Field(&req.Bundle.Settings, validation.Required),
|
||||
); err != nil {
|
||||
return err
|
||||
return merrors.FromError(err)
|
||||
}
|
||||
if err := validateResource(req.Bundle.Resource); err != nil {
|
||||
return err
|
||||
return merrors.FromError(err)
|
||||
}
|
||||
for i := range req.Bundle.Settings {
|
||||
if err := validateSetting(req.Bundle.Settings[i]); err != nil {
|
||||
return err
|
||||
return merrors.FromError(err)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func validateGetBundle(req *proto.GetBundleRequest) error {
|
||||
return validation.Validate(&req.BundleId, requireAccountID...)
|
||||
if err := validation.Validate(&req.BundleId, requireAccountID...); err != nil {
|
||||
return merrors.FromError(err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func validateListBundles(req *proto.ListBundlesRequest) error {
|
||||
return validation.Validate(&req.AccountUuid, requireAccountID...)
|
||||
if err := validation.Validate(&req.AccountUuid, requireAccountID...); err != nil {
|
||||
return merrors.FromError(err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func validateAddSettingToBundle(req *proto.AddSettingToBundleRequest) error {
|
||||
if err := validation.ValidateStruct(
|
||||
req,
|
||||
validation.Field(&req.BundleId, is.UUID),
|
||||
); err != nil {
|
||||
return err
|
||||
if err := validation.ValidateStruct(req, validation.Field(&req.BundleId, is.UUID)); err != nil {
|
||||
return merrors.FromError(err)
|
||||
}
|
||||
return validateSetting(req.Setting)
|
||||
}
|
||||
|
||||
func validateRemoveSettingFromBundle(req *proto.RemoveSettingFromBundleRequest) error {
|
||||
return validation.ValidateStruct(
|
||||
if err := validation.ValidateStruct(
|
||||
req,
|
||||
validation.Field(&req.BundleId, is.UUID),
|
||||
validation.Field(&req.SettingId, is.UUID),
|
||||
)
|
||||
); err != nil {
|
||||
return merrors.FromError(err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func validateSaveValue(req *proto.SaveValueRequest) error {
|
||||
@@ -79,11 +86,11 @@ func validateSaveValue(req *proto.SaveValueRequest) error {
|
||||
validation.Field(&req.Value.SettingId, is.UUID),
|
||||
validation.Field(&req.Value.AccountUuid, requireAccountID...),
|
||||
); err != nil {
|
||||
return err
|
||||
return merrors.FromError(err)
|
||||
}
|
||||
|
||||
if err := validateResource(req.Value.Resource); err != nil {
|
||||
return err
|
||||
return merrors.FromError(err)
|
||||
}
|
||||
|
||||
// TODO: validate values against the respective setting. need to check if constraints of the setting are fulfilled.
|
||||
@@ -91,46 +98,67 @@ func validateSaveValue(req *proto.SaveValueRequest) error {
|
||||
}
|
||||
|
||||
func validateGetValue(req *proto.GetValueRequest) error {
|
||||
return validation.Validate(req.Id, is.UUID)
|
||||
if err := validation.Validate(req.Id, is.UUID); err != nil {
|
||||
return merrors.FromError(err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func validateListValues(req *proto.ListValuesRequest) error {
|
||||
return validation.ValidateStruct(
|
||||
if err := validation.ValidateStruct(
|
||||
req,
|
||||
validation.Field(&req.BundleId, validation.When(req.BundleId != "", is.UUID)),
|
||||
validation.Field(&req.AccountUuid, validation.When(req.AccountUuid != "", validation.Match(regexForAccountUUID))),
|
||||
)
|
||||
); err != nil {
|
||||
return merrors.FromError(err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func validateListRoles(req *proto.ListBundlesRequest) error {
|
||||
return validation.Validate(&req.AccountUuid, requireAccountID...)
|
||||
if err := validation.Validate(&req.AccountUuid, requireAccountID...); err != nil {
|
||||
return merrors.FromError(err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func validateListRoleAssignments(req *proto.ListRoleAssignmentsRequest) error {
|
||||
return validation.Validate(req.AccountUuid, requireAccountID...)
|
||||
if err := validation.Validate(req.AccountUuid, requireAccountID...); err != nil {
|
||||
return merrors.FromError(err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func validateAssignRoleToUser(req *proto.AssignRoleToUserRequest) error {
|
||||
return validation.ValidateStruct(
|
||||
if err := validation.ValidateStruct(
|
||||
req,
|
||||
validation.Field(&req.AccountUuid, requireAccountID...),
|
||||
validation.Field(&req.RoleId, is.UUID),
|
||||
)
|
||||
); err != nil {
|
||||
return merrors.FromError(err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func validateRemoveRoleFromUser(req *proto.RemoveRoleFromUserRequest) error {
|
||||
return validation.ValidateStruct(
|
||||
if err := validation.ValidateStruct(
|
||||
req,
|
||||
validation.Field(&req.Id, is.UUID),
|
||||
)
|
||||
); err != nil {
|
||||
return merrors.FromError(err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// validateResource is an internal helper for validating the content of a resource.
|
||||
func validateResource(resource *proto.Resource) error {
|
||||
if err := validation.Validate(&resource, validation.Required); err != nil {
|
||||
return err
|
||||
return merrors.FromError(err)
|
||||
}
|
||||
return validation.Validate(&resource, validation.NotIn(proto.Resource_TYPE_UNKNOWN))
|
||||
if err := validation.Validate(&resource, validation.NotIn(proto.Resource_TYPE_UNKNOWN)); err != nil {
|
||||
return merrors.FromError(err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// validateSetting is an internal helper for validating the content of a setting.
|
||||
@@ -141,7 +169,10 @@ func validateSetting(setting *proto.Setting) error {
|
||||
validation.Field(&setting.Id, validation.When(setting.Id != "", is.UUID)),
|
||||
validation.Field(&setting.Name, requireAlphanumeric...),
|
||||
); err != nil {
|
||||
return err
|
||||
return merrors.FromError(err)
|
||||
}
|
||||
return validateResource(setting.Resource)
|
||||
if err := validateResource(setting.Resource); err != nil {
|
||||
return merrors.FromError(err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user