mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-12-28 08:26:36 +08:00
优化消息通知相关代码
This commit is contained in:
@@ -1,187 +0,0 @@
|
||||
package services
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
||||
"github.com/TeaOSLab/EdgeAPI/internal/utils"
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||
"github.com/iwind/TeaGo/maps"
|
||||
"github.com/iwind/TeaGo/types"
|
||||
)
|
||||
|
||||
// MessageMediaInstanceService 消息媒介实例服务
|
||||
type MessageMediaInstanceService struct {
|
||||
BaseService
|
||||
}
|
||||
|
||||
// CreateMessageMediaInstance 创建消息媒介实例
|
||||
func (this *MessageMediaInstanceService) CreateMessageMediaInstance(ctx context.Context, req *pb.CreateMessageMediaInstanceRequest) (*pb.CreateMessageMediaInstanceResponse, error) {
|
||||
_, err := this.ValidateAdmin(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
|
||||
params := maps.Map{}
|
||||
if len(req.ParamsJSON) > 0 {
|
||||
err = json.Unmarshal(req.ParamsJSON, ¶ms)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
instanceId, err := models.SharedMessageMediaInstanceDAO.CreateMediaInstance(tx, req.Name, req.MediaType, params, req.Description, req.RateJSON, req.HashLife)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &pb.CreateMessageMediaInstanceResponse{MessageMediaInstanceId: instanceId}, nil
|
||||
}
|
||||
|
||||
// UpdateMessageMediaInstance 修改消息实例
|
||||
func (this *MessageMediaInstanceService) UpdateMessageMediaInstance(ctx context.Context, req *pb.UpdateMessageMediaInstanceRequest) (*pb.RPCSuccess, error) {
|
||||
_, err := this.ValidateAdmin(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
params := maps.Map{}
|
||||
if len(req.ParamsJSON) > 0 {
|
||||
err = json.Unmarshal(req.ParamsJSON, ¶ms)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
err = models.SharedMessageMediaInstanceDAO.UpdateMediaInstance(tx, req.MessageMediaInstanceId, req.Name, req.MediaType, params, req.Description, req.RateJSON, req.HashLife, req.IsOn)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return this.Success()
|
||||
}
|
||||
|
||||
// DeleteMessageMediaInstance 删除媒介实例
|
||||
func (this *MessageMediaInstanceService) DeleteMessageMediaInstance(ctx context.Context, req *pb.DeleteMessageMediaInstanceRequest) (*pb.RPCSuccess, error) {
|
||||
_, err := this.ValidateAdmin(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
err = models.SharedMessageMediaInstanceDAO.DisableMessageMediaInstance(tx, req.MessageMediaInstanceId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return this.Success()
|
||||
}
|
||||
|
||||
// CountAllEnabledMessageMediaInstances 计算媒介实例数量
|
||||
func (this *MessageMediaInstanceService) CountAllEnabledMessageMediaInstances(ctx context.Context, req *pb.CountAllEnabledMessageMediaInstancesRequest) (*pb.RPCCountResponse, error) {
|
||||
_, err := this.ValidateAdmin(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
count, err := models.SharedMessageMediaInstanceDAO.CountAllEnabledMediaInstances(tx, req.MediaType, req.Keyword)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return this.SuccessCount(count)
|
||||
}
|
||||
|
||||
// ListEnabledMessageMediaInstances 列出单页媒介实例
|
||||
func (this *MessageMediaInstanceService) ListEnabledMessageMediaInstances(ctx context.Context, req *pb.ListEnabledMessageMediaInstancesRequest) (*pb.ListEnabledMessageMediaInstancesResponse, error) {
|
||||
_, err := this.ValidateAdmin(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
instances, err := models.SharedMessageMediaInstanceDAO.ListAllEnabledMediaInstances(tx, req.MediaType, req.Keyword, req.Offset, req.Size)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
pbInstances := []*pb.MessageMediaInstance{}
|
||||
for _, instance := range instances {
|
||||
// 媒介
|
||||
media, err := models.SharedMessageMediaDAO.FindEnabledMediaWithType(tx, instance.MediaType)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if media == nil {
|
||||
continue
|
||||
}
|
||||
pbMedia := &pb.MessageMedia{
|
||||
Id: int64(media.Id),
|
||||
Type: media.Type,
|
||||
Name: media.Name,
|
||||
Description: media.Description,
|
||||
UserDescription: media.UserDescription,
|
||||
IsOn: media.IsOn,
|
||||
}
|
||||
|
||||
pbInstances = append(pbInstances, &pb.MessageMediaInstance{
|
||||
Id: int64(instance.Id),
|
||||
Name: instance.Name,
|
||||
IsOn: instance.IsOn,
|
||||
MessageMedia: pbMedia,
|
||||
ParamsJSON: instance.Params,
|
||||
Description: instance.Description,
|
||||
RateJSON: instance.Rate,
|
||||
})
|
||||
}
|
||||
|
||||
return &pb.ListEnabledMessageMediaInstancesResponse{MessageMediaInstances: pbInstances}, nil
|
||||
}
|
||||
|
||||
// FindEnabledMessageMediaInstance 查找单个媒介实例信息
|
||||
func (this *MessageMediaInstanceService) FindEnabledMessageMediaInstance(ctx context.Context, req *pb.FindEnabledMessageMediaInstanceRequest) (*pb.FindEnabledMessageMediaInstanceResponse, error) {
|
||||
_, err := this.ValidateAdmin(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
var cacheMap = utils.NewCacheMap()
|
||||
instance, err := models.SharedMessageMediaInstanceDAO.FindEnabledMessageMediaInstance(tx, req.MessageMediaInstanceId, cacheMap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if instance == nil {
|
||||
return &pb.FindEnabledMessageMediaInstanceResponse{MessageMediaInstance: nil}, nil
|
||||
}
|
||||
|
||||
// 媒介
|
||||
media, err := models.SharedMessageMediaDAO.FindEnabledMediaWithType(tx, instance.MediaType)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if media == nil {
|
||||
return &pb.FindEnabledMessageMediaInstanceResponse{MessageMediaInstance: nil}, nil
|
||||
}
|
||||
pbMedia := &pb.MessageMedia{
|
||||
Id: int64(media.Id),
|
||||
Type: media.Type,
|
||||
Name: media.Name,
|
||||
Description: media.Description,
|
||||
UserDescription: media.UserDescription,
|
||||
IsOn: media.IsOn,
|
||||
}
|
||||
|
||||
return &pb.FindEnabledMessageMediaInstanceResponse{MessageMediaInstance: &pb.MessageMediaInstance{
|
||||
Id: int64(instance.Id),
|
||||
Name: instance.Name,
|
||||
IsOn: instance.IsOn,
|
||||
MessageMedia: pbMedia,
|
||||
ParamsJSON: instance.Params,
|
||||
Description: instance.Description,
|
||||
RateJSON: instance.Rate,
|
||||
HashLife: types.Int32(instance.HashLife),
|
||||
}}, nil
|
||||
}
|
||||
@@ -1,193 +0,0 @@
|
||||
package services
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
||||
"github.com/TeaOSLab/EdgeAPI/internal/utils"
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs"
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||
"github.com/iwind/TeaGo/dbs"
|
||||
"github.com/iwind/TeaGo/maps"
|
||||
)
|
||||
|
||||
// MessageReceiverService 消息对象接收人
|
||||
type MessageReceiverService struct {
|
||||
BaseService
|
||||
}
|
||||
|
||||
// UpdateMessageReceivers 创建接收者
|
||||
func (this *MessageReceiverService) UpdateMessageReceivers(ctx context.Context, req *pb.UpdateMessageReceiversRequest) (*pb.RPCSuccess, error) {
|
||||
_, err := this.ValidateAdmin(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if len(req.Role) == 0 {
|
||||
req.Role = nodeconfigs.NodeRoleNode
|
||||
}
|
||||
|
||||
params := maps.Map{}
|
||||
if len(req.ParamsJSON) > 0 {
|
||||
err = json.Unmarshal(req.ParamsJSON, ¶ms)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
err = this.RunTx(func(tx *dbs.Tx) error {
|
||||
err = models.SharedMessageReceiverDAO.DisableReceivers(tx, req.NodeClusterId, req.NodeId, req.ServerId)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for messageType, options := range req.RecipientOptions {
|
||||
for _, option := range options.RecipientOptions {
|
||||
_, err := models.SharedMessageReceiverDAO.CreateReceiver(tx, req.Role, req.NodeClusterId, req.NodeId, req.ServerId, messageType, params, option.MessageRecipientId, option.MessageRecipientGroupId)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return this.Success()
|
||||
}
|
||||
|
||||
// FindAllEnabledMessageReceivers 查找接收者
|
||||
func (this *MessageReceiverService) FindAllEnabledMessageReceivers(ctx context.Context, req *pb.FindAllEnabledMessageReceiversRequest) (*pb.FindAllEnabledMessageReceiversResponse, error) {
|
||||
_, err := this.ValidateAdmin(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if len(req.Role) == 0 {
|
||||
req.Role = nodeconfigs.NodeRoleNode
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
var cacheMap = utils.NewCacheMap()
|
||||
receivers, err := models.SharedMessageReceiverDAO.FindAllEnabledReceivers(tx, req.Role, req.NodeClusterId, req.NodeId, req.ServerId, "")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
pbReceivers := []*pb.MessageReceiver{}
|
||||
for _, receiver := range receivers {
|
||||
var pbRecipient *pb.MessageRecipient = nil
|
||||
|
||||
// 接收人
|
||||
if receiver.RecipientId > 0 {
|
||||
recipient, err := models.SharedMessageRecipientDAO.FindEnabledMessageRecipient(tx, int64(receiver.RecipientId), cacheMap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if recipient == nil {
|
||||
continue
|
||||
}
|
||||
|
||||
// 管理员
|
||||
admin, err := models.SharedAdminDAO.FindEnabledAdmin(tx, int64(recipient.AdminId))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if admin == nil {
|
||||
continue
|
||||
}
|
||||
|
||||
// 接收人
|
||||
instance, err := models.SharedMessageMediaInstanceDAO.FindEnabledMessageMediaInstance(tx, int64(recipient.InstanceId), cacheMap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if instance == nil {
|
||||
continue
|
||||
}
|
||||
|
||||
pbRecipient = &pb.MessageRecipient{
|
||||
Id: int64(recipient.Id),
|
||||
Admin: &pb.Admin{
|
||||
Id: int64(admin.Id),
|
||||
Fullname: admin.Fullname,
|
||||
Username: admin.Username,
|
||||
IsOn: admin.IsOn,
|
||||
},
|
||||
MessageMediaInstance: &pb.MessageMediaInstance{
|
||||
Id: int64(instance.Id),
|
||||
Name: instance.Name,
|
||||
IsOn: instance.IsOn,
|
||||
},
|
||||
IsOn: recipient.IsOn,
|
||||
MessageRecipientGroups: nil,
|
||||
Description: "",
|
||||
User: "",
|
||||
}
|
||||
}
|
||||
|
||||
// 接收人分组
|
||||
var pbRecipientGroup *pb.MessageRecipientGroup = nil
|
||||
if receiver.RecipientGroupId > 0 {
|
||||
group, err := models.SharedMessageRecipientGroupDAO.FindEnabledMessageRecipientGroup(tx, int64(receiver.RecipientGroupId))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if group == nil {
|
||||
continue
|
||||
}
|
||||
pbRecipientGroup = &pb.MessageRecipientGroup{
|
||||
Id: int64(group.Id),
|
||||
Name: group.Name,
|
||||
IsOn: group.IsOn,
|
||||
}
|
||||
}
|
||||
|
||||
pbReceivers = append(pbReceivers, &pb.MessageReceiver{
|
||||
Id: int64(receiver.Id),
|
||||
ClusterId: int64(receiver.ClusterId),
|
||||
NodeId: int64(receiver.NodeId),
|
||||
ServerId: int64(receiver.ServerId),
|
||||
Type: receiver.Type,
|
||||
ParamsJSON: receiver.Params,
|
||||
MessageRecipient: pbRecipient,
|
||||
MessageRecipientGroup: pbRecipientGroup,
|
||||
})
|
||||
}
|
||||
return &pb.FindAllEnabledMessageReceiversResponse{MessageReceivers: pbReceivers}, nil
|
||||
}
|
||||
|
||||
// DeleteMessageReceiver 删除接收者
|
||||
func (this *MessageReceiverService) DeleteMessageReceiver(ctx context.Context, req *pb.DeleteMessageReceiverRequest) (*pb.RPCSuccess, error) {
|
||||
_, err := this.ValidateAdmin(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
err = models.SharedMessageReceiverDAO.DisableMessageReceiver(tx, req.MessageReceiverId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return this.Success()
|
||||
}
|
||||
|
||||
// CountAllEnabledMessageReceivers 计算接收者数量
|
||||
func (this *MessageReceiverService) CountAllEnabledMessageReceivers(ctx context.Context, req *pb.CountAllEnabledMessageReceiversRequest) (*pb.RPCCountResponse, error) {
|
||||
_, err := this.ValidateAdmin(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if len(req.Role) == 0 {
|
||||
req.Role = nodeconfigs.NodeRoleNode
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
count, err := models.SharedMessageReceiverDAO.CountAllEnabledReceivers(tx, req.Role, req.NodeClusterId, req.NodeId, req.ServerId, "")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return this.SuccessCount(count)
|
||||
}
|
||||
@@ -1,235 +0,0 @@
|
||||
package services
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
||||
"github.com/TeaOSLab/EdgeAPI/internal/utils"
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||
)
|
||||
|
||||
// MessageRecipientService 消息接收人服务
|
||||
type MessageRecipientService struct {
|
||||
BaseService
|
||||
}
|
||||
|
||||
// CreateMessageRecipient 创建接收人
|
||||
func (this *MessageRecipientService) CreateMessageRecipient(ctx context.Context, req *pb.CreateMessageRecipientRequest) (*pb.CreateMessageRecipientResponse, error) {
|
||||
_, err := this.ValidateAdmin(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
recipientId, err := models.SharedMessageRecipientDAO.CreateRecipient(tx, req.AdminId, req.MessageMediaInstanceId, req.User, req.MessageRecipientGroupIds, req.Description, req.TimeFrom, req.TimeTo)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &pb.CreateMessageRecipientResponse{MessageRecipientId: recipientId}, nil
|
||||
}
|
||||
|
||||
// UpdateMessageRecipient 修改接收人
|
||||
func (this *MessageRecipientService) UpdateMessageRecipient(ctx context.Context, req *pb.UpdateMessageRecipientRequest) (*pb.RPCSuccess, error) {
|
||||
_, err := this.ValidateAdmin(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
err = models.SharedMessageRecipientDAO.UpdateRecipient(tx, req.MessageRecipientId, req.AdminId, req.MessageMediaInstanceId, req.User, req.MessageRecipientGroupIds, req.Description, req.TimeFrom, req.TimeTo, req.IsOn)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return this.Success()
|
||||
}
|
||||
|
||||
// DeleteMessageRecipient 删除接收人
|
||||
func (this *MessageRecipientService) DeleteMessageRecipient(ctx context.Context, req *pb.DeleteMessageRecipientRequest) (*pb.RPCSuccess, error) {
|
||||
_, err := this.ValidateAdmin(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
err = models.SharedMessageRecipientDAO.DisableMessageRecipient(tx, req.MessageRecipientId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return this.Success()
|
||||
}
|
||||
|
||||
// CountAllEnabledMessageRecipients 计算接收人数量
|
||||
func (this *MessageRecipientService) CountAllEnabledMessageRecipients(ctx context.Context, req *pb.CountAllEnabledMessageRecipientsRequest) (*pb.RPCCountResponse, error) {
|
||||
_, err := this.ValidateAdmin(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
count, err := models.SharedMessageRecipientDAO.CountAllEnabledRecipients(tx, req.AdminId, req.MessageRecipientGroupId, req.MediaType, req.Keyword)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return this.SuccessCount(count)
|
||||
}
|
||||
|
||||
// ListEnabledMessageRecipients 列出单页接收人
|
||||
func (this *MessageRecipientService) ListEnabledMessageRecipients(ctx context.Context, req *pb.ListEnabledMessageRecipientsRequest) (*pb.ListEnabledMessageRecipientsResponse, error) {
|
||||
_, err := this.ValidateAdmin(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
var cacheMap = utils.NewCacheMap()
|
||||
recipients, err := models.SharedMessageRecipientDAO.ListAllEnabledRecipients(tx, req.AdminId, req.MessageRecipientGroupId, req.MediaType, req.Keyword, req.Offset, req.Size)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
pbRecipients := []*pb.MessageRecipient{}
|
||||
for _, recipient := range recipients {
|
||||
// admin
|
||||
admin, err := models.SharedAdminDAO.FindEnabledAdmin(tx, int64(recipient.AdminId))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if admin == nil {
|
||||
continue
|
||||
}
|
||||
pbAdmin := &pb.Admin{
|
||||
Id: int64(admin.Id),
|
||||
Fullname: admin.Fullname,
|
||||
Username: admin.Username,
|
||||
IsOn: admin.IsOn,
|
||||
}
|
||||
|
||||
// 媒介实例
|
||||
instance, err := models.SharedMessageMediaInstanceDAO.FindEnabledMessageMediaInstance(tx, int64(recipient.InstanceId), cacheMap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if instance == nil {
|
||||
continue
|
||||
}
|
||||
pbInstance := &pb.MessageMediaInstance{
|
||||
Id: int64(instance.Id),
|
||||
IsOn: instance.IsOn,
|
||||
Name: instance.Name,
|
||||
Description: instance.Description,
|
||||
}
|
||||
|
||||
// 分组
|
||||
pbGroups := []*pb.MessageRecipientGroup{}
|
||||
groupIds := recipient.DecodeGroupIds()
|
||||
if len(groupIds) > 0 {
|
||||
for _, groupId := range groupIds {
|
||||
group, err := models.SharedMessageRecipientGroupDAO.FindEnabledMessageRecipientGroup(tx, groupId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if group != nil {
|
||||
pbGroups = append(pbGroups, &pb.MessageRecipientGroup{
|
||||
Id: int64(group.Id),
|
||||
Name: group.Name,
|
||||
IsOn: group.IsOn,
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pbRecipients = append(pbRecipients, &pb.MessageRecipient{
|
||||
Id: int64(recipient.Id),
|
||||
Admin: pbAdmin,
|
||||
User: recipient.User,
|
||||
MessageMediaInstance: pbInstance,
|
||||
IsOn: recipient.IsOn,
|
||||
MessageRecipientGroups: pbGroups,
|
||||
Description: recipient.Description,
|
||||
TimeFrom: recipient.TimeFrom,
|
||||
TimeTo: recipient.TimeTo,
|
||||
})
|
||||
}
|
||||
|
||||
return &pb.ListEnabledMessageRecipientsResponse{MessageRecipients: pbRecipients}, nil
|
||||
}
|
||||
|
||||
// FindEnabledMessageRecipient 查找单个接收人信息
|
||||
func (this *MessageRecipientService) FindEnabledMessageRecipient(ctx context.Context, req *pb.FindEnabledMessageRecipientRequest) (*pb.FindEnabledMessageRecipientResponse, error) {
|
||||
_, err := this.ValidateAdmin(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
var cacheMap = utils.NewCacheMap()
|
||||
recipient, err := models.SharedMessageRecipientDAO.FindEnabledMessageRecipient(tx, req.MessageRecipientId, cacheMap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if recipient == nil {
|
||||
return &pb.FindEnabledMessageRecipientResponse{MessageRecipient: nil}, nil
|
||||
}
|
||||
|
||||
// admin
|
||||
admin, err := models.SharedAdminDAO.FindEnabledAdmin(tx, int64(recipient.AdminId))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if admin == nil {
|
||||
return &pb.FindEnabledMessageRecipientResponse{MessageRecipient: nil}, nil
|
||||
}
|
||||
pbAdmin := &pb.Admin{
|
||||
Id: int64(admin.Id),
|
||||
Fullname: admin.Fullname,
|
||||
Username: admin.Username,
|
||||
IsOn: admin.IsOn,
|
||||
}
|
||||
|
||||
// 媒介实例
|
||||
instance, err := models.SharedMessageMediaInstanceDAO.FindEnabledMessageMediaInstance(tx, int64(recipient.InstanceId), cacheMap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if instance == nil {
|
||||
return &pb.FindEnabledMessageRecipientResponse{MessageRecipient: nil}, nil
|
||||
}
|
||||
pbInstance := &pb.MessageMediaInstance{
|
||||
Id: int64(instance.Id),
|
||||
IsOn: instance.IsOn,
|
||||
Name: instance.Name,
|
||||
Description: instance.Description,
|
||||
}
|
||||
|
||||
// 分组
|
||||
pbGroups := []*pb.MessageRecipientGroup{}
|
||||
groupIds := recipient.DecodeGroupIds()
|
||||
if len(groupIds) > 0 {
|
||||
for _, groupId := range groupIds {
|
||||
group, err := models.SharedMessageRecipientGroupDAO.FindEnabledMessageRecipientGroup(tx, groupId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if group != nil {
|
||||
pbGroups = append(pbGroups, &pb.MessageRecipientGroup{
|
||||
Id: int64(group.Id),
|
||||
Name: group.Name,
|
||||
IsOn: group.IsOn,
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return &pb.FindEnabledMessageRecipientResponse{MessageRecipient: &pb.MessageRecipient{
|
||||
Id: int64(recipient.Id),
|
||||
User: recipient.User,
|
||||
Admin: pbAdmin,
|
||||
MessageMediaInstance: pbInstance,
|
||||
IsOn: recipient.IsOn,
|
||||
MessageRecipientGroups: pbGroups,
|
||||
Description: recipient.Description,
|
||||
TimeFrom: recipient.TimeFrom,
|
||||
TimeTo: recipient.TimeTo,
|
||||
}}, nil
|
||||
}
|
||||
@@ -1,106 +0,0 @@
|
||||
package services
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||
)
|
||||
|
||||
// 消息接收人分组
|
||||
type MessageRecipientGroupService struct {
|
||||
BaseService
|
||||
}
|
||||
|
||||
// 创建分组
|
||||
func (this *MessageRecipientGroupService) CreateMessageRecipientGroup(ctx context.Context, req *pb.CreateMessageRecipientGroupRequest) (*pb.CreateMessageRecipientGroupResponse, error) {
|
||||
_, err := this.ValidateAdmin(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
groupId, err := models.SharedMessageRecipientGroupDAO.CreateGroup(tx, req.Name)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &pb.CreateMessageRecipientGroupResponse{MessageRecipientGroupId: groupId}, nil
|
||||
}
|
||||
|
||||
// 修改分组
|
||||
func (this *MessageRecipientGroupService) UpdateMessageRecipientGroup(ctx context.Context, req *pb.UpdateMessageRecipientGroupRequest) (*pb.RPCSuccess, error) {
|
||||
_, err := this.ValidateAdmin(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
err = models.SharedMessageRecipientGroupDAO.UpdateGroup(tx, req.MessageRecipientGroupId, req.Name, req.IsOn)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return this.Success()
|
||||
}
|
||||
|
||||
// 查找所有可用的分组
|
||||
func (this *MessageRecipientGroupService) FindAllEnabledMessageRecipientGroups(ctx context.Context, req *pb.FindAllEnabledMessageRecipientGroupsRequest) (*pb.FindAllEnabledMessageRecipientGroupsResponse, error) {
|
||||
_, err := this.ValidateAdmin(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
groups, err := models.SharedMessageRecipientGroupDAO.FindAllEnabledGroups(tx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
pbGroups := []*pb.MessageRecipientGroup{}
|
||||
for _, group := range groups {
|
||||
pbGroups = append(pbGroups, &pb.MessageRecipientGroup{
|
||||
Id: int64(group.Id),
|
||||
Name: group.Name,
|
||||
IsOn: group.IsOn,
|
||||
})
|
||||
}
|
||||
|
||||
return &pb.FindAllEnabledMessageRecipientGroupsResponse{MessageRecipientGroups: pbGroups}, nil
|
||||
}
|
||||
|
||||
// 删除分组
|
||||
func (this *MessageRecipientGroupService) DeleteMessageRecipientGroup(ctx context.Context, req *pb.DeleteMessageRecipientGroupRequest) (*pb.RPCSuccess, error) {
|
||||
_, err := this.ValidateAdmin(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
err = models.SharedMessageRecipientGroupDAO.DisableMessageRecipientGroup(tx, req.MessageRecipientGroupId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return this.Success()
|
||||
}
|
||||
|
||||
// 查找单个分组信息
|
||||
func (this *MessageRecipientGroupService) FindEnabledMessageRecipientGroup(ctx context.Context, req *pb.FindEnabledMessageRecipientGroupRequest) (*pb.FindEnabledMessageRecipientGroupResponse, error) {
|
||||
_, err := this.ValidateAdmin(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
group, err := models.SharedMessageRecipientGroupDAO.FindEnabledMessageRecipientGroup(tx, req.MessageRecipientGroupId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if group == nil {
|
||||
return &pb.FindEnabledMessageRecipientGroupResponse{MessageRecipientGroup: nil}, nil
|
||||
}
|
||||
pbGroup := &pb.MessageRecipientGroup{
|
||||
Id: int64(group.Id),
|
||||
IsOn: group.IsOn,
|
||||
Name: group.Name,
|
||||
}
|
||||
return &pb.FindEnabledMessageRecipientGroupResponse{MessageRecipientGroup: pbGroup}, nil
|
||||
}
|
||||
@@ -1,275 +0,0 @@
|
||||
package services
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
||||
"github.com/TeaOSLab/EdgeAPI/internal/utils"
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||
"github.com/iwind/TeaGo/types"
|
||||
)
|
||||
|
||||
// MessageTaskService 消息发送任务服务
|
||||
type MessageTaskService struct {
|
||||
BaseService
|
||||
}
|
||||
|
||||
// CreateMessageTask 创建任务
|
||||
func (this *MessageTaskService) CreateMessageTask(ctx context.Context, req *pb.CreateMessageTaskRequest) (*pb.CreateMessageTaskResponse, error) {
|
||||
_, err := this.ValidateAdmin(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
taskId, err := models.SharedMessageTaskDAO.CreateMessageTask(tx, req.MessageRecipientId, req.MessageMediaInstanceId, req.User, req.Subject, req.Body, req.IsPrimary)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &pb.CreateMessageTaskResponse{MessageTaskId: taskId}, nil
|
||||
}
|
||||
|
||||
// DeleteMessageTask 删除消息任务
|
||||
func (this *MessageTaskService) DeleteMessageTask(ctx context.Context, req *pb.DeleteMessageTaskRequest) (*pb.RPCSuccess, error) {
|
||||
_, err := this.ValidateAdmin(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
err = models.SharedMessageTaskDAO.DisableMessageTask(tx, req.MessageTaskId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return this.Success()
|
||||
}
|
||||
|
||||
// FindEnabledMessageTask 读取消息任务状态
|
||||
func (this *MessageTaskService) FindEnabledMessageTask(ctx context.Context, req *pb.FindEnabledMessageTaskRequest) (*pb.FindEnabledMessageTaskResponse, error) {
|
||||
_, err := this.ValidateAdmin(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
var cacheMap = utils.NewCacheMap()
|
||||
task, err := models.SharedMessageTaskDAO.FindEnabledMessageTask(tx, req.MessageTaskId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if task == nil {
|
||||
return &pb.FindEnabledMessageTaskResponse{MessageTask: nil}, nil
|
||||
}
|
||||
|
||||
var pbRecipient *pb.MessageRecipient
|
||||
if task.RecipientId > 0 {
|
||||
recipient, err := models.SharedMessageRecipientDAO.FindEnabledMessageRecipient(tx, int64(task.RecipientId), cacheMap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if recipient == nil || !recipient.IsOn {
|
||||
// 如果发送人已经删除或者禁用,则删除此消息
|
||||
err = models.SharedMessageTaskDAO.DisableMessageTask(tx, int64(task.Id))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &pb.FindEnabledMessageTaskResponse{MessageTask: nil}, nil
|
||||
}
|
||||
|
||||
// 媒介
|
||||
instance, err := models.SharedMessageMediaInstanceDAO.FindEnabledMessageMediaInstance(tx, int64(recipient.InstanceId), cacheMap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if instance == nil || !instance.IsOn {
|
||||
// 如果媒介实例已经删除或者禁用,则删除此消息
|
||||
err = models.SharedMessageTaskDAO.DisableMessageTask(tx, int64(task.Id))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &pb.FindEnabledMessageTaskResponse{MessageTask: nil}, nil
|
||||
}
|
||||
|
||||
pbRecipient = &pb.MessageRecipient{
|
||||
|
||||
MessageMediaInstance: &pb.MessageMediaInstance{
|
||||
Id: int64(instance.Id),
|
||||
MessageMedia: &pb.MessageMedia{
|
||||
Type: instance.MediaType,
|
||||
},
|
||||
ParamsJSON: instance.Params,
|
||||
},
|
||||
}
|
||||
} else { // 没有指定既定的接收人
|
||||
// 媒介
|
||||
instance, err := models.SharedMessageMediaInstanceDAO.FindEnabledMessageMediaInstance(tx, int64(task.InstanceId), cacheMap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if instance == nil || !instance.IsOn {
|
||||
// 如果媒介实例已经删除或者禁用,则删除此消息
|
||||
err = models.SharedMessageTaskDAO.DisableMessageTask(tx, int64(task.Id))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &pb.FindEnabledMessageTaskResponse{MessageTask: nil}, nil
|
||||
}
|
||||
pbRecipient = &pb.MessageRecipient{
|
||||
Id: 0,
|
||||
MessageMediaInstance: &pb.MessageMediaInstance{
|
||||
Id: int64(instance.Id),
|
||||
MessageMedia: &pb.MessageMedia{
|
||||
Type: instance.MediaType,
|
||||
},
|
||||
ParamsJSON: instance.Params,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
var result = &pb.MessageTaskResult{}
|
||||
if len(task.Result) > 0 {
|
||||
err = json.Unmarshal(task.Result, result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
return &pb.FindEnabledMessageTaskResponse{MessageTask: &pb.MessageTask{
|
||||
Id: int64(task.Id),
|
||||
MessageRecipient: pbRecipient,
|
||||
User: task.User,
|
||||
Subject: task.Subject,
|
||||
Body: task.Body,
|
||||
CreatedAt: int64(task.CreatedAt),
|
||||
Status: int32(task.Status),
|
||||
SentAt: int64(task.SentAt),
|
||||
Result: result,
|
||||
}}, nil
|
||||
}
|
||||
|
||||
// CountMessageTasksWithStatus 计算某个状态的消息任务数量
|
||||
func (this *MessageTaskService) CountMessageTasksWithStatus(ctx context.Context, req *pb.CountMessageTasksWithStatusRequest) (*pb.RPCCountResponse, error) {
|
||||
_, err := this.ValidateAdmin(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
count, err := models.SharedMessageTaskDAO.CountMessageTasksWithStatus(tx, types.Int(req.Status))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return this.SuccessCount(count)
|
||||
}
|
||||
|
||||
// ListMessageTasksWithStatus 根据状态列出某页任务
|
||||
func (this *MessageTaskService) ListMessageTasksWithStatus(ctx context.Context, req *pb.ListMessageTasksWithStatusRequest) (*pb.ListMessageTasksWithStatusResponse, error) {
|
||||
_, err := this.ValidateAdmin(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
var cacheMap = utils.NewCacheMap()
|
||||
tasks, err := models.SharedMessageTaskDAO.ListMessageTasksWithStatus(tx, types.Int(req.Status), req.Offset, req.Size)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var pbTasks = []*pb.MessageTask{}
|
||||
for _, task := range tasks {
|
||||
var pbRecipient *pb.MessageRecipient
|
||||
if task.RecipientId > 0 {
|
||||
recipient, err := models.SharedMessageRecipientDAO.FindEnabledMessageRecipient(tx, int64(task.RecipientId), cacheMap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if recipient == nil || !recipient.IsOn {
|
||||
// 如果发送人已经删除或者禁用,则删除此消息
|
||||
err = models.SharedMessageTaskDAO.DisableMessageTask(tx, int64(task.Id))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
continue
|
||||
}
|
||||
|
||||
// 媒介
|
||||
instance, err := models.SharedMessageMediaInstanceDAO.FindEnabledMessageMediaInstance(tx, int64(recipient.InstanceId), cacheMap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if instance == nil || !instance.IsOn {
|
||||
// 如果媒介实例已经删除或者禁用,则删除此消息
|
||||
err = models.SharedMessageTaskDAO.DisableMessageTask(tx, int64(task.Id))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
continue
|
||||
}
|
||||
|
||||
pbRecipient = &pb.MessageRecipient{
|
||||
Id: int64(recipient.Id),
|
||||
User: recipient.User,
|
||||
MessageMediaInstance: &pb.MessageMediaInstance{
|
||||
Id: int64(instance.Id),
|
||||
Name: instance.Name,
|
||||
MessageMedia: &pb.MessageMedia{
|
||||
Type: instance.MediaType,
|
||||
},
|
||||
ParamsJSON: instance.Params,
|
||||
RateJSON: instance.Rate,
|
||||
},
|
||||
}
|
||||
} else { // 没有指定既定的接收人
|
||||
// 媒介
|
||||
instance, err := models.SharedMessageMediaInstanceDAO.FindEnabledMessageMediaInstance(tx, int64(task.InstanceId), cacheMap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if instance == nil || !instance.IsOn {
|
||||
// 如果媒介实例已经删除或者禁用,则删除此消息
|
||||
err = models.SharedMessageTaskDAO.DisableMessageTask(tx, int64(task.Id))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
continue
|
||||
}
|
||||
pbRecipient = &pb.MessageRecipient{
|
||||
Id: 0,
|
||||
MessageMediaInstance: &pb.MessageMediaInstance{
|
||||
Id: int64(instance.Id),
|
||||
Name: instance.Name,
|
||||
MessageMedia: &pb.MessageMedia{
|
||||
Type: instance.MediaType,
|
||||
},
|
||||
ParamsJSON: instance.Params,
|
||||
RateJSON: instance.Rate,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
var result = &pb.MessageTaskResult{}
|
||||
if len(task.Result) > 0 {
|
||||
err = json.Unmarshal(task.Result, result)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
pbTasks = append(pbTasks, &pb.MessageTask{
|
||||
Id: int64(task.Id),
|
||||
MessageRecipient: pbRecipient,
|
||||
User: task.User,
|
||||
Subject: task.Subject,
|
||||
Body: task.Body,
|
||||
CreatedAt: int64(task.CreatedAt),
|
||||
Status: types.Int32(task.Status),
|
||||
SentAt: int64(task.SentAt),
|
||||
Result: result,
|
||||
})
|
||||
}
|
||||
|
||||
return &pb.ListMessageTasksWithStatusResponse{MessageTasks: pbTasks}, nil
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
// Copyright 2023 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
|
||||
//go:build !plus
|
||||
|
||||
package services
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||
)
|
||||
|
||||
// SendMessageTask 发送某个消息任务
|
||||
func (this *MessageTaskService) SendMessageTask(ctx context.Context, req *pb.SendMessageTaskRequest) (*pb.SendMessageTaskResponse, error) {
|
||||
return nil, this.NotImplementedYet()
|
||||
}
|
||||
@@ -1,99 +0,0 @@
|
||||
package services
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
||||
"github.com/TeaOSLab/EdgeAPI/internal/utils"
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||
)
|
||||
|
||||
// MessageTaskLogService 消息发送日志相关服务
|
||||
type MessageTaskLogService struct {
|
||||
BaseService
|
||||
}
|
||||
|
||||
// CountMessageTaskLogs 计算日志数量
|
||||
func (this *MessageTaskLogService) CountMessageTaskLogs(ctx context.Context, req *pb.CountMessageTaskLogsRequest) (*pb.RPCCountResponse, error) {
|
||||
_, err := this.ValidateAdmin(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var tx = this.NullTx()
|
||||
count, err := models.SharedMessageTaskLogDAO.CountLogs(tx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return this.SuccessCount(count)
|
||||
}
|
||||
|
||||
// ListMessageTaskLogs 列出当页日志
|
||||
func (this *MessageTaskLogService) ListMessageTaskLogs(ctx context.Context, req *pb.ListMessageTaskLogsRequest) (*pb.ListMessageTaskLogsResponse, error) {
|
||||
_, err := this.ValidateAdmin(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var tx = this.NullTx()
|
||||
var cacheMap = utils.NewCacheMap()
|
||||
logs, err := models.SharedMessageTaskLogDAO.ListLogs(tx, req.Offset, req.Size)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
pbLogs := []*pb.MessageTaskLog{}
|
||||
for _, log := range logs {
|
||||
task, err := models.SharedMessageTaskDAO.FindEnabledMessageTask(tx, int64(log.TaskId))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if task == nil {
|
||||
continue
|
||||
}
|
||||
|
||||
var pbRecipient *pb.MessageRecipient
|
||||
if task.RecipientId > 0 {
|
||||
recipient, err := models.SharedMessageRecipientDAO.FindEnabledMessageRecipient(tx, int64(task.RecipientId), cacheMap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if recipient != nil {
|
||||
pbRecipient = &pb.MessageRecipient{
|
||||
Id: int64(recipient.Id),
|
||||
User: recipient.User,
|
||||
}
|
||||
task.InstanceId = recipient.InstanceId
|
||||
}
|
||||
}
|
||||
|
||||
instance, err := models.SharedMessageMediaInstanceDAO.FindEnabledMessageMediaInstance(tx, int64(task.InstanceId), cacheMap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if instance == nil {
|
||||
continue
|
||||
}
|
||||
|
||||
pbLogs = append(pbLogs, &pb.MessageTaskLog{
|
||||
Id: int64(log.Id),
|
||||
CreatedAt: int64(log.CreatedAt),
|
||||
IsOk: log.IsOk,
|
||||
Error: log.Error,
|
||||
Response: log.Response,
|
||||
MessageTask: &pb.MessageTask{
|
||||
Id: int64(task.Id),
|
||||
MessageRecipient: pbRecipient,
|
||||
MessageMediaInstance: &pb.MessageMediaInstance{
|
||||
Id: int64(instance.Id),
|
||||
Name: instance.Name,
|
||||
},
|
||||
User: task.User,
|
||||
Subject: task.Subject,
|
||||
Body: task.Body,
|
||||
CreatedAt: int64(task.CreatedAt),
|
||||
Status: int32(task.Status),
|
||||
SentAt: int64(task.SentAt),
|
||||
Result: nil,
|
||||
},
|
||||
})
|
||||
}
|
||||
return &pb.ListMessageTaskLogsResponse{MessageTaskLogs: pbLogs}, nil
|
||||
}
|
||||
Reference in New Issue
Block a user