Skip to content

Commit 0221f1d

Browse files
Merge pull request #7 from DoWithLogic/enhancement/utils
utils enhancement
2 parents 34dad86 + c940788 commit 0221f1d

File tree

9 files changed

+83
-79
lines changed

9 files changed

+83
-79
lines changed

internal/app/service.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,17 @@ import (
88
)
99

1010
func (app *App) StartService() error {
11-
version := app.Echo.Group("/api/v1/")
12-
1311
// define repository
1412
repository := repository.NewRepository(app.DB, app.Log)
1513

1614
// define usecase
17-
usecase := usecase.NewUseCase(repository, app.Log, app.DB)
15+
usecase := usecase.NewUseCase(repository, app.DB, app.Log)
1816

1917
// define controllers
2018
controller := handler.NewHandlers(usecase, app.Log)
2119

20+
version := app.Echo.Group("/api/v1/")
21+
2222
route.RouteUsers(version, controller)
2323

2424
return nil

internal/users/delivery/http/handler/handler.go

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ func (h *handlers) CreateUser(c echo.Context) error {
5353
return c.JSON(http.StatusBadRequest, dtos.NewResponseError(
5454
http.StatusBadRequest,
5555
dtos.MsgFailed,
56-
dtos.Text(http.StatusBadRequest),
5756
err.Error()),
5857
)
5958
}
@@ -64,7 +63,6 @@ func (h *handlers) CreateUser(c echo.Context) error {
6463
return c.JSON(http.StatusBadRequest, dtos.NewResponseError(
6564
http.StatusBadRequest,
6665
dtos.MsgFailed,
67-
dtos.Text(http.StatusBadRequest),
6866
err.Error()),
6967
)
7068
}
@@ -79,7 +77,6 @@ func (h *handlers) CreateUser(c echo.Context) error {
7977
return c.JSON(http.StatusInternalServerError, dtos.NewResponseError(
8078
http.StatusInternalServerError,
8179
dtos.MsgFailed,
82-
dtos.Text(http.StatusInternalServerError),
8380
err.Error()),
8481
)
8582
}
@@ -103,7 +100,6 @@ func (h *handlers) UpdateUser(c echo.Context) error {
103100
return c.JSON(http.StatusBadRequest, dtos.NewResponseError(
104101
http.StatusBadRequest,
105102
dtos.MsgFailed,
106-
dtos.Text(http.StatusBadRequest),
107103
err.Error()),
108104
)
109105
}
@@ -114,7 +110,6 @@ func (h *handlers) UpdateUser(c echo.Context) error {
114110
return c.JSON(http.StatusBadRequest, dtos.NewResponseError(
115111
http.StatusBadRequest,
116112
dtos.MsgFailed,
117-
dtos.Text(http.StatusBadRequest),
118113
err.Error()),
119114
)
120115
}
@@ -125,15 +120,14 @@ func (h *handlers) UpdateUser(c echo.Context) error {
125120
return c.JSON(http.StatusBadRequest, dtos.NewResponseError(
126121
http.StatusBadRequest,
127122
dtos.MsgFailed,
128-
dtos.Text(http.StatusBadRequest),
129123
err.Error()),
130124
)
131125
}
132126

133127
argsUpdateUser := entities.UpdateUsers{
134128
UserID: userID,
135129
Fullname: payload.Fullname,
136-
PhoneNumber: payload.Fullname,
130+
PhoneNumber: payload.PhoneNumber,
137131
UserType: payload.UserType,
138132
}
139133

@@ -142,7 +136,6 @@ func (h *handlers) UpdateUser(c echo.Context) error {
142136
return c.JSON(http.StatusBadRequest, dtos.NewResponseError(
143137
http.StatusInternalServerError,
144138
dtos.MsgFailed,
145-
dtos.Text(http.StatusInternalServerError),
146139
err.Error()),
147140
)
148141
}
@@ -164,7 +157,6 @@ func (h *handlers) UpdateUserStatus(c echo.Context) error {
164157
return c.JSON(http.StatusBadRequest, dtos.NewResponseError(
165158
http.StatusBadRequest,
166159
dtos.MsgFailed,
167-
dtos.Text(http.StatusBadRequest),
168160
err.Error()),
169161
)
170162
}
@@ -178,7 +170,6 @@ func (h *handlers) UpdateUserStatus(c echo.Context) error {
178170
return c.JSON(http.StatusBadRequest, dtos.NewResponseError(
179171
http.StatusBadRequest,
180172
dtos.MsgFailed,
181-
dtos.Text(http.StatusBadRequest),
182173
ErrInvalidIsActive.Error()),
183174
)
184175
}
@@ -193,7 +184,6 @@ func (h *handlers) UpdateUserStatus(c echo.Context) error {
193184
return c.JSON(http.StatusBadRequest, dtos.NewResponseError(
194185
http.StatusInternalServerError,
195186
dtos.MsgFailed,
196-
dtos.Text(http.StatusInternalServerError),
197187
err.Error()),
198188
)
199189
}

internal/users/dtos/response.go

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package dtos
22

33
import (
4-
"errors"
54
"net/http"
65
)
76

@@ -31,17 +30,6 @@ var (
3130
MsgFailed = map[string]string{"en": "Failed", "id": "Gagal"}
3231
)
3332

34-
func UnwrapFirstError(err error) string { return UnwrapAll(err).Error() }
35-
36-
// UnwrapAll will unwrap the underlying error until we get the first wrapped error.
37-
func UnwrapAll(err error) error {
38-
for err != nil && errors.Unwrap(err) != nil {
39-
err = errors.Unwrap(err)
40-
}
41-
42-
return err
43-
}
44-
4533
func NewResponse(statusCode int, message Message, data interface{}) Response {
4634
return Response{
4735
Status: statusCode,
@@ -50,13 +38,13 @@ func NewResponse(statusCode int, message Message, data interface{}) Response {
5038
}
5139
}
5240

53-
func NewResponseError(statusCode int, messageStatus Message, message, details string) Response {
41+
func NewResponseError(statusCode int, messageStatus Message, details string) Response {
5442
return Response{
5543
Status: statusCode,
5644
Message: messageStatus,
5745
Errors: []CaptureError{
5846
{
59-
Message: message,
47+
Message: Text(statusCode),
6048
Details: details,
6149
},
6250
},

internal/users/entities/update_users.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ func NewUpdateUsers(data UpdateUsers) UpdateUsers {
1616
UserID: data.UserID,
1717
Fullname: data.Fullname,
1818
PhoneNumber: data.PhoneNumber,
19-
UserType: UserTypeRegular,
19+
UserType: data.UserType,
2020
UpdatedAt: time.Now(),
2121
UpdatedBy: "martin",
2222
}

internal/users/repository/repository.go

Lines changed: 7 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,12 @@ package repository
22

33
import (
44
"context"
5-
"errors"
65

76
"github.com/DoWithLogic/golang-clean-architecture/internal/users/entities"
87
"github.com/DoWithLogic/golang-clean-architecture/internal/users/repository/repository_query"
9-
"github.com/DoWithLogic/golang-clean-architecture/pkg/custom"
108
"github.com/DoWithLogic/golang-clean-architecture/pkg/database"
119
"github.com/DoWithLogic/golang-clean-architecture/pkg/otel/zerolog"
10+
"github.com/DoWithLogic/golang-clean-architecture/pkg/utils"
1211
)
1312

1413
type (
@@ -25,16 +24,12 @@ type (
2524
}
2625
)
2726

28-
var (
29-
ErrUserNotFound = errors.New("user not found")
30-
)
31-
3227
func NewRepository(conn database.SQLTxConn, log *zerolog.Logger) Repository {
3328
return &repository{conn, log}
3429
}
3530

3631
func (repo *repository) SaveNewUser(ctx context.Context, user entities.CreateUser) (int64, error) {
37-
args := custom.Array{
32+
args := utils.Array{
3833
user.FUllName,
3934
user.PhoneNumber,
4035
user.IsActive,
@@ -55,7 +50,7 @@ func (repo *repository) SaveNewUser(ctx context.Context, user entities.CreateUse
5550
}
5651

5752
func (repo *repository) UpdateUserByID(ctx context.Context, user entities.UpdateUsers) error {
58-
args := custom.Array{
53+
args := utils.Array{
5954
user.Fullname, user.Fullname,
6055
user.PhoneNumber, user.PhoneNumber,
6156
user.UserType, user.UserType,
@@ -79,12 +74,12 @@ func (repo *repository) GetUserByID(ctx context.Context, userID int64, lockOpt e
7974
return userData, err
8075
}
8176

82-
args := custom.Array{
77+
args := utils.Array{
8378
userID,
8479
}
8580

86-
row := func(idx int) custom.Array {
87-
return custom.Array{
81+
row := func(idx int) utils.Array {
82+
return utils.Array{
8883
&userData.UserID,
8984
&userData.Fullname,
9085
&userData.PhoneNumber,
@@ -107,15 +102,11 @@ func (repo *repository) GetUserByID(ctx context.Context, userID int64, lockOpt e
107102
return userData, err
108103
}
109104

110-
if userData.UserID != userID {
111-
return userData, ErrUserNotFound
112-
}
113-
114105
return userData, err
115106
}
116107

117108
func (repo *repository) UpdateUserStatusByID(ctx context.Context, req entities.UpdateUserStatus) error {
118-
args := custom.Array{
109+
args := utils.Array{
119110
req.IsActive,
120111
req.UpdatedAt,
121112
req.UpdatedBy,
@@ -130,9 +121,5 @@ func (repo *repository) UpdateUserStatusByID(ctx context.Context, req entities.U
130121
return err
131122
}
132123

133-
if updatedID != req.UserID {
134-
return errors.New("user not found")
135-
}
136-
137124
return nil
138125
}

internal/users/usecase/usecase.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ type (
1919

2020
usecase struct {
2121
repo repository.Repository
22-
log *zerolog.Logger
2322
dbTx *sqlx.DB
23+
log *zerolog.Logger
2424
}
2525
)
2626

27-
func NewUseCase(repo repository.Repository, log *zerolog.Logger, txConn *sqlx.DB) Usecase {
28-
return &usecase{repo, log, txConn}
27+
func NewUseCase(repo repository.Repository, txConn *sqlx.DB, log *zerolog.Logger) Usecase {
28+
return &usecase{repo, txConn, log}
2929
}
3030

3131
func (uc *usecase) CreateUser(ctx context.Context, payload entities.CreateUser) (int64, error) {
@@ -48,7 +48,7 @@ func (uc *usecase) UpdateUser(ctx context.Context, updateData entities.UpdateUse
4848

4949
defer func() {
5050
if err := new(database.SQL).EndTx(txConn, err); err != nil {
51-
uc.log.Z().Err(err).Msg("[usecase]UpdateUser.EndTx")
51+
return
5252
}
5353
}()
5454

0 commit comments

Comments
 (0)