diff --git a/service/teamService/team_service_v2.go b/service/teamService/team_service_v2.go index ece2196..a32d243 100644 --- a/service/teamService/team_service_v2.go +++ b/service/teamService/team_service_v2.go @@ -11,6 +11,7 @@ import ( "houston/model/user" service "houston/service/response" "houston/service/slack" + "sort" ) type TeamServiceV2 struct { @@ -52,7 +53,8 @@ func (teamService *TeamServiceV2) GetTeamDetails(teamId uint) (*service.TeamResp logger.Error(fmt.Sprintf("%s error in fetching users by slackIds: %s", logTag, currentTeam.SlackUserIds)) return nil, customErrors.NewDataAccessError(fmt.Sprintf("unable to find users for team id: %d", teamId)) } - teamResponse.Participants = teamService.getTeamUserResponses(*users, currentTeam.SlackUserIds) + userResponses := teamService.getTeamUserResponses(*users, currentTeam.SlackUserIds) + teamResponse.Participants = getOrderedUserResponses(userResponses, currentTeam.ManagerHandle) teamResponse.WebhookSlackChannelId = currentTeam.WebhookSlackChannel channel, err := teamService.slackService.GetConversationInfo(currentTeam.WebhookSlackChannel) @@ -153,3 +155,16 @@ func (teamService *TeamServiceV2) getTeamUserResponses(users []user.UserEntity, } return userResponses } + +func getOrderedUserResponses(userResponses []service.UserResponse, managerID string) []service.UserResponse { + sort.SliceStable(userResponses, func(i, j int) bool { + if userResponses[i].Id == managerID { + return true + } + if userResponses[j].Id == managerID { + return false + } + return userResponses[i].Name < userResponses[j].Name + }) + return userResponses +}