TP-0000 | sev fix (#34)

This commit is contained in:
Abhijeet Gupta
2023-04-25 23:46:29 +05:30
committed by GitHub Enterprise
parent 3d064e35da
commit 1f99edcb83
4 changed files with 40 additions and 23 deletions

View File

@@ -121,7 +121,9 @@ func (s *Server) teamHandler() {
}
func (s *Server) severityHandler() {
severityHandler := service.NewSeverityService(s.gin, s.logger, s.db)
houstonClient := NewHoustonClient(s.logger)
slackClient := slackbot.NewSlackClient(s.logger, houstonClient.socketModeClient)
severityHandler := service.NewSeverityService(s.gin, s.logger, s.db, slackClient)
s.gin.GET("/severities", severityHandler.GetSeverities)
s.gin.POST("/severities", severityHandler.UpdateSeverities)

View File

@@ -1,13 +1,13 @@
package service
type UpdateSeveritiesRequest struct {
Severities []Severity `json:"severities"`
Severities []Severity `json:"severities"`
}
type Severity struct {
Id uint `json:"id"`
Name string `json:"name,omitempty"`
Description string `json:"description,omitempty"`
Sla int `json:"sla,omitempty"`
SlackUserIds []string `json:"slackUserIds,omitempty"`
}
Id uint `json:"id"`
Name string `json:"name,omitempty"`
Description string `json:"description,omitempty"`
Sla int `json:"sla,omitempty"`
WorkEmailIds []string `json:"workEmailIds,omitempty"`
}

View File

@@ -1,7 +1,9 @@
package service
import (
commonutil "houston/common/util"
"houston/model/severity"
"houston/pkg/slackbot"
request "houston/service/request"
service "houston/service/response"
common "houston/service/response/common"
@@ -14,16 +16,18 @@ import (
)
type severityService struct {
gin *gin.Engine
logger *zap.Logger
db *gorm.DB
gin *gin.Engine
logger *zap.Logger
db *gorm.DB
client *slackbot.Client
}
func NewSeverityService(gin *gin.Engine, logger *zap.Logger, db *gorm.DB) *severityService {
func NewSeverityService(gin *gin.Engine, logger *zap.Logger, db *gorm.DB, client *slackbot.Client) *severityService {
return &severityService{
gin: gin,
gin: gin,
logger: logger,
db: db,
db: db,
client: client,
}
}
@@ -38,11 +42,11 @@ func (s *severityService) GetSeverities(c *gin.Context) {
var severityResponses []service.SeverityResponse
for _, severity := range *severityEntities {
severityResponses = append(severityResponses, service.SeverityResponse{
Id: severity.ID,
Name: severity.Name,
Description: severity.Description,
Sla: severity.Sla,
SlackUserIds: severity.SlackUserIds,
Id: severity.ID,
Name: severity.Name,
Description: severity.Description,
Sla: severity.Sla,
SlackUserIds: severity.SlackUserIds,
})
}
@@ -81,9 +85,20 @@ func (s *severityService) UpdateSeverities(c *gin.Context) {
if severity.Sla != 0 {
severityEntity.Sla = severity.Sla
}
if severity.SlackUserIds != nil {
severityEntity.SlackUserIds = severity.SlackUserIds
slackUserIds := []string{}
if severity.WorkEmailIds != nil {
for _, ind := range severity.WorkEmailIds {
slackUser, err := s.client.GetUserByEmail(ind)
if err != nil {
s.logger.Error("error in GetUserByEmail for sev", zap.String("workEmail", ind), zap.Error(err))
} else {
slackUserIds = append(slackUserIds, slackUser.ID)
}
}
}
slackUserIds = append(slackUserIds, severityEntity.SlackUserIds...)
slackUserIds = commonutil.RemoveDuplicateStr(slackUserIds)
severityEntity.SlackUserIds = slackUserIds
err = severityService.Update(severityEntity)
if err != nil {
s.logger.Error("error in updating severity", zap.Any("severityId", severity.Id), zap.Error(err))
@@ -93,4 +108,4 @@ func (s *severityService) UpdateSeverities(c *gin.Context) {
}
c.JSON(http.StatusOK, common.SuccessResponse("severity updated successfully", http.StatusOK))
}
}

View File

@@ -117,7 +117,7 @@ func (t *teamService) UpdateTeam(c *gin.Context) {
for _, ind := range updateTeamRequest.WorkEmailIds {
slackUser, err := t.client.GetUserByEmail(ind)
if err != nil {
t.logger.Error("error in GetUserByEmail", zap.String("workEmail", ind), zap.Error(err))
t.logger.Error("error in GetUserByEmail for team", zap.String("workEmail", ind), zap.Error(err))
} else {
slackUserIds = append(slackUserIds, slackUser.ID)
}