Module: Pinterest::Endpoints::Users

Included in:
Client
Defined in:
lib/pinterest/endpoints/users.rb

Overview

Users related endpoints.

Instance Method Summary collapse

Instance Method Details

#follow_interest(interest) ⇒ Boolean

Starts following a interest.

NOTE: This is currently returning 405 on the platform. Review ASAP.

Parameters:

  • interest (Fixnum|String)

    The interest id.

Returns:

  • (Boolean)

    true if operation succeeded, false otherwise.

Raises:

  • (ArgumentError)


103
104
105
106
107
108
109
110
# File 'lib/pinterest/endpoints/users.rb', line 103

def follow_interest(interest)
  # Validate the interest id
  raise(ArgumentError, "You have to specify a interest or its id.") unless interest
  interest = interest.id if interest.is_a?(::Pinterest::Interest)

  # Perform the request
  perform_network_request(method: "POST", query: {interest: interest}, url: versioned_url("/me/following/interests/"))
end

#follow_user(user) ⇒ Boolean

Follows a user.

Parameters:

  • user (Fixnum|String)

    The username or user id.

Returns:

  • (Boolean)

    true if operation succeeded, false otherwise.



60
61
62
63
64
65
66
67
# File 'lib/pinterest/endpoints/users.rb', line 60

def follow_user(user)
  # Validate the user id
  user = validate_user(user)

  # Perform the request
  perform_network_request(method: "POST", body: {user: user}, url: versioned_url("/me/following/users/"))
  true
end

#followers(fields: nil, cursor: nil, limit: nil) ⇒ Pinterest::Collection

Returns the list of users who follow the authenticated user.

Parameters:

  • fields (Array) (defaults to: nil)

    A list of fields to return.

  • cursor (String) (defaults to: nil)

    A cursor to paginate results, obtained by a previous call.

  • limit (Fixnum) (defaults to: nil)

    The maximum number of objects to return.

Returns:



42
43
44
# File 'lib/pinterest/endpoints/users.rb', line 42

def followers(fields: nil, cursor: nil, limit: nil)
  get_users_collection("/me/followers/", fields, cursor, limit)
end

#following_users(fields: nil, cursor: nil, limit: nil) ⇒ Pinterest::Collection

Returns the list of users followed by the authenticated user.

Parameters:

  • fields (Array) (defaults to: nil)

    A list of fields to return.

  • cursor (String) (defaults to: nil)

    A cursor to paginate results, obtained by a previous call.

  • limit (Fixnum) (defaults to: nil)

    The maximum number of objects to return.

Returns:



52
53
54
# File 'lib/pinterest/endpoints/users.rb', line 52

def following_users(fields: nil, cursor: nil, limit: nil)
  get_users_collection("/me/following/users/", fields, cursor, limit)
end

#interests(cursor: nil, limit: nil) ⇒ Pinterest::Collection

Returns the list of interests (topics) followed by the authenticated user.

Parameters:

  • cursor (String) (defaults to: nil)

    A cursor to paginate results, obtained by a previous call.

  • limit (Fixnum) (defaults to: nil)

    The maximum number of objects to return.

Returns:



87
88
89
90
91
92
93
94
95
96
# File 'lib/pinterest/endpoints/users.rb', line 87

def interests(cursor: nil, limit: nil)
  # Perform request
  data = perform_network_request(
    url: versioned_url("/me/following/interests/"),
    pagination: true, cursor: cursor, limit: limit
  )

  # Create the collection
  ::Pinterest::Collection.new(data.body, cursor, limit) { |interest| ::Pinterest::Interest.create(interest) }
end

#me(fields: nil) ⇒ Pinterest::User

Returns information about the authenticated user.

Parameters:

  • fields (Array) (defaults to: nil)

    A list of fields to return.

Returns:



14
15
16
17
18
19
20
# File 'lib/pinterest/endpoints/users.rb', line 14

def me(fields: nil)
  fields = ensure_user_fields(fields)

  # Perform request and create the user
  data = perform_network_request(url: versioned_url("/me/"), query: cleanup_params({fields: fields.join(",")}))
  ::Pinterest::User.create(data.body["data"])
end

#unfollow_interest(interest) ⇒ Boolean

Stops following a interest.

NOTE: This is currently returning 404 on the platform. Review ASAP.

Parameters:

  • interest (Fixnum|String)

    The interest id.

Returns:

  • (Boolean)

    true if operation succeeded, false otherwise.

Raises:

  • (ArgumentError)


117
118
119
120
121
122
123
124
# File 'lib/pinterest/endpoints/users.rb', line 117

def unfollow_interest(interest)
  # Validate the interest id
  raise(ArgumentError, "You have to specify a interest or its id.") unless interest
  interest = interest.id if interest.is_a?(::Pinterest::Interest)

  # Perform the request
  perform_network_request(method: "DELETE", url: versioned_url("/me/following/interests/#{interest}/"))
end

#unfollow_user(user) ⇒ Boolean

Stops following a user.

Parameters:

  • user (Fixnum|String)

    The username or user id.

Returns:

  • (Boolean)

    true if operation succeeded, false otherwise.



73
74
75
76
77
78
79
80
# File 'lib/pinterest/endpoints/users.rb', line 73

def unfollow_user(user)
  # Validate the user id
  user = validate_user(user)

  # Perform the request
  perform_network_request(method: "DELETE", url: versioned_url("/me/following/users/#{user}/"))
  true
end

#user(user, fields: nil) ⇒ Pinterest::User

Returns information about a user.

Parameters:

  • user (Fixnum|String)

    The username or user id.

  • fields (Array) (defaults to: nil)

    A list of fields to return.

Returns:



27
28
29
30
31
32
33
34
# File 'lib/pinterest/endpoints/users.rb', line 27

def user(user, fields: nil)
  user = validate_user(user)
  fields = ensure_user_fields(fields)

  # Perform request and create the user
  data = perform_network_request(url: versioned_url("/users/#{user}/"), query: cleanup_params({fields: fields.join(",")}))
  ::Pinterest::User.create(data.body["data"])
end