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