Class: Enceladus::Account

Inherits:
ApiResource show all
Defined in:
lib/enceladus/models/account.rb

Constant Summary collapse

RESOURCE_ATTRIBUTES =
[:id, :include_adult, :iso_3166_1, :iso_639_1, :name, :username, :session_id].map(&:freeze).freeze

Instance Method Summary collapse

Constructor Details

#initialize(username, password) ⇒ Account

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")


19
20
21
22
23
# File 'lib/enceladus/models/account.rb', line 19

def initialize(username, password)
  self.username = username
  self.password = password
  start_authentication_workflow
end

Instance Method Details

#add_to_watchlist!(movie_id) ⇒ Object

Adds movie to accounts watchlist. Example:

 = Enceladus::Account.new("bruna_ferraz", "dajhhd")
.add_to_watchlist!(23444)


51
52
53
# 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) ⇒ Object

Adds movie to accounts favorite list. Example:

 = Enceladus::Account.new("bruna_ferraz", "dajhhd")
.favorite_movie!(23444)


31
32
33
# File 'lib/enceladus/models/account.rb', line 31

def favorite_movie!(movie_id)
  toggle_favorite_movie(movie_id, true)
end

#favorite_moviesObject

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

 = Enceladus::Account.new("belinha", "dajhhd")
.favorite_movies


72
73
74
# 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_moviesObject

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

 = Enceladus::Account.new("belinha", "dajhhd")
.rated_movies


83
84
85
# 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) ⇒ Object

Removes movie to accounts watchlist. Example:

 = Enceladus::Account.new("bruna_ferraz", "dajhhd")
.remove_from_watchlist!(23444)


61
62
63
# 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) ⇒ Object

Removes movie to accounts favorite list. Example:

 = Enceladus::Account.new("bruna_ferraz", "dajhhd")
.unfavorite_movie!(23444)


41
42
43
# File 'lib/enceladus/models/account.rb', line 41

def unfavorite_movie!(movie_id)
  toggle_favorite_movie(movie_id, false)
end

#watchlistObject

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

 = Enceladus::Account.new("belinha", "hjgsss")
.watchlist


94
95
96
# File 'lib/enceladus/models/account.rb', line 94

def watchlist
  Enceladus::MovieCollection.new("account/#{id}/watchlist/movies", { session_id: session_id }) if authenticated?
end