Files
houston-be/service/requestStatus/request_status_service_impl.go
Vijay Joshi 288a7f8457 INFRA-3664 : Make get users in conversation api more performant, add api to sync incident users, module to track request statuses and remove old add incident-user api (#451)
* 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
2024-08-29 11:52:56 +05:30

58 lines
1.8 KiB
Go

package requestStatus
import (
"github.com/google/uuid"
"gorm.io/datatypes"
"houston/common/util/dto"
requestStatusUtil "houston/common/util/requestStatus"
requestStatusModel "houston/model/requestStatus"
"houston/repository/requestStatus"
)
type requestStatusServiceImpl struct {
requestStatusRepo requestStatus.RequestStatusRepository
}
func (service *requestStatusServiceImpl) AddRequestStatus(
requestType requestStatusUtil.RequestType, status requestStatusUtil.RequestStatus, message datatypes.JSON,
) (*requestStatusModel.RequestStatusDTO, error) {
entity, err := service.requestStatusRepo.AddRequestStatus(requestType, status, message)
if err != nil {
return nil, err
}
requestStatusDTO := entity.ToDTO()
return &requestStatusDTO, nil
}
func (service *requestStatusServiceImpl) GetRequestStatusByRequestId(requestId uuid.UUID) (*requestStatusModel.RequestStatusDTO, error) {
entity, err := service.requestStatusRepo.GetRequestStatusByRequestId(requestId)
if err != nil {
return nil, err
}
requestStatusDTO := entity.ToDTO()
return &requestStatusDTO, nil
}
func (service *requestStatusServiceImpl) UpdateRequestStatus(
requestId uuid.UUID, status requestStatusUtil.RequestStatus, message datatypes.JSON,
) (*requestStatusModel.RequestStatusDTO, error) {
entity, err := service.requestStatusRepo.UpdateRequestStatus(requestId, status, message)
if err != nil {
return nil, err
}
requestStatusDTO := entity.ToDTO()
return &requestStatusDTO, nil
}
func (service *requestStatusServiceImpl) GetAllRequestStatusesByTerminalState(terminalState bool) ([]requestStatusModel.RequestStatusDTO, error) {
entities, err := service.requestStatusRepo.GetAllRequestStatusesByTerminalState(terminalState)
if err != nil {
return nil, err
}
return dto.ToDtoArray[requestStatusModel.RequestStatusEntity, requestStatusModel.RequestStatusDTO](entities), nil
}