| 123456789101112131415161718192021222324252627282930313233343536373839 |
- // package serv_public -- сервер запросов на публикацию
- package serv_public
- import (
- "context"
- "fmt"
- "log"
- "p78git.ddns.net/svi/gobus/api/netapi"
- "p78git.ddns.net/svi/gobus/pkg/types"
- )
- // ServPublic -- отвечает на запросы публикации
- type ServPublic struct {
- serv types.IService
- dictTopic types.IDictTopic
- }
- // NewServPublic -- возвращает новый публикатор
- func NewServPublic(serv types.IService) (*ServPublic, error) {
- log.Printf("NewServPublic()\n")
- if serv == nil {
- return nil, fmt.Errorf("NewServPublic(): IService==nil")
- }
- sf := &ServPublic{
- serv: serv,
- dictTopic: serv.DictTopic(),
- }
- return sf, nil
- }
- // Public -- публикация сообщения в топик
- func (sf *ServPublic) Public(ctx context.Context, req *netapi.PublicRequest) (*netapi.DefaultResponse, error) {
- err := sf.dictTopic.Public(req.TopicMsg)
- if err != nil {
- return nil, fmt.Errorf("ServPublic.Public(): in set topic, err=\n\t%w", err)
- }
- return &netapi.DefaultResponse{}, nil
- }
|