Skip to content

Commit a5d12fc

Browse files
committed
Added internal to API errors mapping
1 parent aaa075a commit a5d12fc

File tree

4 files changed

+20
-11
lines changed

4 files changed

+20
-11
lines changed

go.mod

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,10 @@ require (
99
github.com/grpc-ecosystem/grpc-gateway v1.14.3
1010
github.com/kelseyhightower/envconfig v1.4.0
1111
github.com/konsorten/go-windows-terminal-sequences v1.0.2 // indirect
12+
github.com/kr/pretty v0.2.0 // indirect
1213
github.com/mwitkow/go-proto-validators v0.3.0
1314
github.com/pkg/errors v0.9.1
14-
github.com/rtemb/srv-users/pkg/client v0.0.0-20200613115708-a67dd111238c
15+
github.com/rtemb/srv-users/pkg/client v0.0.0-20200613202457-e19a35870a72
1516
github.com/sirupsen/logrus v1.5.0
1617
github.com/stretchr/testify v1.4.0
1718
golang.org/x/sys v0.0.0-20190922100055-0a153f010e69 // indirect

go.sum

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,12 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o
4646
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
4747
github.com/konsorten/go-windows-terminal-sequences v1.0.2 h1:DB17ag19krx9CFsz4o3enTrPXyIXCl+2iCXH/aMAp9s=
4848
github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
49-
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
5049
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
50+
github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs=
51+
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
5152
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
5253
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
5354
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
54-
github.com/maxbrunsfeld/counterfeiter/v6 v6.2.3 h1:z1lXirM9f9WTcdmzSZahKh/t+LCqPiiwK2/DB1kLlI4=
5555
github.com/maxbrunsfeld/counterfeiter/v6 v6.2.3/go.mod h1:1ftk08SazyElaaNvmqAfZWGwJzshjCfBXDLoQtPAMNk=
5656
github.com/mwitkow/go-proto-validators v0.3.0 h1:2WkInbIheqmDevK9h0S/K6f0Os/HlTPGJeRwDAeQE1w=
5757
github.com/mwitkow/go-proto-validators v0.3.0/go.mod h1:ej0Qp0qMgHN/KtDyUt+Q1/tA7a5VarXUOUxD+oeD30w=
@@ -64,11 +64,8 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
6464
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
6565
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
6666
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
67-
github.com/rtemb/srv-users v1.0.0 h1:orzXZB2TJsgf4ebfZi87Nf8pA7/QEj3eHJ2onjx7AFU=
68-
github.com/rtemb/srv-users/pkg/client v0.0.0-20200604205420-e19aebd36f89 h1:aomAGLwHj55FOuwP1bA2Nr4PxAouE6bGCdmP7nqAKdo=
69-
github.com/rtemb/srv-users/pkg/client v0.0.0-20200604205420-e19aebd36f89/go.mod h1:/EnDWUi408V/i9kF9dBsCUqvpVQ+72m/IkuRYQ5wR3Q=
70-
github.com/rtemb/srv-users/pkg/client v0.0.0-20200613115708-a67dd111238c h1:dZhaiRih7airGrQpomwyEBDfl492b4IO9EYXUGF7FZc=
71-
github.com/rtemb/srv-users/pkg/client v0.0.0-20200613115708-a67dd111238c/go.mod h1:/EnDWUi408V/i9kF9dBsCUqvpVQ+72m/IkuRYQ5wR3Q=
67+
github.com/rtemb/srv-users/pkg/client v0.0.0-20200613202457-e19a35870a72 h1:4+csEG6v2h22lFrF1zbjqdZ0J+eRdrmbXjKiQakDOTw=
68+
github.com/rtemb/srv-users/pkg/client v0.0.0-20200613202457-e19a35870a72/go.mod h1:/EnDWUi408V/i9kF9dBsCUqvpVQ+72m/IkuRYQ5wR3Q=
7269
github.com/sclevine/spec v1.2.0/go.mod h1:W4J29eT/Kzv7/b9IWLB055Z+qvVC9vt0Arko24q7p+U=
7370
github.com/sclevine/spec v1.4.0/go.mod h1:LvpgJaFyvQzRvc1kaDs0bulYwzC70PbiYjC4QnFHkOM=
7471
github.com/sirupsen/logrus v1.5.0 h1:1N5EYkVAPEywqZRJd7cwnRtCb6xJx7NH3T3WUTF980Q=
@@ -84,7 +81,6 @@ golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL
8481
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
8582
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
8683
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
87-
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee h1:WG0RUwxtNT4qqaXX3DPA8zHFNm/D9xaBpxzHt1WcA/E=
8884
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
8985
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
9086
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -118,7 +114,6 @@ golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGm
118114
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
119115
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
120116
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
121-
golang.org/x/tools v0.0.0-20200301222351-066e0c02454c h1:FD7jysxM+EJqg5UYYy3XYDsAiUickFsn4UiaanJkf8c=
122117
golang.org/x/tools v0.0.0-20200301222351-066e0c02454c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
123118
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
124119
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=

internal/api/add_role.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ func (s *Handler) AddRole(ctx context.Context, req *apiUsers.AddRoleRequest) (*e
1818

1919
err := s.service.AddRole(ctx, req)
2020
if err != nil {
21-
return nil, status.Error(codes.Internal, "unable to add the role")
21+
return nil, mapInternalToApiErrors(err)
2222
}
2323

2424
return &empty.Empty{}, nil

internal/api/handler.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,13 @@ package api
22

33
import (
44
"context"
5+
"errors"
56

67
apiUsers "github.com/rtemb/api-v1-users/internal/proto/api-v1-users"
8+
srvErr "github.com/rtemb/srv-users/pkg/client/errors"
79
"github.com/sirupsen/logrus"
10+
"google.golang.org/grpc/codes"
11+
"google.golang.org/grpc/status"
812
)
913

1014
//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 --fake-name HandlerServiceMock -o ../testing/mocks/handler_service.go . HandlerService
@@ -22,3 +26,12 @@ type Handler struct {
2226
func NewHandler(s HandlerService, l *logrus.Entry) *Handler {
2327
return &Handler{service: s, logger: l}
2428
}
29+
30+
func mapInternalToApiErrors(e error) error {
31+
if errors.Is(e, srvErr.UserNotFound) {
32+
return status.Error(codes.NotFound, e.Error())
33+
}
34+
35+
return status.Error(codes.Internal, e.Error())
36+
37+
}

0 commit comments

Comments
 (0)