mirror of
https://github.com/nov/fb_graph2
synced 2023-03-27 23:22:15 -04:00
more user edges
This commit is contained in:
parent
95f699fb7c
commit
1fd1825e03
14 changed files with 160 additions and 3 deletions
|
@ -19,8 +19,8 @@ module FbGraph2
|
|||
self.raw_attributes = attributes
|
||||
Array(self.class.registered_attributes).each do |type, keys|
|
||||
keys.each do |key|
|
||||
if attributes.include? key
|
||||
raw = attributes[key]
|
||||
if raw.present?
|
||||
value = case type
|
||||
when :raw
|
||||
raw
|
||||
|
@ -48,6 +48,10 @@ module FbGraph2
|
|||
Application.new raw[:id], raw
|
||||
when :user
|
||||
User.new raw[:id], raw
|
||||
when :picture
|
||||
Struct::Picture.new raw[:data]
|
||||
when :album
|
||||
Album.new raw[:id], raw
|
||||
else
|
||||
# NOTE: handle these attributes in each class
|
||||
next
|
||||
|
|
12
lib/fb_graph2/edge/invitable_friends.rb
Normal file
12
lib/fb_graph2/edge/invitable_friends.rb
Normal file
|
@ -0,0 +1,12 @@
|
|||
module FbGraph2
|
||||
class Edge
|
||||
module InvitableFriends
|
||||
def invitable_friends(params = {})
|
||||
invitable_friends = self.edge :invitable_friends, params
|
||||
invitable_friends.collect do |invitable_friend|
|
||||
Struct::InvitableFriend.new invitable_friend
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
12
lib/fb_graph2/edge/notifications.rb
Normal file
12
lib/fb_graph2/edge/notifications.rb
Normal file
|
@ -0,0 +1,12 @@
|
|||
module FbGraph2
|
||||
class Edge
|
||||
module Notifications
|
||||
def notifications(params = {})
|
||||
notifications = self.edge :notifications, params
|
||||
notifications.collect do |notification|
|
||||
Notification.new notification[:id], notification
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
12
lib/fb_graph2/edge/permissions.rb
Normal file
12
lib/fb_graph2/edge/permissions.rb
Normal file
|
@ -0,0 +1,12 @@
|
|||
module FbGraph2
|
||||
class Edge
|
||||
module Permissions
|
||||
def permissions(params = {})
|
||||
permissions = self.edge :permissions, params
|
||||
permissions.collect do |permission|
|
||||
Struct::Permission.new permission
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
18
lib/fb_graph2/edge/photos.rb
Normal file
18
lib/fb_graph2/edge/photos.rb
Normal file
|
@ -0,0 +1,18 @@
|
|||
module FbGraph2
|
||||
class Edge
|
||||
module Photos
|
||||
def photos(*args)
|
||||
params = args.extract_options!
|
||||
photos = self.edge :photos, params, edge_scope: args.first
|
||||
photos.collect do |photo|
|
||||
Photo.new(photo[:id], photo).authenticate self.access_token
|
||||
end
|
||||
end
|
||||
|
||||
def photo!(params = {})
|
||||
photo = post params, edge: :photos
|
||||
Photo.new(photo[:id], params.merge(photo)).authenticate self.access_token
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
12
lib/fb_graph2/edge/picture.rb
Normal file
12
lib/fb_graph2/edge/picture.rb
Normal file
|
@ -0,0 +1,12 @@
|
|||
module FbGraph2
|
||||
class Edge
|
||||
module Picture
|
||||
def picture(*args)
|
||||
params = args.extract_options!
|
||||
params[:type] = args.first if args.first
|
||||
picture = self.get params.merge(redirect: false), edge: :picture
|
||||
Struct::Picture.new picture[:data]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -8,7 +8,7 @@ module FbGraph2
|
|||
|
||||
def initialize(id, attributes = {})
|
||||
self.id = id
|
||||
assign attributes if respond_to?(:assign)
|
||||
assign attributes if respond_to? :assign
|
||||
end
|
||||
|
||||
def authenticate(access_token)
|
||||
|
@ -36,6 +36,10 @@ module FbGraph2
|
|||
)
|
||||
end
|
||||
|
||||
def destroy(params = {}, options = {})
|
||||
delete params, options
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def http_client
|
||||
|
@ -54,6 +58,12 @@ module FbGraph2
|
|||
end
|
||||
end
|
||||
|
||||
def delete(params = {}, options = {})
|
||||
handle_response do
|
||||
http_client.delete build_endpoint(params), build_params(params)
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def edge_for(edge, params = {}, options = {})
|
||||
|
|
17
lib/fb_graph2/notification.rb
Normal file
17
lib/fb_graph2/notification.rb
Normal file
|
@ -0,0 +1,17 @@
|
|||
module FbGraph2
|
||||
class Notification < Node
|
||||
register_attributes(
|
||||
raw: [:title, :link, :unread],
|
||||
time: [:created_time, :updated_time],
|
||||
profile: [:from],
|
||||
user: [:to],
|
||||
application: [:application],
|
||||
custom: [:object]
|
||||
)
|
||||
|
||||
def initialize(id, attributes = {})
|
||||
super
|
||||
# TODO: handle custom attributes.
|
||||
end
|
||||
end
|
||||
end
|
12
lib/fb_graph2/photo.rb
Normal file
12
lib/fb_graph2/photo.rb
Normal file
|
@ -0,0 +1,12 @@
|
|||
module FbGraph2
|
||||
class Photo < Node
|
||||
register_attributes(
|
||||
raw: [:backdated_time_granularity, :height, :icon, :link, :name, :page_story_id, :picture, :position, :source, :width],
|
||||
time: [:backdated_time, :created_time, :updated_time],
|
||||
page: [:place],
|
||||
profile: [:from],
|
||||
album: [:album],
|
||||
custom: [:images, :name_tags]
|
||||
)
|
||||
end
|
||||
end
|
15
lib/fb_graph2/struct.rb
Normal file
15
lib/fb_graph2/struct.rb
Normal file
|
@ -0,0 +1,15 @@
|
|||
module FbGraph2
|
||||
class Struct
|
||||
def self.inherited(klass)
|
||||
klass.include AttributeAssigner
|
||||
end
|
||||
|
||||
def initialize(attributes = {})
|
||||
assign attributes if respond_to? :assign
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Dir[File.join(__dir__, 'struct/*.rb')].each do |file|
|
||||
require file
|
||||
end
|
10
lib/fb_graph2/struct/invitable_friend.rb
Normal file
10
lib/fb_graph2/struct/invitable_friend.rb
Normal file
|
@ -0,0 +1,10 @@
|
|||
module FbGraph2
|
||||
class Struct
|
||||
class InvitableFriend < Struct
|
||||
register_attributes(
|
||||
raw: [:id, :name],
|
||||
picture: [:picture]
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
9
lib/fb_graph2/struct/permission.rb
Normal file
9
lib/fb_graph2/struct/permission.rb
Normal file
|
@ -0,0 +1,9 @@
|
|||
module FbGraph2
|
||||
class Struct
|
||||
class Permission < Struct
|
||||
register_attributes(
|
||||
raw: [:permission, :status]
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
9
lib/fb_graph2/struct/picture.rb
Normal file
9
lib/fb_graph2/struct/picture.rb
Normal file
|
@ -0,0 +1,9 @@
|
|||
module FbGraph2
|
||||
class Struct
|
||||
class Picture < Struct
|
||||
register_attributes(
|
||||
raw: [:url, :is_silhouette, :height, :width]
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
|
@ -13,10 +13,15 @@ module FbGraph2
|
|||
include Edge::Games
|
||||
include Edge::Home
|
||||
include Edge::Interests
|
||||
include Edge::InvitableFriends
|
||||
include Edge::Likes
|
||||
include Edge::Links
|
||||
include Edge::Movies
|
||||
include Edge::Music
|
||||
include Edge::Notifications
|
||||
include Edge::Permissions
|
||||
include Edge::Picture
|
||||
include Edge::Photos
|
||||
include Edge::Posts
|
||||
include Edge::Statuses
|
||||
include Edge::Tagged
|
||||
|
|
Loading…
Reference in a new issue