Skip to content

Commit

Permalink
separating 4xx and 5xx errors
Browse files Browse the repository at this point in the history
  • Loading branch information
mohanish2504 committed Jan 21, 2024
1 parent 977e5b8 commit 76a5c54
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 37 deletions.
8 changes: 4 additions & 4 deletions internal/servers/bundleServer.go
Expand Up @@ -37,14 +37,14 @@ func (r *BundleServer) Write(ctx context.Context, request *v1.BundleWriteRequest

v := request.Validate()
if v != nil {
return nil, v
return nil, status.Error(GetStatus(v), v.Error())
}

for _, bundle := range request.GetBundles() {
for _, operation := range bundle.GetOperations() {
err := validation.ValidateBundleOperation(operation)
if err != nil {
return nil, err
return nil, status.Error(GetStatus(err), err.Error())
}
}
}
Expand Down Expand Up @@ -78,7 +78,7 @@ func (r *BundleServer) Read(ctx context.Context, request *v1.BundleReadRequest)

v := request.Validate()
if v != nil {
return nil, v
return nil, status.Error(GetStatus(v), v.Error())
}

bundle, err := r.br.Read(ctx, request.GetTenantId(), request.GetName())
Expand All @@ -101,7 +101,7 @@ func (r *BundleServer) Delete(ctx context.Context, request *v1.BundleDeleteReque

v := request.Validate()
if v != nil {
return nil, v
return nil, status.Error(GetStatus(v), v.Error())
}

err := r.bw.Delete(ctx, request.GetTenantId(), request.GetName())
Expand Down
49 changes: 24 additions & 25 deletions internal/servers/dataServer.go
Expand Up @@ -3,15 +3,13 @@ package servers
import (
"log/slog"

"google.golang.org/grpc/status"

otelCodes "go.opentelemetry.io/otel/codes"
"golang.org/x/net/context"

"github.com/Permify/permify/internal/storage"
"github.com/Permify/permify/internal/validation"
"github.com/Permify/permify/pkg/database"
v1 "github.com/Permify/permify/pkg/pb/base/v1"
otelCodes "go.opentelemetry.io/otel/codes"
"golang.org/x/net/context"
"google.golang.org/grpc/status"
)

// DataServer - Structure for Data Server
Expand Down Expand Up @@ -46,14 +44,14 @@ func (r *DataServer) ReadRelationships(ctx context.Context, request *v1.Relation

v := request.Validate()
if v != nil {
return nil, v
return nil, status.Error(GetStatus(v), v.Error())
}

snap := request.GetMetadata().GetSnapToken()
if snap == "" {
st, err := r.dr.HeadSnapshot(ctx, request.GetTenantId())
if err != nil {
return nil, err
return nil, status.Error(GetStatus(err), err.Error())
}
snap = st.Encode().String()
}
Expand Down Expand Up @@ -88,14 +86,15 @@ func (r *DataServer) ReadAttributes(ctx context.Context, request *v1.AttributeRe

v := request.Validate()
if v != nil {
return nil, v
return nil, status.Error(GetStatus(v), v.Error())
}

snap := request.GetMetadata().GetSnapToken()
if snap == "" {
st, err := r.dr.HeadSnapshot(ctx, request.GetTenantId())

if err != nil {
return nil, err
return nil, status.Error(GetStatus(err), err.Error())
}
snap = st.Encode().String()
}
Expand Down Expand Up @@ -130,7 +129,7 @@ func (r *DataServer) Write(ctx context.Context, request *v1.DataWriteRequest) (*

v := request.Validate()
if v != nil {
return nil, v
return nil, status.Error(GetStatus(v), v.Error())
}

version := request.GetMetadata().GetSchemaVersion()
Expand All @@ -139,7 +138,7 @@ func (r *DataServer) Write(ctx context.Context, request *v1.DataWriteRequest) (*
if err != nil {
span.RecordError(err)
span.SetStatus(otelCodes.Error, err.Error())
return nil, err
return nil, status.Error(GetStatus(err), err.Error())
}
version = v
}
Expand All @@ -151,14 +150,14 @@ func (r *DataServer) Write(ctx context.Context, request *v1.DataWriteRequest) (*
if err != nil {
span.RecordError(err)
span.SetStatus(otelCodes.Error, err.Error())
return nil, err
return nil, status.Error(GetStatus(err), err.Error())
}

err = validation.ValidateTuple(definition, tup)
if err != nil {
span.RecordError(err)
span.SetStatus(otelCodes.Error, err.Error())
return nil, err
return nil, status.Error(GetStatus(err), err.Error())
}

relationships = append(relationships, tup)
Expand All @@ -171,14 +170,14 @@ func (r *DataServer) Write(ctx context.Context, request *v1.DataWriteRequest) (*
if err != nil {
span.RecordError(err)
span.SetStatus(otelCodes.Error, err.Error())
return nil, err
return nil, status.Error(GetStatus(err), err.Error())
}

err = validation.ValidateAttribute(definition, attribute)
if err != nil {
span.RecordError(err)
span.SetStatus(otelCodes.Error, err.Error())
return nil, err
return nil, status.Error(GetStatus(err), err.Error())
}

attributes = append(attributes, attribute)
Expand All @@ -204,7 +203,7 @@ func (r *DataServer) WriteRelationships(ctx context.Context, request *v1.Relatio

v := request.Validate()
if v != nil {
return nil, v
return nil, status.Error(GetStatus(v), v.Error())
}

version := request.GetMetadata().GetSchemaVersion()
Expand All @@ -213,7 +212,7 @@ func (r *DataServer) WriteRelationships(ctx context.Context, request *v1.Relatio
if err != nil {
span.RecordError(err)
span.SetStatus(otelCodes.Error, err.Error())
return nil, err
return nil, status.Error(GetStatus(err), err.Error())
}
version = v
}
Expand All @@ -225,14 +224,14 @@ func (r *DataServer) WriteRelationships(ctx context.Context, request *v1.Relatio
if err != nil {
span.RecordError(err)
span.SetStatus(otelCodes.Error, err.Error())
return nil, err
return nil, status.Error(GetStatus(err), err.Error())
}

err = validation.ValidateTuple(definition, tup)
if err != nil {
span.RecordError(err)
span.SetStatus(otelCodes.Error, err.Error())
return nil, err
return nil, status.Error(GetStatus(err), err.Error())
}

relationships = append(relationships, tup)
Expand All @@ -258,12 +257,12 @@ func (r *DataServer) Delete(ctx context.Context, request *v1.DataDeleteRequest)

v := request.Validate()
if v != nil {
return nil, v
return nil, status.Error(GetStatus(v), v.Error())
}

err := validation.ValidateFilters(request.GetTupleFilter(), request.GetAttributeFilter())
if err != nil {
return nil, v
return nil, status.Error(GetStatus(v), v.Error())
}

snap, err := r.dw.Delete(ctx, request.GetTenantId(), request.GetTupleFilter(), request.GetAttributeFilter())
Expand All @@ -286,12 +285,12 @@ func (r *DataServer) DeleteRelationships(ctx context.Context, request *v1.Relati

v := request.Validate()
if v != nil {
return nil, v
return nil, status.Error(GetStatus(v), v.Error())
}

err := validation.ValidateTupleFilter(request.GetFilter())
if err != nil {
return nil, v
return nil, status.Error(GetStatus(v), v.Error())
}

snap, err := r.dw.Delete(ctx, request.GetTenantId(), request.GetFilter(), &v1.AttributeFilter{})
Expand All @@ -314,7 +313,7 @@ func (r *DataServer) RunBundle(ctx context.Context, request *v1.BundleRunRequest

v := request.Validate()
if v != nil {
return nil, v
return nil, status.Error(GetStatus(v), v.Error())
}

bundle, err := r.br.Read(ctx, request.GetTenantId(), request.GetName())
Expand All @@ -327,7 +326,7 @@ func (r *DataServer) RunBundle(ctx context.Context, request *v1.BundleRunRequest

err = validation.ValidateBundleArguments(bundle.GetArguments(), request.GetArguments())
if err != nil {
return nil, err
return nil, status.Error(GetStatus(err), err.Error())
}

snap, err := r.dw.RunBundle(ctx, request.GetTenantId(), request.GetArguments(), bundle)
Expand Down
10 changes: 5 additions & 5 deletions internal/servers/permissionServer.go
Expand Up @@ -32,7 +32,7 @@ func (r *PermissionServer) Check(ctx context.Context, request *v1.PermissionChec

v := request.Validate()
if v != nil {
return nil, v
return nil, status.Error(GetStatus(v), v.Error())
}

response, err := r.invoker.Check(ctx, request)
Expand All @@ -53,7 +53,7 @@ func (r *PermissionServer) Expand(ctx context.Context, request *v1.PermissionExp

v := request.Validate()
if v != nil {
return nil, v
return nil, status.Error(GetStatus(v), v.Error())
}

response, err := r.invoker.Expand(ctx, request)
Expand All @@ -74,7 +74,7 @@ func (r *PermissionServer) LookupEntity(ctx context.Context, request *v1.Permiss

v := request.Validate()
if v != nil {
return nil, v
return nil, status.Error(GetStatus(v), v.Error())
}

response, err := r.invoker.LookupEntity(ctx, request)
Expand Down Expand Up @@ -116,7 +116,7 @@ func (r *PermissionServer) LookupSubject(ctx context.Context, request *v1.Permis

v := request.Validate()
if v != nil {
return nil, v
return nil, status.Error(GetStatus(v), v.Error())
}

response, err := r.invoker.LookupSubject(ctx, request)
Expand All @@ -137,7 +137,7 @@ func (r *PermissionServer) SubjectPermission(ctx context.Context, request *v1.Pe

v := request.Validate()
if v != nil {
return nil, v
return nil, status.Error(GetStatus(v), v.Error())
}

response, err := r.invoker.SubjectPermission(ctx, request)
Expand Down
6 changes: 3 additions & 3 deletions internal/servers/schemaServer.go
Expand Up @@ -40,14 +40,14 @@ func (r *SchemaServer) Write(ctx context.Context, request *v1.SchemaWriteRequest
if err != nil {
span.RecordError(err)
span.SetStatus(otelCodes.Error, err.Error())
return nil, err
return nil, status.Error(GetStatus(err), err.Error())
}

_, _, err = compiler.NewCompiler(true, sch).Compile()
if err != nil {
span.RecordError(err)
span.SetStatus(otelCodes.Error, err.Error())
return nil, err
return nil, status.Error(GetStatus(err), err.Error())
}

version := xid.New().String()
Expand Down Expand Up @@ -84,7 +84,7 @@ func (r *SchemaServer) Read(ctx context.Context, request *v1.SchemaReadRequest)
if version == "" {
ver, err := r.sr.HeadVersion(ctx, request.GetTenantId())
if err != nil {
return nil, err
return nil, status.Error(GetStatus(err), err.Error())
}
version = ver
}
Expand Down

0 comments on commit 76a5c54

Please sign in to comment.