TP-52739| added ordering of team members in get teams api (#343)

This commit is contained in:
Gullipalli Chetan Kumar
2023-12-28 18:12:49 +05:30
committed by GitHub
parent adb2795b12
commit d8fc4380ff

View File

@@ -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
}