// 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 }