@@ -21,6 +21,8 @@ import (
2121	"fmt" 
2222	"github.com/devtron-labs/devtron/pkg/build/git/gitMaterial/repository" 
2323	"github.com/devtron-labs/devtron/pkg/build/git/gitProvider" 
24+ 	"github.com/devtron-labs/devtron/pkg/bulkAction/bean" 
25+ 	"github.com/devtron-labs/devtron/pkg/bulkAction/service" 
2426	"github.com/devtron-labs/devtron/pkg/cluster/environment" 
2527	"net/http" 
2628	"strconv" 
@@ -34,7 +36,6 @@ import (
3436	"github.com/devtron-labs/devtron/pkg/appWorkflow" 
3537	"github.com/devtron-labs/devtron/pkg/auth/authorisation/casbin" 
3638	"github.com/devtron-labs/devtron/pkg/auth/user" 
37- 	"github.com/devtron-labs/devtron/pkg/bulkAction" 
3839	"github.com/devtron-labs/devtron/pkg/chart" 
3940	"github.com/devtron-labs/devtron/pkg/pipeline" 
4041	"github.com/devtron-labs/devtron/pkg/team" 
@@ -61,7 +62,7 @@ type BulkUpdateRestHandlerImpl struct {
6162	ciPipelineRepository     pipelineConfig.CiPipelineRepository 
6263	ciHandler                pipeline.CiHandler 
6364	logger                   * zap.SugaredLogger 
64- 	bulkUpdateService        bulkAction .BulkUpdateService 
65+ 	bulkUpdateService        service .BulkUpdateService 
6566	chartService             chart.ChartService 
6667	propertiesConfigService  pipeline.PropertiesConfigService 
6768	userAuthService          user.UserService 
@@ -81,7 +82,7 @@ type BulkUpdateRestHandlerImpl struct {
8182}
8283
8384func  NewBulkUpdateRestHandlerImpl (pipelineBuilder  pipeline.PipelineBuilder , logger  * zap.SugaredLogger ,
84- 	bulkUpdateService  bulkAction .BulkUpdateService ,
85+ 	bulkUpdateService  service .BulkUpdateService ,
8586	chartService  chart.ChartService ,
8687	propertiesConfigService  pipeline.PropertiesConfigService ,
8788	userAuthService  user.UserService ,
@@ -135,7 +136,7 @@ func (handler BulkUpdateRestHandlerImpl) FindBulkUpdateReadme(w http.ResponseWri
135136		return 
136137	}
137138	//auth free, only login required 
138- 	var  responseArr  []* bulkAction .BulkUpdateSeeExampleResponse 
139+ 	var  responseArr  []* bean .BulkUpdateSeeExampleResponse 
139140	responseArr  =  append (responseArr , response )
140141	common .WriteJsonResp (w , nil , responseArr , http .StatusOK )
141142}
@@ -157,7 +158,7 @@ func (handler BulkUpdateRestHandlerImpl) CheckAuthForImpactedObjects(AppId int,
157158}
158159func  (handler  BulkUpdateRestHandlerImpl ) GetImpactedAppsName (w  http.ResponseWriter , r  * http.Request ) {
159160	decoder  :=  json .NewDecoder (r .Body )
160- 	var  script  bulkAction .BulkUpdateScript 
161+ 	var  script  bean .BulkUpdateScript 
161162	err  :=  decoder .Decode (& script )
162163	if  err  !=  nil  {
163164		common .WriteJsonResp (w , err , nil , http .StatusBadRequest )
@@ -212,7 +213,7 @@ func (handler BulkUpdateRestHandlerImpl) CheckAuthForBulkUpdate(AppId int, EnvId
212213}
213214func  (handler  BulkUpdateRestHandlerImpl ) BulkUpdate (w  http.ResponseWriter , r  * http.Request ) {
214215	decoder  :=  json .NewDecoder (r .Body )
215- 	var  script  bulkAction .BulkUpdateScript 
216+ 	var  script  bean .BulkUpdateScript 
216217	err  :=  decoder .Decode (& script )
217218	if  err  !=  nil  {
218219		common .WriteJsonResp (w , err , nil , http .StatusBadRequest )
@@ -255,65 +256,55 @@ func (handler BulkUpdateRestHandlerImpl) BulkUpdate(w http.ResponseWriter, r *ht
255256}
256257
257258func  (handler  BulkUpdateRestHandlerImpl ) BulkHibernate (w  http.ResponseWriter , r  * http.Request ) {
258- 	userId , err  :=  handler .userAuthService .GetLoggedInUser (r )
259- 	if  userId  ==  0  ||  err  !=  nil  {
260- 		common .WriteJsonResp (w , err , "Unauthorized User" , http .StatusUnauthorized )
261- 		return 
262- 	}
263- 	decoder  :=  json .NewDecoder (r .Body )
264- 	var  request  bulkAction.BulkApplicationForEnvironmentPayload 
265- 	err  =  decoder .Decode (& request )
266- 	if  err  !=  nil  {
267- 		common .WriteJsonResp (w , err , nil , http .StatusBadRequest )
268- 		return 
269- 	}
270- 	request .UserId  =  userId 
271- 	err  =  handler .validator .Struct (request )
259+ 	request , err  :=  handler .decodeAndValidateBulkRequest (w , r )
272260	if  err  !=  nil  {
273- 		handler .logger .Errorw ("validation err" , "err" , err , "request" , request )
274- 		common .WriteJsonResp (w , err , nil , http .StatusBadRequest )
275- 		return 
261+ 		return  // response already written by the helper on error. 
276262	}
277- 
278263	token  :=  r .Header .Get ("token" )
279- 	response , err  :=  handler .bulkUpdateService .BulkHibernate (& request , r .Context (), w , token , handler .checkAuthForBulkHibernateAndUnhibernate )
264+ 	response , err  :=  handler .bulkUpdateService .BulkHibernate (request , r .Context (), w , token , handler .checkAuthForBulkHibernateAndUnhibernate )
280265	if  err  !=  nil  {
281266		common .WriteJsonResp (w , err , nil , http .StatusInternalServerError )
282267		return 
283268	}
284269	common .WriteJsonResp (w , nil , response , http .StatusOK )
285270}
286271
287- func  (handler  BulkUpdateRestHandlerImpl ) BulkUnHibernate (w  http.ResponseWriter , r  * http.Request ) {
272+ // decodeAndValidateBulkRequest is a helper to decode and validate the request. 
273+ func  (handler  BulkUpdateRestHandlerImpl ) decodeAndValidateBulkRequest (w  http.ResponseWriter , r  * http.Request ) (* bean.BulkApplicationForEnvironmentPayload , error ) {
288274	userId , err  :=  handler .userAuthService .GetLoggedInUser (r )
289275	if  userId  ==  0  ||  err  !=  nil  {
290276		common .WriteJsonResp (w , err , "Unauthorized User" , http .StatusUnauthorized )
291- 		return 
277+ 		return   nil ,  err 
292278	}
279+ 
293280	decoder  :=  json .NewDecoder (r .Body )
294- 	var  request  bulkAction.BulkApplicationForEnvironmentPayload 
295- 	err  =  decoder .Decode (& request )
296- 	if  err  !=  nil  {
281+ 	var  request  bean.BulkApplicationForEnvironmentPayload 
282+ 	if  err  =  decoder .Decode (& request ); err  !=  nil  {
297283		common .WriteJsonResp (w , err , nil , http .StatusBadRequest )
298- 		return 
284+ 		return   nil ,  err 
299285	}
300286	request .UserId  =  userId 
301- 	err  =  handler .validator .Struct (request )
302- 	if  err  !=  nil  {
303- 		handler .logger .Errorw ("validation err" , "err" , err , "request" , request )
287+ 	if  err  =  handler .validator .Struct (request ); err  !=  nil  {
288+ 		handler .logger .Errorw ("validation error" , "request" , request , "err" , err )
304289		common .WriteJsonResp (w , err , nil , http .StatusBadRequest )
305- 		return 
290+ 		return   nil ,  err 
306291	}
292+ 	return  & request , nil 
293+ }
307294
295+ func  (handler  BulkUpdateRestHandlerImpl ) BulkUnHibernate (w  http.ResponseWriter , r  * http.Request ) {
296+ 	request , err  :=  handler .decodeAndValidateBulkRequest (w , r )
297+ 	if  err  !=  nil  {
298+ 		return  // response already written by the helper on error. 
299+ 	}
308300	token  :=  r .Header .Get ("token" )
309- 	response , err  :=  handler .bulkUpdateService .BulkUnHibernate (& request , r .Context (), w , token , handler .checkAuthForBulkHibernateAndUnhibernate )
301+ 	response , err  :=  handler .bulkUpdateService .BulkUnHibernate (request , r .Context (), w , token , handler .checkAuthForBulkHibernateAndUnhibernate )
310302	if  err  !=  nil  {
311303		common .WriteJsonResp (w , err , nil , http .StatusInternalServerError )
312304		return 
313305	}
314306	common .WriteJsonResp (w , nil , response , http .StatusOK )
315307}
316- 
317308func  (handler  BulkUpdateRestHandlerImpl ) BulkDeploy (w  http.ResponseWriter , r  * http.Request ) {
318309	token  :=  r .Header .Get ("token" )
319310	userId , err  :=  handler .userAuthService .GetLoggedInUser (r )
@@ -322,7 +313,7 @@ func (handler BulkUpdateRestHandlerImpl) BulkDeploy(w http.ResponseWriter, r *ht
322313		return 
323314	}
324315	decoder  :=  json .NewDecoder (r .Body )
325- 	var  request  bulkAction .BulkApplicationForEnvironmentPayload 
316+ 	var  request  bean .BulkApplicationForEnvironmentPayload 
326317	err  =  decoder .Decode (& request )
327318	if  err  !=  nil  {
328319		common .WriteJsonResp (w , err , nil , http .StatusBadRequest )
@@ -350,7 +341,7 @@ func (handler BulkUpdateRestHandlerImpl) BulkBuildTrigger(w http.ResponseWriter,
350341		return 
351342	}
352343	decoder  :=  json .NewDecoder (r .Body )
353- 	var  request  bulkAction .BulkApplicationForEnvironmentPayload 
344+ 	var  request  bean .BulkApplicationForEnvironmentPayload 
354345	err  =  decoder .Decode (& request )
355346	if  err  !=  nil  {
356347		common .WriteJsonResp (w , err , nil , http .StatusBadRequest )
@@ -399,7 +390,7 @@ func (handler BulkUpdateRestHandlerImpl) HandleCdPipelineBulkAction(w http.Respo
399390		common .WriteJsonResp (w , err , "Unauthorized User" , http .StatusUnauthorized )
400391		return 
401392	}
402- 	var  cdPipelineBulkActionReq  bulkAction .CdBulkActionRequestDto 
393+ 	var  cdPipelineBulkActionReq  bean .CdBulkActionRequestDto 
403394	err  =  decoder .Decode (& cdPipelineBulkActionReq )
404395	cdPipelineBulkActionReq .UserId  =  userId 
405396	if  err  !=  nil  {
0 commit comments