@@ -32,6 +32,7 @@ import (
32
32
type UserAttributesRestHandler interface {
33
33
AddUserAttributes (w http.ResponseWriter , r * http.Request )
34
34
UpdateUserAttributes (w http.ResponseWriter , r * http.Request )
35
+ PatchUserAttributes (w http.ResponseWriter , r * http.Request )
35
36
GetUserAttribute (w http.ResponseWriter , r * http.Request )
36
37
}
37
38
@@ -54,35 +55,13 @@ func NewUserAttributesRestHandlerImpl(logger *zap.SugaredLogger, enforcer casbin
54
55
}
55
56
56
57
func (handler * UserAttributesRestHandlerImpl ) AddUserAttributes (w http.ResponseWriter , r * http.Request ) {
57
- userId , err := handler .userService .GetLoggedInUser (r )
58
- if userId == 0 || err != nil {
59
- common .WriteJsonResp (w , err , "Unauthorized User" , http .StatusUnauthorized )
60
- return
61
- }
62
- decoder := json .NewDecoder (r .Body )
63
- var dto attributes.UserAttributesDto
64
- err = decoder .Decode (& dto )
65
- if err != nil {
66
- handler .logger .Errorw ("request err, AddUserAttributes" , "err" , err , "payload" , dto )
67
- common .WriteJsonResp (w , err , nil , http .StatusBadRequest )
58
+ dto , success := handler .validateUserAttributesRequest (w , r , "PatchUserAttributes" )
59
+ if ! success {
68
60
return
69
61
}
70
62
71
- dto .UserId = userId
72
- //if ok := handler.enforcer.Enforce(token, casbin.ResourceGlobal, casbin.ActionCreate, "*"); !ok {
73
- // common.WriteJsonResp(w, errors.New("unauthorized"), nil, http.StatusForbidden)
74
- // return
75
- //}
76
- emailId , err := handler .userService .GetActiveEmailById (userId )
77
- if err != nil {
78
- handler .logger .Errorw ("request err, UpdateUserAttributes" , "err" , err , "payload" , dto )
79
- common .WriteJsonResp (w , errors .New ("unauthorized" ), nil , http .StatusForbidden )
80
- return
81
- }
82
- dto .EmailId = emailId
83
-
84
63
handler .logger .Infow ("request payload, AddUserAttributes" , "payload" , dto )
85
- resp , err := handler .userAttributesService .AddUserAttributes (& dto )
64
+ resp , err := handler .userAttributesService .AddUserAttributes (dto )
86
65
if err != nil {
87
66
handler .logger .Errorw ("service err, AddUserAttributes" , "err" , err , "payload" , dto )
88
67
common .WriteJsonResp (w , err , nil , http .StatusInternalServerError )
@@ -98,43 +77,64 @@ func (handler *UserAttributesRestHandlerImpl) AddUserAttributes(w http.ResponseW
98
77
// @Success 200 {object} attributes.UserAttributesDto
99
78
// @Router /orchestrator/attributes/user/update [POST]
100
79
func (handler * UserAttributesRestHandlerImpl ) UpdateUserAttributes (w http.ResponseWriter , r * http.Request ) {
80
+ dto , success := handler .validateUserAttributesRequest (w , r , "PatchUserAttributes" )
81
+ if ! success {
82
+ return
83
+ }
84
+
85
+ handler .logger .Infow ("request payload, UpdateUserAttributes" , "payload" , dto )
86
+ resp , err := handler .userAttributesService .UpdateUserAttributes (dto )
87
+ if err != nil {
88
+ handler .logger .Errorw ("service err, UpdateUserAttributes" , "err" , err , "payload" , dto )
89
+ common .WriteJsonResp (w , err , nil , http .StatusInternalServerError )
90
+ return
91
+ }
92
+ common .WriteJsonResp (w , nil , resp , http .StatusOK )
93
+ }
94
+
95
+ func (handler * UserAttributesRestHandlerImpl ) PatchUserAttributes (w http.ResponseWriter , r * http.Request ) {
96
+ dto , success := handler .validateUserAttributesRequest (w , r , "PatchUserAttributes" )
97
+ if ! success {
98
+ return
99
+ }
100
+
101
+ handler .logger .Infow ("request payload, PatchUserAttributes" , "payload" , dto )
102
+ resp , err := handler .userAttributesService .PatchUserAttributes (dto )
103
+ if err != nil {
104
+ handler .logger .Errorw ("service err, PatchUserAttributes" , "err" , err , "payload" , dto )
105
+ common .WriteJsonResp (w , err , nil , http .StatusInternalServerError )
106
+ return
107
+ }
108
+ common .WriteJsonResp (w , nil , resp , http .StatusOK )
109
+ }
110
+
111
+ func (handler * UserAttributesRestHandlerImpl ) validateUserAttributesRequest (w http.ResponseWriter , r * http.Request , operation string ) (* attributes.UserAttributesDto , bool ) {
101
112
userId , err := handler .userService .GetLoggedInUser (r )
102
113
if userId == 0 || err != nil {
103
114
common .WriteJsonResp (w , err , "Unauthorized User" , http .StatusUnauthorized )
104
- return
115
+ return nil , false
105
116
}
106
117
107
118
decoder := json .NewDecoder (r .Body )
108
119
var dto attributes.UserAttributesDto
109
120
err = decoder .Decode (& dto )
110
121
if err != nil {
111
- handler .logger .Errorw ("request err, UpdateUserAttributes" , "err" , err , "payload" , dto )
122
+ handler .logger .Errorw ("request err, " + operation , "err" , err , "payload" , dto )
112
123
common .WriteJsonResp (w , err , nil , http .StatusBadRequest )
113
- return
124
+ return nil , false
114
125
}
115
126
116
127
dto .UserId = userId
117
- //if ok := handler.enforcer.Enforce(token, casbin.ResourceGlobal, casbin.ActionUpdate, "*"); !ok {
118
- // common.WriteJsonResp(w, errors.New("unauthorized"), nil, http.StatusForbidden)
119
- // return
120
- //}
121
128
122
129
emailId , err := handler .userService .GetActiveEmailById (userId )
123
130
if err != nil {
124
- handler .logger .Errorw ("request err, UpdateUserAttributes" , "err" , err , "payload" , dto )
131
+ handler .logger .Errorw ("request err, " + operation , "err" , err , "payload" , dto )
125
132
common .WriteJsonResp (w , errors .New ("unauthorized" ), nil , http .StatusForbidden )
126
- return
133
+ return nil , false
127
134
}
128
135
dto .EmailId = emailId
129
136
130
- handler .logger .Infow ("request payload, UpdateUserAttributes" , "payload" , dto )
131
- resp , err := handler .userAttributesService .UpdateUserAttributes (& dto )
132
- if err != nil {
133
- handler .logger .Errorw ("service err, UpdateUserAttributes" , "err" , err , "payload" , dto )
134
- common .WriteJsonResp (w , err , nil , http .StatusInternalServerError )
135
- return
136
- }
137
- common .WriteJsonResp (w , nil , resp , http .StatusOK )
137
+ return & dto , true
138
138
}
139
139
140
140
// @Summary get user attributes
@@ -158,11 +158,6 @@ func (handler *UserAttributesRestHandlerImpl) GetUserAttribute(w http.ResponseWr
158
158
return
159
159
}
160
160
161
- //if ok := handler.enforcer.Enforce(token, casbin.ResourceGlobal, casbin.ActionGet, "*"); !ok {
162
- // common.WriteJsonResp(w, errors.New("unauthorized"), nil, http.StatusForbidden)
163
- // return
164
- //}
165
-
166
161
dto := attributes.UserAttributesDto {}
167
162
168
163
emailId , err := handler .userService .GetActiveEmailById (userId )
0 commit comments