def update(deal)
      validate_type!(deal)
      params = extract_params!(deal, :id)
      id = params[:id]

      attributes = sanitize(deal)
      _, _, root = @client.put("/deals/#{id}", attributes)

      Deal.new(root[:data])
    end
def update(deal)
      validate_type!(deal)
      params = extract_params!(deal, :id)
      id = params[:id]

      attributes = sanitize(deal)
      _, _, root = @client.put("/deals/#{id}", attributes)

      Deal.new(root[:data])
    end
Update a deal

 put '/deals/{id}'

 Updates deal information
 If the specified deal does not exist, the request will return an error
 <figure class="notice">
 In order to modify tags used on a record, you need to supply the entire set
 `tags` are replaced every time they are used in a request
 </figure>

 @param deal [Deal, Hash] Either object of the Deal type or Hash. This object's attributes describe the object to be updated.
 @return [Deal] The resulting object represting updated resource.