127 lines
4.0 KiB
Go
127 lines
4.0 KiB
Go
![]() |
package service
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
|
||
|
cml04eventer "git.espin.casa/albert/cml04-eventer"
|
||
|
"git.espin.casa/albert/cml04-gdm-int/pkg/api"
|
||
|
"google.golang.org/protobuf/proto"
|
||
|
)
|
||
|
|
||
|
const (
|
||
|
NSQTopic string = "RSM"
|
||
|
NSQChannel string = "cml04-l2-rsm-in"
|
||
|
)
|
||
|
|
||
|
type IService interface {
|
||
|
BdReqTelegram(ctx context.Context, telegramData *api.BdRollDataReq) (res *api.BdRollDataRes, err error)
|
||
|
UrReqTelegram(ctx context.Context, telegramData *api.UrRollDataReq) (res *api.UrRollDataRes, err error)
|
||
|
EdReqTelegram(ctx context.Context, telegramData *api.EdRollDataReq) (res *api.EdRollDataRes, err error)
|
||
|
UfReqTelegram(ctx context.Context, telegramData *api.UfRollDataReq) (res *api.UfRollDataRes, err error)
|
||
|
PublishBdRollData(ctx context.Context, telegramData *api.BdRollData) (err error)
|
||
|
PublishUrRollData(ctx context.Context, telegramData *api.UrRollData) (err error)
|
||
|
PublishEdRollData(ctx context.Context, telegramData *api.EdRollData) (err error)
|
||
|
PublishUfRollData(ctx context.Context, telegramData *api.UfRollData) (err error)
|
||
|
}
|
||
|
|
||
|
type service struct {
|
||
|
client api.RollDataServiceClient
|
||
|
publisher cml04eventer.Publisher
|
||
|
}
|
||
|
|
||
|
// PublishBdRollData implements IService.
|
||
|
func (s *service) PublishBdRollData(ctx context.Context, telegramData *api.BdRollData) (err error) {
|
||
|
// create meta data
|
||
|
meta := cml04eventer.NewMetaData()
|
||
|
// set telegram id
|
||
|
meta.Set("telegram_id", 9000)
|
||
|
// marshal telegram data
|
||
|
data, err := proto.Marshal(telegramData)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
// set event data
|
||
|
evt := cml04eventer.NewEvent(NSQChannel, NSQTopic, meta, data)
|
||
|
// publish event data
|
||
|
return s.publisher.PublishEvent(evt)
|
||
|
}
|
||
|
|
||
|
// PublishUrRollData implements IService.
|
||
|
func (s *service) PublishUrRollData(ctx context.Context, telegramData *api.UrRollData) (err error) {
|
||
|
// create meta data
|
||
|
meta := cml04eventer.NewMetaData()
|
||
|
// set telegram id
|
||
|
meta.Set("telegram_id", 9001)
|
||
|
// marshal telegram data
|
||
|
data, err := proto.Marshal(telegramData)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
// set event data
|
||
|
evt := cml04eventer.NewEvent(NSQChannel, NSQTopic, meta, data)
|
||
|
// publish event data
|
||
|
return s.publisher.PublishEvent(evt)
|
||
|
}
|
||
|
|
||
|
// PublishEdRollData implements IService.
|
||
|
func (s *service) PublishEdRollData(ctx context.Context, telegramData *api.EdRollData) (err error) {
|
||
|
// create meta data
|
||
|
meta := cml04eventer.NewMetaData()
|
||
|
// set telegram id
|
||
|
meta.Set("telegram_id", 9002)
|
||
|
// marshal telegram data
|
||
|
data, err := proto.Marshal(telegramData)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
// set event data
|
||
|
evt := cml04eventer.NewEvent(NSQChannel, NSQTopic, meta, data)
|
||
|
// publish event data
|
||
|
return s.publisher.PublishEvent(evt)
|
||
|
|
||
|
}
|
||
|
|
||
|
// PublishUfRollData implements IService.
|
||
|
func (s *service) PublishUfRollData(ctx context.Context, telegramData *api.UfRollData) (err error) {
|
||
|
// create meta data
|
||
|
meta := cml04eventer.NewMetaData()
|
||
|
// set telegram id
|
||
|
meta.Set("telegram_id", 9003)
|
||
|
// marshal telegram data
|
||
|
data, err := proto.Marshal(telegramData)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
// set event data
|
||
|
evt := cml04eventer.NewEvent(NSQChannel, NSQTopic, meta, data)
|
||
|
// publish event data
|
||
|
return s.publisher.PublishEvent(evt)
|
||
|
}
|
||
|
|
||
|
// EdReqTelegram implements IService.
|
||
|
func (svc *service) EdReqTelegram(ctx context.Context, req *api.EdRollDataReq) (res *api.EdRollDataRes, err error) {
|
||
|
return svc.client.EdRollData(ctx, req)
|
||
|
}
|
||
|
|
||
|
// UfReqTelegram implements IService.
|
||
|
func (svc *service) UfReqTelegram(ctx context.Context, req *api.UfRollDataReq) (res *api.UfRollDataRes, err error) {
|
||
|
return svc.client.UfRollData(ctx, req)
|
||
|
}
|
||
|
|
||
|
// UrReqTelegram implements IService.
|
||
|
func (svc *service) UrReqTelegram(ctx context.Context, req *api.UrRollDataReq) (res *api.UrRollDataRes, err error) {
|
||
|
return svc.client.UrRollData(ctx, req)
|
||
|
}
|
||
|
|
||
|
// BdReqTelegram implements IService.
|
||
|
func (svc *service) BdReqTelegram(ctx context.Context, req *api.BdRollDataReq) (res *api.BdRollDataRes, err error) {
|
||
|
return svc.client.BdRollData(ctx, req)
|
||
|
}
|
||
|
|
||
|
func NewService(client api.RollDataServiceClient, publisher cml04eventer.Publisher) IService {
|
||
|
return &service{
|
||
|
client: client,
|
||
|
publisher: publisher,
|
||
|
}
|
||
|
}
|