Skip to content

Commit 7368418

Browse files
committed
migrate to goserve v2.0.3
1 parent f5be5c3 commit 7368418

39 files changed

Lines changed: 281 additions & 524 deletions

api/auth/controller.go

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import (
99
)
1010

1111
type controller struct {
12-
network.BaseController
12+
network.Controller
1313
common.ContextPayload
1414
service Service
1515
}
@@ -20,7 +20,7 @@ func NewController(
2020
service Service,
2121
) network.Controller {
2222
return &controller{
23-
BaseController: network.NewBaseController("/auth", authProvider, authorizeProvider),
23+
Controller: network.NewController("/auth", authProvider, authorizeProvider),
2424
ContextPayload: common.NewContextPayload(),
2525
service: service,
2626
}
@@ -34,53 +34,53 @@ func (c *controller) MountRoutes(group *gin.RouterGroup) {
3434
}
3535

3636
func (c *controller) signUpBasicHandler(ctx *gin.Context) {
37-
body, err := network.ReqBody(ctx, dto.EmptySignUpBasic())
37+
body, err := network.ReqBody[dto.SignUpBasic](ctx)
3838
if err != nil {
39-
c.Send(ctx).BadRequestError(err.Error(), err)
39+
network.SendBadRequestError(ctx, err.Error(), err)
4040
return
4141
}
4242

4343
data, err := c.service.SignUpBasic(body)
4444
if err != nil {
45-
c.Send(ctx).MixedError(err)
45+
network.SendMixedError(ctx, err)
4646
return
4747
}
4848

49-
c.Send(ctx).SuccessDataResponse("success", data)
49+
network.SendSuccessDataResponse(ctx, "success", data)
5050
}
5151

5252
func (c *controller) signInBasicHandler(ctx *gin.Context) {
53-
body, err := network.ReqBody(ctx, dto.EmptySignInBasic())
53+
body, err := network.ReqBody[dto.SignInBasic](ctx)
5454
if err != nil {
55-
c.Send(ctx).BadRequestError(err.Error(), err)
55+
network.SendBadRequestError(ctx, err.Error(), err)
5656
return
5757
}
5858

5959
dto, err := c.service.SignInBasic(body)
6060
if err != nil {
61-
c.Send(ctx).MixedError(err)
61+
network.SendMixedError(ctx, err)
6262
return
6363
}
6464

65-
c.Send(ctx).SuccessDataResponse("success", dto)
65+
network.SendSuccessDataResponse(ctx, "success", dto)
6666
}
6767

6868
func (c *controller) signOutBasic(ctx *gin.Context) {
6969
keystore := c.MustGetKeystore(ctx)
7070

7171
err := c.service.SignOut(keystore)
7272
if err != nil {
73-
c.Send(ctx).InternalServerError("something went wrong", err)
73+
network.SendInternalServerError(ctx, "something went wrong", err)
7474
return
7575
}
7676

77-
c.Send(ctx).SuccessMsgResponse("signout success")
77+
network.SendSuccessMsgResponse(ctx, "signout success")
7878
}
7979

8080
func (c *controller) tokenRefreshHandler(ctx *gin.Context) {
81-
body, err := network.ReqBody(ctx, dto.EmptyTokenRefresh())
81+
body, err := network.ReqBody[dto.TokenRefresh](ctx)
8282
if err != nil {
83-
c.Send(ctx).BadRequestError(err.Error(), err)
83+
network.SendBadRequestError(ctx, err.Error(), err)
8484
return
8585
}
8686

@@ -89,9 +89,9 @@ func (c *controller) tokenRefreshHandler(ctx *gin.Context) {
8989

9090
dto, err := c.service.RenewToken(body, accessToken)
9191
if err != nil {
92-
c.Send(ctx).MixedError(err)
92+
network.SendMixedError(ctx, err)
9393
return
9494
}
9595

96-
c.Send(ctx).SuccessDataResponse("success", dto)
96+
network.SendSuccessDataResponse(ctx, "success", dto)
9797
}

api/auth/controller_test.go

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,11 @@ import (
55
"testing"
66

77
"github.com/afteracademy/goserve-example-api-server-postgres/api/auth/dto"
8+
userDto "github.com/afteracademy/goserve-example-api-server-postgres/api/user/dto"
9+
"github.com/afteracademy/goserve-example-api-server-postgres/api/user/model"
810
"github.com/afteracademy/goserve/v2/network"
911
"github.com/gin-gonic/gin"
12+
"github.com/google/uuid"
1013
"github.com/stretchr/testify/assert"
1114
)
1215

@@ -49,8 +52,27 @@ func TestAuthController_SignupSuccess(t *testing.T) {
4952
Name: "test name",
5053
}
5154

55+
authDto := &dto.UserAuth{
56+
User: &userDto.UserPrivate{
57+
Name: "test name",
58+
Email: "test@abc.com",
59+
ID: uuid.New(),
60+
Roles: []*userDto.RoleInfo{
61+
{
62+
ID: uuid.New(),
63+
Code: model.RoleCodeLearner,
64+
},
65+
},
66+
ProfilePicURL: nil,
67+
},
68+
Tokens: &dto.Tokens{
69+
AccessToken: "access-token",
70+
RefreshToken: "refresh-token",
71+
},
72+
}
73+
5274
authService := new(MockService)
53-
authService.On("SignUpBasic", singUpDto).Return(&dto.UserAuth{}, nil)
75+
authService.On("SignUpBasic", singUpDto).Return(authDto, nil)
5476

5577
c := NewController(mockAuthProvider, mockAuthzProvider, authService)
5678

api/auth/dto/auth_user.go

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@ package dto
33
import (
44
"github.com/afteracademy/goserve-example-api-server-postgres/api/user/dto"
55
"github.com/afteracademy/goserve-example-api-server-postgres/api/user/model"
6-
"github.com/afteracademy/goserve/v2/utility"
7-
"github.com/go-playground/validator/v10"
86
)
97

108
type UserAuth struct {
@@ -18,11 +16,3 @@ func NewUserAuth(user *model.User, tokens *Tokens) *UserAuth {
1816
Tokens: tokens,
1917
}
2018
}
21-
22-
func (d *UserAuth) GetValue() *UserAuth {
23-
return d
24-
}
25-
26-
func (d *UserAuth) ValidateErrors(errs validator.ValidationErrors) ([]string, error) {
27-
return utility.FormatValidationErrors(errs), nil
28-
}

api/auth/dto/signin_basic.go

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,6 @@
11
package dto
22

3-
import (
4-
"github.com/afteracademy/goserve/v2/utility"
5-
"github.com/go-playground/validator/v10"
6-
)
7-
83
type SignInBasic struct {
94
Email string `json:"email" binding:"required" validate:"required,email"`
105
Password string `json:"password" binding:"required" validate:"required,min=6,max=100"`
116
}
12-
13-
func EmptySignInBasic() *SignInBasic {
14-
return &SignInBasic{}
15-
}
16-
17-
func (d *SignInBasic) GetValue() *SignInBasic {
18-
return d
19-
}
20-
21-
func (d *SignInBasic) ValidateErrors(errs validator.ValidationErrors) ([]string, error) {
22-
return utility.FormatValidationErrors(errs), nil
23-
}

api/auth/dto/signup_basic.go

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,8 @@
11
package dto
22

3-
import (
4-
"github.com/afteracademy/goserve/v2/utility"
5-
"github.com/go-playground/validator/v10"
6-
)
7-
83
type SignUpBasic struct {
94
Email string `json:"email" binding:"required" validate:"required,email"`
105
Password string `json:"password" binding:"required" validate:"required,min=6,max=100"`
116
Name string `json:"name" binding:"required" validate:"required,min=2,max=200"`
127
ProfilePicUrl *string `json:"profilePicUrl,omitempty" validate:"omitempty,url"`
138
}
14-
15-
func EmptySignUpBasic() *SignUpBasic {
16-
return &SignUpBasic{}
17-
}
18-
19-
func (d *SignUpBasic) GetValue() *SignUpBasic {
20-
return d
21-
}
22-
23-
func (d *SignUpBasic) ValidateErrors(errs validator.ValidationErrors) ([]string, error) {
24-
return utility.FormatValidationErrors(errs), nil
25-
}

api/auth/dto/token_refresh.go

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,5 @@
11
package dto
22

3-
import (
4-
"github.com/afteracademy/goserve/v2/utility"
5-
"github.com/go-playground/validator/v10"
6-
)
7-
83
type TokenRefresh struct {
94
RefreshToken string `json:"refreshToken" binding:"required" validate:"required"`
105
}
11-
12-
func EmptyTokenRefresh() *TokenRefresh {
13-
return &TokenRefresh{}
14-
}
15-
16-
func (d *TokenRefresh) GetValue() *TokenRefresh {
17-
return d
18-
}
19-
20-
func (d *TokenRefresh) ValidateErrors(errs validator.ValidationErrors) ([]string, error) {
21-
return utility.FormatValidationErrors(errs), nil
22-
}

api/auth/dto/tokens.go

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
11
package dto
22

3-
import (
4-
"github.com/afteracademy/goserve/v2/utility"
5-
"github.com/go-playground/validator/v10"
6-
)
7-
83
type Tokens struct {
94
AccessToken string `json:"accessToken" binding:"required" validate:"required"`
105
RefreshToken string `json:"refreshToken" binding:"required" validate:"required"`
@@ -16,11 +11,3 @@ func NewTokens(access string, refresh string) *Tokens {
1611
RefreshToken: refresh,
1712
}
1813
}
19-
20-
func (d *Tokens) GetValue() *Tokens {
21-
return d
22-
}
23-
24-
func (d *Tokens) ValidateErrors(errs validator.ValidationErrors) ([]string, error) {
25-
return utility.FormatValidationErrors(errs), nil
26-
}

api/auth/middleware/authentication.go

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,13 @@ import (
1111
)
1212

1313
type authenticationProvider struct {
14-
network.ResponseSender
1514
common.ContextPayload
1615
authService auth.Service
1716
userService user.Service
1817
}
1918

2019
func NewAuthenticationProvider(authService auth.Service, userService user.Service) network.AuthenticationProvider {
2120
return &authenticationProvider{
22-
ResponseSender: network.NewResponseSender(),
2321
ContextPayload: common.NewContextPayload(),
2422
authService: authService,
2523
userService: userService,
@@ -30,43 +28,43 @@ func (m *authenticationProvider) Middleware() gin.HandlerFunc {
3028
return func(ctx *gin.Context) {
3129
authHeader := ctx.GetHeader(network.AuthorizationHeader)
3230
if len(authHeader) == 0 {
33-
m.Send(ctx).UnauthorizedError("permission denied: missing Authorization", nil)
31+
network.SendUnauthorizedError(ctx, "permission denied: missing Authorization", nil)
3432
return
3533
}
3634

3735
token := utils.ExtractBearerToken(authHeader)
3836
if token == "" {
39-
m.Send(ctx).UnauthorizedError("permission denied: invalid Authorization", nil)
37+
network.SendUnauthorizedError(ctx, "permission denied: invalid Authorization", nil)
4038
return
4139
}
4240

4341
claims, err := m.authService.VerifyToken(token)
4442
if err != nil {
45-
m.Send(ctx).UnauthorizedError(err.Error(), err)
43+
network.SendUnauthorizedError(ctx, err.Error(), err)
4644
return
4745
}
4846

4947
valid := m.authService.ValidateClaims(claims)
5048
if !valid {
51-
m.Send(ctx).UnauthorizedError("permission denied: invalid claims", nil)
49+
network.SendUnauthorizedError(ctx, "permission denied: invalid claims", nil)
5250
return
5351
}
5452

5553
userId, err := uuid.Parse(claims.Subject)
5654
if err != nil {
57-
m.Send(ctx).UnauthorizedError("permission denied: invalid claims subject", nil)
55+
network.SendUnauthorizedError(ctx, "permission denied: invalid claims subject", nil)
5856
return
5957
}
6058

6159
user, err := m.userService.FetchUserById(userId)
6260
if err != nil {
63-
m.Send(ctx).UnauthorizedError("permission denied: claims subject does not exists", err)
61+
network.SendUnauthorizedError(ctx, "permission denied: claims subject does not exists", err)
6462
return
6563
}
6664

6765
keystore, err := m.authService.FetchKeystore(user, claims.ID)
6866
if err != nil || keystore == nil {
69-
m.Send(ctx).UnauthorizedError("permission denied: invalid access token", err)
67+
network.SendUnauthorizedError(ctx, "permission denied: invalid access token", err)
7068
return
7169
}
7270

api/auth/middleware/authentication_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ func TestAuthenticationProvider_Success(t *testing.T) {
192192
mockHandler := func(ctx *gin.Context) {
193193
assert.Equal(t, common.NewContextPayload().MustGetUser(ctx).ID, userId)
194194
assert.Equal(t, common.NewContextPayload().MustGetKeystore(ctx).ID, keystoreId)
195-
network.NewResponseSender().Send(ctx).SuccessMsgResponse("success")
195+
network.SendSuccessMsgResponse(ctx, "success")
196196
}
197197

198198
rr := network.MockTestAuthenticationProvider(

api/auth/middleware/authorization.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,19 @@ import (
88
)
99

1010
type authorizationProvider struct {
11-
network.ResponseSender
1211
common.ContextPayload
1312
}
1413

1514
func NewAuthorizationProvider() network.AuthorizationProvider {
1615
return &authorizationProvider{
17-
ResponseSender: network.NewResponseSender(),
1816
ContextPayload: common.NewContextPayload(),
1917
}
2018
}
2119

2220
func (m *authorizationProvider) Middleware(roleNames ...string) gin.HandlerFunc {
2321
return func(ctx *gin.Context) {
2422
if len(roleNames) == 0 {
25-
m.Send(ctx).ForbiddenError("permission denied: role missing", nil)
23+
network.SendForbiddenError(ctx, "permission denied: role missing", nil)
2624
return
2725
}
2826

@@ -42,7 +40,7 @@ func (m *authorizationProvider) Middleware(roleNames ...string) gin.HandlerFunc
4240
}
4341

4442
if !hasRole {
45-
m.Send(ctx).ForbiddenError("permission denied: does not have suffient role", nil)
43+
network.SendForbiddenError(ctx, "permission denied: does not have suffient role", nil)
4644
return
4745
}
4846

0 commit comments

Comments
 (0)