From 07ad271c3c4550f77094bfb55fe786a06236a12c Mon Sep 17 00:00:00 2001 From: Vijay Joshi Date: Fri, 20 Oct 2023 13:03:09 +0530 Subject: [PATCH] TP-45804 : Update get teams api to send team and pse oncall info (#253) --- service/response/bot_response.go | 6 ++++++ service/response/team_response.go | 2 ++ service/team_service.go | 25 +++++++++++++++++++++++++ 3 files changed, 33 insertions(+) create mode 100644 service/response/bot_response.go diff --git a/service/response/bot_response.go b/service/response/bot_response.go new file mode 100644 index 0000000..bfab87b --- /dev/null +++ b/service/response/bot_response.go @@ -0,0 +1,6 @@ +package service + +type BotResponse struct { + Id string `json:"id"` + Name string `json:"name"` +} diff --git a/service/response/team_response.go b/service/response/team_response.go index 1300f48..7dccae1 100644 --- a/service/response/team_response.go +++ b/service/response/team_response.go @@ -16,6 +16,8 @@ type TeamResponse struct { WebhookSlackChannelName string `json:"webhookSlackChannelName"` WebhookSlackChannelId string `json:"webhookSlackChannelId"` ManagerId string `json:"managerId"` + Oncall BotResponse `json:"oncall"` + PseOncall BotResponse `json:"pse_oncall"` } func ConvertToTeamResponse(teamEntity team.TeamEntity) TeamResponse { diff --git a/service/team_service.go b/service/team_service.go index f0fa45d..10a39f3 100644 --- a/service/team_service.go +++ b/service/team_service.go @@ -208,6 +208,31 @@ func (t *TeamService) GetTeams(c *gin.Context) { } else { teamResponse.WebhookSlackChannelName = channel.Name } + + oncallBots, err := t.client.GetUsersInfo(team.OncallHandle) + + if err != nil || *oncallBots == nil || isUserInvalid(&(*oncallBots)[0], err) { + t.logger.Error(fmt.Sprintf("error in GetUsersInfo for oncall bot of id: %v", team.OncallHandle)) + } else { + oncallBotData := &(*oncallBots)[0] + teamResponse.Oncall = service.BotResponse{ + Id: oncallBotData.ID, + Name: oncallBotData.RealName, + } + } + + pseOncallBots, err := t.client.GetUsersInfo(team.PseOncallHandle) + + if err != nil || *pseOncallBots == nil || isUserInvalid(&(*pseOncallBots)[0], err) { + t.logger.Error(fmt.Sprintf("error in GetUsersInfo for pse oncall bot of id: %v", team.PseOncallHandle)) + } else { + pseOncallBotData := &(*pseOncallBots)[0] + teamResponse.PseOncall = service.BotResponse{ + Id: pseOncallBotData.ID, + Name: pseOncallBotData.RealName, + } + } + teamResponse.Participants = userResponses c.JSON(http.StatusOK, common.SuccessResponse(teamResponse, http.StatusOK)) return