|
@@ -3,7 +3,6 @@ package client_bus_http
|
|
|
|
|
|
|
|
import (
|
|
import (
|
|
|
"encoding/json"
|
|
"encoding/json"
|
|
|
- "fmt"
|
|
|
|
|
"io"
|
|
"io"
|
|
|
"net/http"
|
|
"net/http"
|
|
|
"strings"
|
|
"strings"
|
|
@@ -12,6 +11,7 @@ import (
|
|
|
|
|
|
|
|
mL0 "gitp78su.ipnodns.ru/svi/kern/v4/lev0"
|
|
mL0 "gitp78su.ipnodns.ru/svi/kern/v4/lev0"
|
|
|
mKs "gitp78su.ipnodns.ru/svi/kern/v4/lev0/core_spec"
|
|
mKs "gitp78su.ipnodns.ru/svi/kern/v4/lev0/core_spec"
|
|
|
|
|
+ "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs"
|
|
|
"gitp78su.ipnodns.ru/svi/kern/v4/lev0/etypes/ebool"
|
|
"gitp78su.ipnodns.ru/svi/kern/v4/lev0/etypes/ebool"
|
|
|
"gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
|
|
"gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
|
|
|
mL1 "gitp78su.ipnodns.ru/svi/kern/v4/lev1"
|
|
mL1 "gitp78su.ipnodns.ru/svi/kern/v4/lev1"
|
|
@@ -68,7 +68,7 @@ func (sf *ClientBusHttp) Unsubscribe(handler bus_spec.IBusHandlerSubscribe) {
|
|
|
|
|
|
|
|
req := &dot.UnsubReq{
|
|
req := &dot.UnsubReq{
|
|
|
HandlerName_: handler.Name().Get(),
|
|
HandlerName_: handler.Name().Get(),
|
|
|
- Uuid_: _uuid.String(),
|
|
|
|
|
|
|
+ Uuid_: defs.Str(defs.AStr(_uuid.String())),
|
|
|
}
|
|
}
|
|
|
req.SelfCheck()
|
|
req.SelfCheck()
|
|
|
binReq, err := json.MarshalIndent(req, "", " ")
|
|
binReq, err := json.MarshalIndent(req, "", " ")
|
|
@@ -86,14 +86,17 @@ func (sf *ClientBusHttp) Unsubscribe(handler bus_spec.IBusHandlerSubscribe) {
|
|
|
resp := &dot.UnsubResp{}
|
|
resp := &dot.UnsubResp{}
|
|
|
err = json.Unmarshal(resBody.Ok(), resp)
|
|
err = json.Unmarshal(resBody.Ok(), resp)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
- sf.log.Err("Unsubscribe(): in unmarshal response, err=\n\t%v", err)
|
|
|
|
|
|
|
+ err:=defs.NewErr("Unsubscribe(): in unmarshal response, err=\n\t%v", err)
|
|
|
|
|
+ sf.log.Err(err)
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
if resp.Status_ != "ok" {
|
|
if resp.Status_ != "ok" {
|
|
|
- sf.log.Err("Unsubscribe(): resp!='ok', err=\n\t%v", resp.Status_)
|
|
|
|
|
|
|
+ err:=defs.NewErr("Unsubscribe(): resp!='ok', err=\n\t%v", resp.Status_)
|
|
|
|
|
+ sf.log.Err(err)
|
|
|
}
|
|
}
|
|
|
if resp.Uuid_ != req.Uuid_ {
|
|
if resp.Uuid_ != req.Uuid_ {
|
|
|
- sf.log.Err("Unsubscribe(): resp uuid(%v) bad", resp.Uuid_)
|
|
|
|
|
|
|
+ err := defs.NewErr("Unsubscribe(): resp uuid(%v) bad", resp.Uuid_)
|
|
|
|
|
+ sf.log.Err(err)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -115,21 +118,21 @@ func (sf *ClientBusHttp) Subscribe(handler bus_spec.IBusHandlerSubscribe) mKs.IR
|
|
|
|
|
|
|
|
resBody := sf.makePost(hReq)
|
|
resBody := sf.makePost(hReq)
|
|
|
if resBody.IsErr() {
|
|
if resBody.IsErr() {
|
|
|
- err := fmt.Errorf("ClientBusHttp.Subscribe(): in make POST-request, err=\n\t%w", err)
|
|
|
|
|
|
|
+ err := defs.NewErr("ClientBusHttp.Subscribe(): in make POST-request, err=\n\t%w", err)
|
|
|
return mL0.NewErr[mKs.EBool](err)
|
|
return mL0.NewErr[mKs.EBool](err)
|
|
|
}
|
|
}
|
|
|
resp := &dot.SubscribeResp{}
|
|
resp := &dot.SubscribeResp{}
|
|
|
err = json.Unmarshal(resBody.Ok(), resp)
|
|
err = json.Unmarshal(resBody.Ok(), resp)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
- err := fmt.Errorf("ClientBusHttp.Subscribe(): in unmarshal response, err=\n\t%v", err)
|
|
|
|
|
|
|
+ err := defs.NewErr("ClientBusHttp.Subscribe(): in unmarshal response, err=\n\t%v", err)
|
|
|
return mL0.NewErr[mKs.EBool](err)
|
|
return mL0.NewErr[mKs.EBool](err)
|
|
|
}
|
|
}
|
|
|
if resp.Status_ != "ok" {
|
|
if resp.Status_ != "ok" {
|
|
|
- err := fmt.Errorf("ClientBusHttp.Subscribe(): resp!='ok', err=\n\t%v", resp.Status_)
|
|
|
|
|
|
|
+ err := defs.NewErr("ClientBusHttp.Subscribe(): resp!='ok', err=\n\t%v", resp.Status_)
|
|
|
return mL0.NewErr[mKs.EBool](err)
|
|
return mL0.NewErr[mKs.EBool](err)
|
|
|
}
|
|
}
|
|
|
if resp.Uuid_ != req.Uuid_ {
|
|
if resp.Uuid_ != req.Uuid_ {
|
|
|
- err := fmt.Errorf("ClientBusHttp.Subscribe(): resp uuid(%v) bad", resp.Uuid_)
|
|
|
|
|
|
|
+ err := defs.NewErr("ClientBusHttp.Subscribe(): resp uuid(%v) bad", resp.Uuid_)
|
|
|
return mL0.NewErr[mKs.EBool](err)
|
|
return mL0.NewErr[mKs.EBool](err)
|
|
|
}
|
|
}
|
|
|
res := sf.bus.Subscribe(handler)
|
|
res := sf.bus.Subscribe(handler)
|
|
@@ -142,7 +145,7 @@ func (sf *ClientBusHttp) SendRequest(topic bus_ent.ITopicFix, binReq []byte) mL0
|
|
|
mL1.FnHassert(helpers.Hassert)(err == nil, "ClientBusHttp.SendRequest(): in generate UUID v6, err=\n\t%v", err)
|
|
mL1.FnHassert(helpers.Hassert)(err == nil, "ClientBusHttp.SendRequest(): in generate UUID v6, err=\n\t%v", err)
|
|
|
req := &dot.ServeReq{
|
|
req := &dot.ServeReq{
|
|
|
Topic_: topic.Get(),
|
|
Topic_: topic.Get(),
|
|
|
- Uuid_: _uuid.String(),
|
|
|
|
|
|
|
+ Uuid_: defs.AStr(_uuid.String()),
|
|
|
BinReq_: binReq,
|
|
BinReq_: binReq,
|
|
|
}
|
|
}
|
|
|
req.SelfCheck()
|
|
req.SelfCheck()
|
|
@@ -154,21 +157,21 @@ func (sf *ClientBusHttp) SendRequest(topic bus_ent.ITopicFix, binReq []byte) mL0
|
|
|
|
|
|
|
|
resBody := sf.makePost(hReq)
|
|
resBody := sf.makePost(hReq)
|
|
|
if resBody.IsErr() {
|
|
if resBody.IsErr() {
|
|
|
- err := fmt.Errorf("ClientBusHttp.SendRequest(): in make request, err=\n\t%w", err)
|
|
|
|
|
|
|
+ err := defs.NewErr("ClientBusHttp.SendRequest(): in make request, err=\n\t%w", err)
|
|
|
return mL0.WrapErr(resBody, err)
|
|
return mL0.WrapErr(resBody, err)
|
|
|
}
|
|
}
|
|
|
resp := &dot.ServeResp{}
|
|
resp := &dot.ServeResp{}
|
|
|
err = json.Unmarshal(resBody.Ok(), resp)
|
|
err = json.Unmarshal(resBody.Ok(), resp)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
- err := fmt.Errorf("ClientBusHttp.SendRequest(): in unmarshal response, err=\n\t%v", err)
|
|
|
|
|
|
|
+ err := defs.NewErr("ClientBusHttp.SendRequest(): in unmarshal response, err=\n\t%v", err)
|
|
|
return mL0.NewErr[[]byte](err)
|
|
return mL0.NewErr[[]byte](err)
|
|
|
}
|
|
}
|
|
|
if resp.Status_ != "ok" {
|
|
if resp.Status_ != "ok" {
|
|
|
- err := fmt.Errorf("ClientBusHttp.SendRequest(): resp!='ok', err=\n\t%v", resp.Status_)
|
|
|
|
|
|
|
+ err := defs.NewErr("ClientBusHttp.SendRequest(): resp!='ok', err=\n\t%v", resp.Status_)
|
|
|
return mL0.NewErr[[]byte](err)
|
|
return mL0.NewErr[[]byte](err)
|
|
|
}
|
|
}
|
|
|
if resp.Uuid_ != req.Uuid_ {
|
|
if resp.Uuid_ != req.Uuid_ {
|
|
|
- err := fmt.Errorf("ClientBusHttp.SendRequest(): resp uuid(%v) bad", resp.Uuid_)
|
|
|
|
|
|
|
+ err := defs.NewErr("ClientBusHttp.SendRequest(): resp uuid(%v) bad", resp.Uuid_)
|
|
|
return mL0.NewErr[[]byte](err)
|
|
return mL0.NewErr[[]byte](err)
|
|
|
}
|
|
}
|
|
|
return mL0.NewOk(resp.BinResp_)
|
|
return mL0.NewOk(resp.BinResp_)
|
|
@@ -177,11 +180,12 @@ func (sf *ClientBusHttp) SendRequest(topic bus_ent.ITopicFix, binReq []byte) mL0
|
|
|
// RegisterServe -- регистрирует в локальной шине обработчик.
|
|
// RegisterServe -- регистрирует в локальной шине обработчик.
|
|
|
func (sf *ClientBusHttp) RegisterServe(handler bus_spec.IBusHandlerServe) mL0.IResult[mKs.EBool] {
|
|
func (sf *ClientBusHttp) RegisterServe(handler bus_spec.IBusHandlerServe) mL0.IResult[mKs.EBool] {
|
|
|
if handler == nil {
|
|
if handler == nil {
|
|
|
- return mL0.NewErr[mKs.EBool](fmt.Errorf("ClientBusHttp.RegisterServe(): handler==nil"))
|
|
|
|
|
|
|
+ err:=defs.NewErr("ClientBusHttp.RegisterServe(): handler==nil")
|
|
|
|
|
+ return mL0.NewErr[mKs.EBool](err)
|
|
|
}
|
|
}
|
|
|
res := sf.bus.RegisterServe(handler)
|
|
res := sf.bus.RegisterServe(handler)
|
|
|
if res.IsErr() {
|
|
if res.IsErr() {
|
|
|
- err := fmt.Errorf("ClientBusHttp.RegisterServe(): in register serve to bus, err=\n\t%v", res.Err())
|
|
|
|
|
|
|
+ err := defs.NewErr("ClientBusHttp.RegisterServe(): in register serve to bus, err=\n\t%v", res.Err())
|
|
|
return mL0.NewErr[mKs.EBool](err)
|
|
return mL0.NewErr[mKs.EBool](err)
|
|
|
}
|
|
}
|
|
|
return mL0.NewOk(ebool.NewEBool(true))
|
|
return mL0.NewOk(ebool.NewEBool(true))
|
|
@@ -205,21 +209,21 @@ func (sf *ClientBusHttp) Publish(topic bus_ent.ITopicFix, binMsg []byte) mL0.IRe
|
|
|
|
|
|
|
|
resBody := sf.makePost(hReq)
|
|
resBody := sf.makePost(hReq)
|
|
|
if resBody.IsErr() {
|
|
if resBody.IsErr() {
|
|
|
- err := fmt.Errorf("ClientBusHttp.Publish(): in make request, err=\n\t%w", err)
|
|
|
|
|
|
|
+ err := defs.NewErr("ClientBusHttp.Publish(): in make request, err=\n\t%w", err)
|
|
|
return mL0.NewErr[mKs.EBool](err)
|
|
return mL0.NewErr[mKs.EBool](err)
|
|
|
}
|
|
}
|
|
|
resp := &dot.PublishResp{}
|
|
resp := &dot.PublishResp{}
|
|
|
err = json.Unmarshal(resBody.Ok(), resp)
|
|
err = json.Unmarshal(resBody.Ok(), resp)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
- err := fmt.Errorf("ClientBusHttp.Publish(): in unmarshal response, err=\n\t%v", err)
|
|
|
|
|
|
|
+ err := defs.NewErr("ClientBusHttp.Publish(): in unmarshal response, err=\n\t%v", err)
|
|
|
return mL0.NewErr[mKs.EBool](err)
|
|
return mL0.NewErr[mKs.EBool](err)
|
|
|
}
|
|
}
|
|
|
if resp.Status_ != "ok" {
|
|
if resp.Status_ != "ok" {
|
|
|
- err := fmt.Errorf("ClientBusHttp.Publish(): resp!='ok', err=\n\t%v", resp.Status_)
|
|
|
|
|
|
|
+ err := defs.NewErr("ClientBusHttp.Publish(): resp!='ok', err=\n\t%v", resp.Status_)
|
|
|
return mL0.NewErr[mKs.EBool](err)
|
|
return mL0.NewErr[mKs.EBool](err)
|
|
|
}
|
|
}
|
|
|
if resp.Uuid_ != req.Uuid_ {
|
|
if resp.Uuid_ != req.Uuid_ {
|
|
|
- err := fmt.Errorf("ClientBusHttp.Publish(): resp uuid(%v) bad", resp.Uuid_)
|
|
|
|
|
|
|
+ err := defs.NewErr("ClientBusHttp.Publish(): resp uuid(%v) bad", resp.Uuid_)
|
|
|
return mL0.NewErr[mKs.EBool](err)
|
|
return mL0.NewErr[mKs.EBool](err)
|
|
|
}
|
|
}
|
|
|
return mL0.NewOk(ebool.NewEBool(true))
|
|
return mL0.NewOk(ebool.NewEBool(true))
|
|
@@ -230,21 +234,21 @@ func (sf *ClientBusHttp) makePost(hReq *http.Request) mKs.IResult[[]byte] {
|
|
|
hReq.Header.Add("Content-Type", "application/json")
|
|
hReq.Header.Add("Content-Type", "application/json")
|
|
|
_resp, err := http.DefaultClient.Do(hReq)
|
|
_resp, err := http.DefaultClient.Do(hReq)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
- err := fmt.Errorf("ClientBusHttp.makePost(): after request, err=\n\t%w", err)
|
|
|
|
|
|
|
+ err := defs.NewErr("ClientBusHttp.makePost(): after request, err=\n\t%w", err)
|
|
|
return mL0.NewErr[[]byte](err)
|
|
return mL0.NewErr[[]byte](err)
|
|
|
}
|
|
}
|
|
|
defer func() {
|
|
defer func() {
|
|
|
_ = _resp.Body.Close()
|
|
_ = _resp.Body.Close()
|
|
|
}()
|
|
}()
|
|
|
if _resp.StatusCode != http.StatusOK {
|
|
if _resp.StatusCode != http.StatusOK {
|
|
|
- err := fmt.Errorf("ClientBusHttp.makePost(): url=%q, status=%q",
|
|
|
|
|
|
|
+ err := defs.NewErr("ClientBusHttp.makePost(): url=%q, status=%q",
|
|
|
hReq.URL, _resp.Status)
|
|
hReq.URL, _resp.Status)
|
|
|
return mL0.NewErr[[]byte](err)
|
|
return mL0.NewErr[[]byte](err)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
binBody, err := io.ReadAll(_resp.Body)
|
|
binBody, err := io.ReadAll(_resp.Body)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
- err := fmt.Errorf("ClientBusHttp.makePost(): after read body, err=\n\t%v",
|
|
|
|
|
|
|
+ err := defs.NewErr("ClientBusHttp.makePost(): after read body, err=\n\t%v",
|
|
|
err)
|
|
err)
|
|
|
return mL0.NewErr[[]byte](err)
|
|
return mL0.NewErr[[]byte](err)
|
|
|
}
|
|
}
|