* INFRA-3664 : Make get users in conversation api more performant * INFRA-3664 : Add apis for incident user sync and get users in incident performance improvements * INFRA-3664 : Self review * INFRA-3664 : Add migration script * INFRA-3664 : Review comments * INFRA-3664 : Constant chanes * INFRA-3664 : Add rate limit constants * INFRA-3664 : Add rate limit constants * INFRA-3664 : Fix failing tests * INFRA-3664 : Add UT's
51 lines
1.7 KiB
Go
51 lines
1.7 KiB
Go
package requestStatus
|
|
|
|
import (
|
|
"github.com/google/uuid"
|
|
"gorm.io/datatypes"
|
|
"gorm.io/gorm"
|
|
requestStatusUtil "houston/common/util/requestStatus"
|
|
"houston/model/requestStatus"
|
|
)
|
|
|
|
type requestStatusRepositoryImpl struct {
|
|
gormClient *gorm.DB
|
|
}
|
|
|
|
func (repo *requestStatusRepositoryImpl) AddRequestStatus(
|
|
requestType requestStatusUtil.RequestType, status requestStatusUtil.RequestStatus, message datatypes.JSON,
|
|
) (requestStatus.RequestStatusEntity, error) {
|
|
entity := requestStatus.RequestStatusEntity{
|
|
RequestType: string(requestType),
|
|
Status: status.Value(),
|
|
Message: message,
|
|
}
|
|
result := repo.gormClient.Create(&entity)
|
|
return entity, result.Error
|
|
}
|
|
|
|
func (repo *requestStatusRepositoryImpl) GetRequestStatusByRequestId(requestId uuid.UUID) (*requestStatus.RequestStatusEntity, error) {
|
|
var entity requestStatus.RequestStatusEntity
|
|
result := repo.gormClient.Where("request_id = ?", requestId).First(&entity)
|
|
return &entity, result.Error
|
|
}
|
|
|
|
func (repo *requestStatusRepositoryImpl) UpdateRequestStatus(
|
|
requestId uuid.UUID, status requestStatusUtil.RequestStatus, message datatypes.JSON,
|
|
) (requestStatus.RequestStatusEntity, error) {
|
|
entity := requestStatus.RequestStatusEntity{
|
|
Status: status.Value(),
|
|
Message: message,
|
|
}
|
|
result := repo.gormClient.Model(&requestStatus.RequestStatusEntity{}).Where("request_id = ?", requestId).Updates(&entity)
|
|
return entity, result.Error
|
|
}
|
|
|
|
func (repo *requestStatusRepositoryImpl) GetAllRequestStatusesByTerminalState(terminalState bool) ([]requestStatus.RequestStatusEntity, error) {
|
|
var entities []requestStatus.RequestStatusEntity
|
|
|
|
result := repo.gormClient.Where("status IN ?", requestStatusUtil.GetAllStatusValuesByTerminalState(terminalState)).Find(&entities)
|
|
|
|
return entities, result.Error
|
|
}
|