Skip to content

Commit

Permalink
fix: app-group page breaking for inactive users (#4315)
Browse files Browse the repository at this point in the history
* added logger and removed return statement

* handled for inactive users

* added comment for string concatenation

* updated logger
  • Loading branch information
ashishdevtron committed Nov 30, 2023
1 parent eefded8 commit 58deb41
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 6 deletions.
8 changes: 7 additions & 1 deletion internal/sql/repository/AppListingRepository.go
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,13 @@ func (impl AppListingRepositoryImpl) FetchOverviewAppsByEnvironment(envId, limit

func (impl AppListingRepositoryImpl) FetchLastDeployedImage(appId, envId int) (*LastDeployed, error) {
var lastDeployed []*LastDeployed
query := `select ca.image as last_deployed_image, u.email_id as last_deployed_by from pipeline p
// we are adding a case in the query to concatenate the string "(inactive)" to the users' email id when user is inactive
query := `select ca.image as last_deployed_image,
case
when u.active = false then u.email_id || ' (inactive)'
else u.email_id
end as last_deployed_by
from pipeline p
join cd_workflow cw on cw.pipeline_id = p.id
join cd_workflow_runner cwr on cwr.cd_workflow_id = cw.id
join ci_artifact ca on ca.id = cw.ci_artifact_id
Expand Down
18 changes: 14 additions & 4 deletions pkg/app/AppListingService.go
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,7 @@ func (impl AppListingServiceImpl) FetchOverviewAppsByEnvironment(envId, limit, o
resp := &OverviewAppsByEnvironmentBean{}
env, err := impl.environmentRepository.FindById(envId)
if err != nil {
impl.Logger.Errorw("failed to fetch env", "err", err, "envId", envId)
return resp, err
}
resp.EnvironmentId = envId
Expand All @@ -242,18 +243,27 @@ func (impl AppListingServiceImpl) FetchOverviewAppsByEnvironment(envId, limit, o
resp.Type = NonProduction
}
resp.Description = env.Description
createdBy, err := impl.userRepository.GetById(env.CreatedBy)
if err != nil {
return resp, err
createdBy, err := impl.userRepository.GetByIdIncludeDeleted(env.CreatedBy)
if err != nil && err != pg.ErrNoRows {
impl.Logger.Errorw("error in fetching user for app meta info", "error", err, "env.CreatedBy", env.CreatedBy)
return nil, err
}
if createdBy != nil && createdBy.Id > 0 {
if createdBy.Active {
resp.CreatedBy = fmt.Sprintf(createdBy.EmailId)
} else {
resp.CreatedBy = fmt.Sprintf("%s (inactive)", createdBy.EmailId)
}
}
resp.CreatedBy = createdBy.EmailId
envContainers, err := impl.appListingRepository.FetchOverviewAppsByEnvironment(envId, limit, offset)
if err != nil {
impl.Logger.Errorw("failed to fetch environment containers", "err", err, "envId", envId)
return resp, err
}
for _, envContainer := range envContainers {
lastDeployed, err := impl.appListingRepository.FetchLastDeployedImage(envContainer.AppId, envId)
if err != nil {
impl.Logger.Errorw("failed to fetch last deployed image", "err", err, "appId", envContainer.AppId, "envId", envId)
return resp, err
}
if lastDeployed != nil {
Expand Down
2 changes: 1 addition & 1 deletion wire_gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 58deb41

Please sign in to comment.