class Enceladus::Account

Constants

RESOURCE_ATTRIBUTES

Attributes

password[RW]
request_token[RW]

Public Class Methods

new(username, password) click to toggle source

Responsible for authenticating TMDb users. Authentication of users follows the workflow: www.themoviedb.org/documentation/api/sessions This method hits the following api endpoints:

Example:

Enceladus::Account.new("bruna_ferraz", "dajhhd")
# File lib/enceladus/models/account.rb, line 19
def initialize(username, password)
  self.username = username
  self.password = password
  start_authentication_workflow
end

Public Instance Methods

add_to_watchlist!(movie_id) click to toggle source

Adds movie to accounts watchlist. Example:

account = Enceladus::Account.new("bruna_ferraz", "dajhhd")
account.add_to_watchlist!(23444)
# File lib/enceladus/models/account.rb, line 51
def add_to_watchlist!(movie_id)
  toggle_movie_watchlist(movie_id, true)
end
favorite_movie!(movie_id) click to toggle source

Adds movie to accounts favorite list. Example:

account = Enceladus::Account.new("bruna_ferraz", "dajhhd")
account.favorite_movie!(23444)
# File lib/enceladus/models/account.rb, line 31
def favorite_movie!(movie_id)
  toggle_favorite_movie(movie_id, true)
end
favorite_movies() click to toggle source

Return a list of account’s favorite movies. The returned movies are wrapped into a Enceladus::MovieCollection. Example:

account = Enceladus::Account.new("belinha", "dajhhd")
account.favorite_movies
# File lib/enceladus/models/account.rb, line 72
def favorite_movies
  Enceladus::MovieCollection.new("account/#{id}/favorite/movies", { session_id: session_id }) if authenticated?
end
rated_movies() click to toggle source

Return a list of account’s rated movies. The returned movies are wrapped into a Enceladus::MovieCollection. Example:

account = Enceladus::Account.new("belinha", "dajhhd")
account.rated_movies
# File lib/enceladus/models/account.rb, line 83
def rated_movies
  Enceladus::MovieCollection.new("account/#{id}/rated/movies", { session_id: session_id }) if authenticated?
end
remove_from_watchlist!(movie_id) click to toggle source

Removes movie to accounts watchlist. Example:

account = Enceladus::Account.new("bruna_ferraz", "dajhhd")
account.remove_from_watchlist!(23444)
# File lib/enceladus/models/account.rb, line 61
def remove_from_watchlist!(movie_id)
  toggle_movie_watchlist(movie_id, false)
end
unfavorite_movie!(movie_id) click to toggle source

Removes movie to accounts favorite list. Example:

account = Enceladus::Account.new("bruna_ferraz", "dajhhd")
account.unfavorite_movie!(23444)
# File lib/enceladus/models/account.rb, line 41
def unfavorite_movie!(movie_id)
  toggle_favorite_movie(movie_id, false)
end
watchlist() click to toggle source

Return the account’s watchlist The returned movies are wrapped into a Enceladus::MovieCollection. Example:

account = Enceladus::Account.new("belinha", "hjgsss")
account.watchlist
# File lib/enceladus/models/account.rb, line 94
def watchlist
  Enceladus::MovieCollection.new("account/#{id}/watchlist/movies", { session_id: session_id }) if authenticated?
end

Private Instance Methods

authenticate() click to toggle source
# File lib/enceladus/models/account.rb, line 134
def authenticate
  params = { request_token: request_token, username: username, password: password }
  Enceladus::Requester.get("authentication/token/validate_with_login", params).success
end
authenticated?() click to toggle source
# File lib/enceladus/models/account.rb, line 117
def authenticated?
  id && session_id
end
open_session() click to toggle source
# File lib/enceladus/models/account.rb, line 139
def open_session
  params = { request_token: request_token }
  self.session_id = Enceladus::Requester.get("authentication/session/new", params).session_id
end
request_authentication_token() click to toggle source
# File lib/enceladus/models/account.rb, line 129
def request_authentication_token
  token_info = Enceladus::Requester.get("authentication/token/new")
  self.request_token = token_info.request_token
end
start_authentication_workflow() click to toggle source
# File lib/enceladus/models/account.rb, line 121
def start_authentication_workflow
  request_authentication_token
  authenticate
  open_session
  rebuild_single_resource(Enceladus::Requester.get("account", { session_id: session_id }))
  self.password = self.request_token = nil
end
toggle_favorite_movie(movie_id, favorite) click to toggle source
# File lib/enceladus/models/account.rb, line 101
def toggle_favorite_movie(movie_id, favorite)
   if authenticated?
    params = { session_id: session_id }
    form_data = { media_type: "movie", media_id: movie_id, favorite: favorite }
    Enceladus::Requester.post("account/#{id}/favorite", params, form_data)
  end
end
toggle_movie_watchlist(movie_id, watchlist) click to toggle source
# File lib/enceladus/models/account.rb, line 109
def toggle_movie_watchlist(movie_id, watchlist)
   if authenticated?
    params = { session_id: session_id }
    form_data = { media_type: "movie", media_id: movie_id, watchlist: watchlist }
    Enceladus::Requester.post("account/#{id}/watchlist", params, form_data)
  end
end