code: func (m *Message) send(pToken, rToken string) (*Response, error) {
  	url := fmt.Sprintf("%s/messages.json", APIEndpoint)
  
  	var f func(string, string, string) (*http.Request, error)
  	if m.attachment == nil {
  		// Use a multipart request if a file should be sent
  		f = m.urlEncodedRequest
  	} else {
  		// Use a url encoded request otherwise
  		f = m.multipartRequest
  	}
  
  	// Post the from and check the headers of the response
  	req, err := f(pToken, rToken, url)
  	if err != nil {
  		return nil, err
  	}
  
  	resp := &Response{}
  	if err := do(req, resp, true); err != nil {
  		return nil, err
  	}
  
  	return resp, nil
  }
docs: // Send sends the message using the pushover and the recipient tokens.