Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 23 additions & 9 deletions api/restHandler/CoreAppRestHandler.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ const (
APP_DELETE_FAILED_RESP = "App deletion failed, please try deleting from Devtron UI"
APP_CREATE_SUCCESSFUL_RESP = "App created successfully."
APP_WORKFLOW_CREATE_SUCCESSFUL_RESP = "App workflow created successfully."
WORKFLOW_NAME_EMPTY = ""
)

type CoreAppRestHandler interface {
Expand Down Expand Up @@ -194,7 +195,8 @@ func (handler CoreAppRestHandlerImpl) GetAppAllDetail(w http.ResponseWriter, r *
//get/build global deployment template ends

//get/build app workflows starts
appWorkflows, err, statusCode := handler.buildAppWorkflows(appId)
//using empty workflow name because it is optional, if not provided then workflows will be fetched on the basis of app
appWorkflows, err, statusCode := handler.buildAppWorkflows(appId, WORKFLOW_NAME_EMPTY)
if err != nil {
common.WriteJsonResp(w, err, nil, statusCode)
return
Expand Down Expand Up @@ -609,13 +611,23 @@ func (handler CoreAppRestHandlerImpl) buildAppEnvironmentDeploymentTemplate(appI
}

// validate and build workflows
func (handler CoreAppRestHandlerImpl) buildAppWorkflows(appId int) ([]*appBean.AppWorkflow, error, int) {
func (handler CoreAppRestHandlerImpl) buildAppWorkflows(appId int, workflowName string) ([]*appBean.AppWorkflow, error, int) {
handler.logger.Debugw("Getting app detail - workflows", "appId", appId)

workflowsList, err := handler.appWorkflowService.FindAppWorkflows(appId)
if err != nil {
handler.logger.Errorw("error in fetching workflows for app in GetAppAllDetail", "err", err)
return nil, err, http.StatusInternalServerError
var workflowsList []appWorkflow.AppWorkflowDto
var err error
if len(workflowName) != 0 {
workflow, err := handler.appWorkflowService.FindAppWorkflowByName(workflowName, appId)
if err != nil {
handler.logger.Errorw("error in fetching workflow by name", "err", err, "workflowName", workflowName, "appId", appId)
return nil, err, http.StatusInternalServerError
}
workflowsList = []appWorkflow.AppWorkflowDto{workflow}
} else {
workflowsList, err = handler.appWorkflowService.FindAppWorkflows(appId)
if err != nil {
handler.logger.Errorw("error in fetching workflows for app in GetAppAllDetail", "err", err)
return nil, err, http.StatusInternalServerError
}
}

var appWorkflowsResp []*appBean.AppWorkflow
Expand Down Expand Up @@ -2150,7 +2162,8 @@ func (handler CoreAppRestHandlerImpl) GetAppWorkflow(w http.ResponseWriter, r *h
}

//get/build app workflows starts
appWorkflows, err, statusCode := handler.buildAppWorkflows(appId)
//using empty workflow name because it is optional, if not provided then workflows will be fetched on the basis of app
appWorkflows, err, statusCode := handler.buildAppWorkflows(appId, WORKFLOW_NAME_EMPTY)
if err != nil {
common.WriteJsonResp(w, err, nil, statusCode)
return
Expand Down Expand Up @@ -2198,9 +2211,10 @@ func (handler CoreAppRestHandlerImpl) GetAppWorkflowAndOverridesSample(w http.Re
common.WriteJsonResp(w, err, nil, http.StatusBadRequest)
return
}
workflowName := r.URL.Query().Get("workflowName")
token := r.Header.Get("token")
//get/build app workflows starts
appWorkflows, err, statusCode := handler.buildAppWorkflows(appId)
appWorkflows, err, statusCode := handler.buildAppWorkflows(appId, workflowName)
if err != nil {
common.WriteJsonResp(w, err, nil, statusCode)
return
Expand Down
12 changes: 9 additions & 3 deletions pkg/appWorkflow/AppWorkflowService.go
Original file line number Diff line number Diff line change
Expand Up @@ -427,10 +427,16 @@ func (impl AppWorkflowServiceImpl) FindAppWorkflowByName(name string, appId int)
impl.Logger.Errorw("err", err)
return AppWorkflowDto{}, err
}
wfrIdVsMappings, err := impl.FindAllAppWorkflowMapping([]int{appWorkflow.Id})
if err != nil {
return AppWorkflowDto{}, err
}

appWorkflowDto := &AppWorkflowDto{
AppId: appWorkflow.AppId,
Id: appWorkflow.Id,
Name: appWorkflow.Name,
AppId: appWorkflow.AppId,
Id: appWorkflow.Id,
Name: appWorkflow.Name,
AppWorkflowMappingDto: wfrIdVsMappings[appWorkflow.Id],
}
return *appWorkflowDto, err
}
Expand Down