diff --git a/delivery/http_server/admin/kind_box/get_all.go b/delivery/http_server/admin/kind_box/get_all.go index 8aea7084..5e4a671f 100644 --- a/delivery/http_server/admin/kind_box/get_all.go +++ b/delivery/http_server/admin/kind_box/get_all.go @@ -3,7 +3,9 @@ package adminkindboxhandler import ( "net/http" + parambenefactor "git.gocasts.ir/ebhomengo/niki/param/admin/benefactor" param "git.gocasts.ir/ebhomengo/niki/param/admin/kind_box" + paramrefertime "git.gocasts.ir/ebhomengo/niki/param/admin/refer_time" arrayfunc "git.gocasts.ir/ebhomengo/niki/pkg/array_func" httpmsg "git.gocasts.ir/ebhomengo/niki/pkg/http_msg" queryparam "git.gocasts.ir/ebhomengo/niki/pkg/query_param" @@ -44,6 +46,10 @@ import ( // @Router /admins/kindboxes [get]. func (h Handler) GetAll(c echo.Context) error { var req param.KindBoxGetAllRequest + bnfChan := make(chan map[uint]parambenefactor.Data) + deliverRtChan := make(chan map[uint]paramrefertime.Data) + rerunRtChan := make(chan map[uint]paramrefertime.Data) + errChan := make(chan error) if bErr := c.Bind(&req); bErr != nil { return echo.NewHTTPError(http.StatusBadRequest) @@ -63,25 +69,35 @@ func (h Handler) GetAll(c echo.Context) error { return echo.NewHTTPError(code, msg) } + go func() { + defer close(bnfChan) + benefactors, err := h.adminBenefactorAggSvc.GetByIDs(c.Request().Context(), getBenefactorIDs(kindBoxes.Data)) + bnfChan <- benefactors + errChan <- err + }() - benefactors, bErr := h.adminBenefactorAggSvc.GetByIDs(c.Request().Context(), getBenefactorIDs(kindBoxes.Data)) - if bErr != nil { - msg, code := httpmsg.Error(sErr) + go func() { + defer close(rerunRtChan) + deliverReferTime, err := h.referTimeAggSvc.GetReferTimeByIDs(c.Request().Context(), getDeliverReferTimeIDs(kindBoxes.Data)) + deliverRtChan <- deliverReferTime + errChan <- err + }() - return echo.NewHTTPError(code, msg) - } + go func() { + defer close(deliverRtChan) + returnReferTime, err := h.referTimeAggSvc.GetReferTimeByIDs(c.Request().Context(), getReturnReferTimeIDs(kindBoxes.Data)) + rerunRtChan <- returnReferTime + errChan <- err + }() - deliverReferTime, dRErr := h.referTimeAggSvc.GetReferTimeByIDs(c.Request().Context(), getDeliverReferTimeIDs(kindBoxes.Data)) - if dRErr != nil { - msg, code := httpmsg.Error(dRErr) - - return echo.NewHTTPError(code, msg) - } - - returnReferTime, rRErr := h.referTimeAggSvc.GetReferTimeByIDs(c.Request().Context(), getReturnReferTimeIDs(kindBoxes.Data)) - if rRErr != nil { - msg, code := httpmsg.Error(rRErr) + benefactors := <-bnfChan + deliverReferTime := <-rerunRtChan + returnReferTime := <-deliverRtChan + if err, ok := <-errChan; ok { + defer close(errChan) + } else { + msg, code := httpmsg.Error(err) return echo.NewHTTPError(code, msg) }