@@ -32,6 +32,7 @@ import (
3232type UserAttributesRestHandler interface {
3333 AddUserAttributes (w http.ResponseWriter , r * http.Request )
3434 UpdateUserAttributes (w http.ResponseWriter , r * http.Request )
35+ PatchUserAttributes (w http.ResponseWriter , r * http.Request )
3536 GetUserAttribute (w http.ResponseWriter , r * http.Request )
3637}
3738
@@ -54,35 +55,13 @@ func NewUserAttributesRestHandlerImpl(logger *zap.SugaredLogger, enforcer casbin
5455}
5556
5657func (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 {
6860 return
6961 }
7062
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-
8463 handler .logger .Infow ("request payload, AddUserAttributes" , "payload" , dto )
85- resp , err := handler .userAttributesService .AddUserAttributes (& dto )
64+ resp , err := handler .userAttributesService .AddUserAttributes (dto )
8665 if err != nil {
8766 handler .logger .Errorw ("service err, AddUserAttributes" , "err" , err , "payload" , dto )
8867 common .WriteJsonResp (w , err , nil , http .StatusInternalServerError )
@@ -98,43 +77,64 @@ func (handler *UserAttributesRestHandlerImpl) AddUserAttributes(w http.ResponseW
9877// @Success 200 {object} attributes.UserAttributesDto
9978// @Router /orchestrator/attributes/user/update [POST]
10079func (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 ) {
101112 userId , err := handler .userService .GetLoggedInUser (r )
102113 if userId == 0 || err != nil {
103114 common .WriteJsonResp (w , err , "Unauthorized User" , http .StatusUnauthorized )
104- return
115+ return nil , false
105116 }
106117
107118 decoder := json .NewDecoder (r .Body )
108119 var dto attributes.UserAttributesDto
109120 err = decoder .Decode (& dto )
110121 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 )
112123 common .WriteJsonResp (w , err , nil , http .StatusBadRequest )
113- return
124+ return nil , false
114125 }
115126
116127 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- //}
121128
122129 emailId , err := handler .userService .GetActiveEmailById (userId )
123130 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 )
125132 common .WriteJsonResp (w , errors .New ("unauthorized" ), nil , http .StatusForbidden )
126- return
133+ return nil , false
127134 }
128135 dto .EmailId = emailId
129136
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
138138}
139139
140140// @Summary get user attributes
@@ -158,11 +158,6 @@ func (handler *UserAttributesRestHandlerImpl) GetUserAttribute(w http.ResponseWr
158158 return
159159 }
160160
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-
166161 dto := attributes.UserAttributesDto {}
167162
168163 emailId , err := handler .userService .GetActiveEmailById (userId )
0 commit comments