TP-0000 | ui-fix (#32)

This commit is contained in:
Abhijeet Gupta
2023-04-25 22:56:36 +05:30
committed by GitHub Enterprise
parent 2eed0f966a
commit 131fe8ea45
5 changed files with 57 additions and 46 deletions

View File

@@ -71,6 +71,8 @@ func (cip *CreateIncidentAction) CreateIncidentModalCommandProcessing(callback s
return
}
//Add user who created the incident
cip.slackbotClient.InviteUsersToConversation(incidentEntity.SlackChannel, incidentEntity.CreatedBy)
// add default users to the incident
err = cip.addDefaultUsersToIncident(*channelID, teamEntity, severityEntity)
if err != nil {

View File

@@ -4,6 +4,7 @@ import (
"fmt"
"houston/model/severity"
"strconv"
"strings"
"time"
"go.uber.org/zap"
@@ -150,7 +151,7 @@ func (r *Repository) FindIncidentById(Id uint) (*IncidentEntity, error) {
}
func (r *Repository) FetchAllIncidents(
TeamsId []uint, SeverityIds []uint, StatusIds []uint, pageNumber int64, pageSize int64) ([]IncidentEntity, int, error) {
TeamsId []uint, SeverityIds []uint, StatusIds []uint, pageNumber int64, pageSize int64, incidentName string) ([]IncidentEntity, int, error) {
var query = r.gormClient.Model([]IncidentEntity{})
var incidentEntity []IncidentEntity
if len(TeamsId) != 0 {
@@ -162,6 +163,9 @@ func (r *Repository) FetchAllIncidents(
if len(StatusIds) != 0 {
query = query.Where("status IN ?", StatusIds)
}
if len(strings.TrimSpace(incidentName)) != 0 {
query = query.Where("incident_name LIKE ?", "%"+incidentName+"%")
}
var totalElements int64
result := query.Count(&totalElements)
@@ -169,7 +173,7 @@ func (r *Repository) FetchAllIncidents(
return nil, 0, result.Error
}
result = query.Offset(int(pageNumber * pageSize)).Limit(int(pageSize)).Find(&incidentEntity)
result = query.Order("created_at desc").Offset(int(pageNumber * pageSize)).Limit(int(pageSize)).Find(&incidentEntity)
if result.Error != nil {
return nil, 0, result.Error

View File

@@ -19,11 +19,11 @@ func (c *Client) GetUsersInfo(users ...string) (*[]slack.User, error) {
func (c *Client) GetUsersInConversation(channelId string) ([]string, error) {
users, _, err := c.socketModeClient.GetUsersInConversation(&slack.GetUsersInConversationParameters{
Limit: 100,
Limit: 100,
ChannelID: channelId,
})
if err != nil {
c.logger.Error("error in getting users from conversations",
c.logger.Error("error in getting users from conversations",
zap.String("channelId", channelId), zap.Error(err))
return nil, err
}
@@ -43,8 +43,8 @@ func (c *Client) GetUserEmailById(userId string) (string, error) {
users, err := c.GetUsersInfo(userId)
if err != nil {
c.logger.Error("error in getting user info by id", zap.String("id", userId), zap.Error(err))
return "", err
return "Anonymous-" + userId, err
}
usersInfo := *users
return usersInfo[0].Profile.Email, nil
}
}

View File

@@ -64,6 +64,7 @@ func (i *incidentService) GetIncidents(c *gin.Context) {
TeamIds := c.Query("team_ids")
SeverityIds := c.Query("severity_ids")
Status := c.Query("statuses")
IncidentName := c.Query("incident_name")
if IncidentId != "" {
numIncidentId, err := strconv.Atoi(IncidentId)
@@ -90,11 +91,12 @@ func (i *incidentService) GetIncidents(c *gin.Context) {
}
incidents, totalElements, err := i.GetAllIncidents(request.IncidentFilters{
TeamIds: TeamIds,
SeverityIds: SeverityIds,
StatusIds: Status,
PageSize: pageSize,
PageNumber: pageNumber,
TeamIds: TeamIds,
SeverityIds: SeverityIds,
StatusIds: Status,
PageSize: pageSize,
PageNumber: pageNumber,
IncidentName: IncidentName,
}, i.incidentRepository, i.severityRepository)
if err != nil {
i.logger.Info("error in fetching incidents", zap.Error(err))
@@ -105,7 +107,7 @@ func (i *incidentService) GetIncidents(c *gin.Context) {
incidentResponses, err := i.GetIncidentResponseFromIncidentEntity(
incidents, i.incidentRepository, i.severityRepository, i.teamRepository)
if err != nil {
i.logger.Error("error in creating incident response", zap.Error(err))
i.logger.Error("error in GetIncidentResponseFromIncidentEntity", zap.Error(err))
c.JSON(http.StatusBadRequest, common.ErrorResponse(err, http.StatusBadRequest, nil))
return
}
@@ -137,32 +139,32 @@ func (i *incidentService) GetIncidentResponseFromIncidentEntity(
}
incidentResponses[incident].TeamName = team.Name
severity, err := severityRepository.FindSeverityById(incidentResponses[incident].SeverityId)
if (err != nil) {
i.logger.Error("error in fetching severity", zap.Error(err))
return nil, err
}
incidentResponses[incident].SeverityName = severity.Name
incidentStatus, err := incidentRepository.GetIncidentStatusNameByStatus(incidentResponses[incident].Status)
if (err != nil) {
i.logger.Error("error in fetching incident status", zap.Error(err))
return nil, err
}
incidentResponses[incident].StatusName = incidentStatus.Name
userEmail, err := i.slackbotClient.GetUserEmailById(incidents[incident].CreatedBy)
if err != nil {
i.logger.Error("error in fetching user name by id", zap.String("userId", incidents[incident].CreatedBy), zap.Error(err))
return nil, err
}
incidentResponses[incident].CreatedBy = userEmail
userEmail, err = i.slackbotClient.GetUserEmailById(incidents[incident].UpdatedBy)
if err != nil {
i.logger.Error("error in fetching user name by id", zap.String("userId", incidents[incident].UpdatedBy), zap.Error(err))
return nil, err
}
incidentResponses[incident].UpdatedBy = userEmail
}
return incidentResponses, nil
severity, err := severityRepository.FindSeverityById(incidentResponses[incident].SeverityId)
if err != nil {
i.logger.Error("error in fetching severity", zap.Error(err))
return nil, err
}
incidentResponses[incident].SeverityName = severity.Name
incidentStatus, err := incidentRepository.GetIncidentStatusNameByStatus(incidentResponses[incident].Status)
if err != nil {
i.logger.Error("error in fetching incident status", zap.Error(err))
return nil, err
}
incidentResponses[incident].StatusName = incidentStatus.Name
userEmail, err := i.slackbotClient.GetUserEmailById(incidents[incident].CreatedBy)
if err != nil {
i.logger.Error("error in fetching user name by id", zap.String("userId", incidents[incident].CreatedBy), zap.Error(err))
// return nil, err
}
incidentResponses[incident].CreatedBy = userEmail
userEmail, err = i.slackbotClient.GetUserEmailById(incidents[incident].UpdatedBy)
if err != nil {
i.logger.Error("error in fetching user name by id", zap.String("userId", incidents[incident].UpdatedBy), zap.Error(err))
// return nil, err
}
incidentResponses[incident].UpdatedBy = userEmail
}
return incidentResponses, nil
}
func (i *incidentService) GetAllIncidents(
@@ -183,7 +185,7 @@ func (i *incidentService) GetAllIncidents(
StatusIds = i.SplitStringAndGetUintArray(incidentFilters.StatusIds)
}
return incidentRepository.FetchAllIncidents(
TeamIds, SeverityIds, StatusIds, incidentFilters.PageNumber, incidentFilters.PageSize)
TeamIds, SeverityIds, StatusIds, incidentFilters.PageNumber, incidentFilters.PageSize, incidentFilters.IncidentName)
}
func (i *incidentService) SplitStringAndGetUintArray(str string) []uint {
@@ -284,6 +286,8 @@ func (i *incidentService) CreateIncident(c *gin.Context) {
return
}
//Add user who created the incident
i.slackbotClient.InviteUsersToConversation(incidentEntity.SlackChannel, incidentEntity.CreatedBy)
// add default users to the incident
err = i.addDefaultUsersToIncident(*channelID, teamEntity, severityEntity)
if err != nil {
@@ -424,7 +428,7 @@ func buildCreateIncidentRequest(createIncRequest request.CreateIncidentRequest)
}
func (i *incidentService) UpdateIncident(c *gin.Context) {
userEmail := c.GetHeader("X-User-Email")
userEmail := c.GetHeader("X-User-Email")
var updateIncidentRequest request.UpdateIncidentRequest
if err := c.ShouldBindJSON(&updateIncidentRequest); err != nil {

View File

@@ -1,9 +1,10 @@
package service
type IncidentFilters struct {
TeamIds string
SeverityIds string
StatusIds string
PageSize int64
PageNumber int64
}
TeamIds string
SeverityIds string
StatusIds string
PageSize int64
PageNumber int64
IncidentName string
}