code: func (h *ProposalProcessorHandler) Handle(requestContext *RequestContext, clientContext *ClientContext) {
  	//Get proposal processor, if not supplied then use selection service to get available peers as endorser
  	if len(requestContext.Opts.Targets) == 0 {
  		var selectionOpts []options.Opt
  		if requestContext.SelectionFilter != nil {
  			selectionOpts = append(selectionOpts, selectopts.WithPeerFilter(requestContext.SelectionFilter))
  		}
  		if requestContext.PeerSorter != nil {
  			selectionOpts = append(selectionOpts, selectopts.WithPeerSorter(requestContext.PeerSorter))
  		}
  
  		endorsers, err := clientContext.Selection.GetEndorsersForChaincode(newInvocationChain(requestContext), selectionOpts...)
  		if err != nil {
  			requestContext.Error = errors.WithMessage(err, "Failed to get endorsing peers")
  			return
  		}
  		requestContext.Opts.Targets = endorsers
  	}
  
  	//Delegate to next step if any
  	if h.next != nil {
  		h.next.Handle(requestContext, clientContext)
  	}
  }
docs: //Handle selects proposal processors