package benefactoraddressservice import ( "context" param "git.gocasts.ir/ebhomengo/niki/param/benefactor/address" richerror "git.gocasts.ir/ebhomengo/niki/pkg/rich_error" ) func (s Service) Update(ctx context.Context, req param.UpdateAddressRequest) (param.UpdateAddressResponse, error) { const op = "benefactoraddressservice.Update" if fieldErrors, vErr := s.vld.ValidateUpdateAddress(ctx, req); vErr != nil { return param.UpdateAddressResponse{FieldErrors: fieldErrors}, richerror.New(op).WithErr(vErr) } address, gErr := s.repo.GetAddressByID(ctx, req.ID) if gErr != nil { return param.UpdateAddressResponse{}, richerror.New(op).WithErr(gErr) } address.ID = req.ID address.PostalCode = req.PostalCode address.Address = req.Address address.Name = req.Name address.Lat = req.Lat address.Lon = req.Lon address.CityID = req.CityID address.BenefactorID = req.BenefactorID uErr := s.repo.UpdateAddress(ctx, address) if uErr != nil { return param.UpdateAddressResponse{}, richerror.New(op).WithErr(uErr) } return param.UpdateAddressResponse{}, nil }