class Twitter::Client
@@FRIENDSHIP_URIS = {
:add => '/friendships/create',
:remove => '/friendships/destroy',
}
# Provides access to the Twitter Friendship API.
#
# You can add and remove friends using this method.
#
# action can be any of the following values:
# * :add - to add a friend, you would use this action value
# * :remove - to remove an existing friend from your friends list use this.
#
# The value must be either the user to befriend or defriend's
# screen name, integer unique user ID or Twitter::User object representation.
#
# Examples:
# screen_name = 'dictionary'
# client.friend(:add, 'dictionary')
# client.friend(:remove, 'dictionary')
# id = 1260061
# client.friend(:add, id)
# client.friend(:remove, id)
# user = Twitter::User.find(id, client)
# client.friend(:add, user)
# client.friend(:remove, user)
def friend(action, value)
raise ArgumentError, "Invalid friend action provided: #{action}" unless @@FRIENDSHIP_URIS.keys.member?(action)
value = value.to_i unless value.is_a?(String)
uri = "#{@@FRIENDSHIP_URIS[action]}/#{value}.json"
response = http_connect {|conn| create_http_post_request(uri) }
bless_model(Twitter::User.unmarshal(response.body))
end
end