package adminkindboxreqservice import ( "context" adminkindboxparam "git.gocasts.ir/ebhomengo/niki/param/admin/kind_box" param "git.gocasts.ir/ebhomengo/niki/param/admin/kind_box_req" richerror "git.gocasts.ir/ebhomengo/niki/pkg/rich_error" ) func (s Service) Accept(ctx context.Context, req param.KindBoxReqAcceptRequest) (param.KindBoxReqAcceptResponse, error) { const op = "adminkindboxreqservice.Accept" err := s.repo.AcceptKindBoxReq(ctx, req.ID, req.CountAccepted) if err != nil { return param.KindBoxReqAcceptResponse{}, richerror.New(op).WithErr(err) } // fire new event to create a kind-box. kindBoxReq, gErr := s.repo.GetByID(ctx, req.ID) if gErr != nil { return param.KindBoxReqAcceptResponse{}, richerror.New(op).WithErr(gErr) } _, kErr := s.kindBoxClient.AddKindBoxAfterAcceptingRequest(ctx, adminkindboxparam.KindBoxAddAfterAcceptingReqRequest{ BenefactorID: kindBoxReq.BenefactorID, KindBoxReqID: kindBoxReq.ID, Type: kindBoxReq.KindBoxType, Count: kindBoxReq.CountAccepted, }) if kErr != nil { return param.KindBoxReqAcceptResponse{}, richerror.New(op).WithErr(kErr) } return param.KindBoxReqAcceptResponse{ KindBoxReqID: kindBoxReq.ID, KindBoxReqStatus: kindBoxReq.Status, CountRequested: kindBoxReq.CountRequested, CountAccepted: kindBoxReq.CountAccepted, ReferDate: kindBoxReq.ReferDate, AddressID: kindBoxReq.AddressID, }, nil }