Class: TVDBApi

Inherits:
Object
  • Object
show all
Defined in:
lib/tvdb_api/tvdb_api.rb

Constant Summary collapse

BASE_URL =
'https://api4.thetvdb.com'
ENDPOINTS =
{
  search: '/v4/search',
  movie: '/v4/movies/%{id}/extended',
  series: '/v4/series/%{id}/extended',
  person: '/v4/people/%{id}/extended'
}

Instance Method Summary collapse

Constructor Details

#initializeTVDBApi

Returns a new instance of TVDBApi.



16
17
18
19
20
21
22
23
24
25
# File 'lib/tvdb_api/tvdb_api.rb', line 16

def initialize
  Faraday::Request.register_middleware tvdb_auth: -> { TVDBAPIMiddleware }

  @conn = Faraday.new(url: BASE_URL) do |faraday|
    faraday.headers['Content-Type'] = 'application/json'
    faraday.request :url_encoded
    faraday.request :tvdb_auth
    faraday.adapter Faraday.default_adapter
  end
end

Instance Method Details

#movie(id) ⇒ Object



35
36
37
# File 'lib/tvdb_api/tvdb_api.rb', line 35

def movie(id)
  request_endpoint(:movie, id: id)
end

#person(id) ⇒ Object



43
44
45
# File 'lib/tvdb_api/tvdb_api.rb', line 43

def person(id)
  request_endpoint(:person, id: id)
end

#search(query) ⇒ Object



27
28
29
# File 'lib/tvdb_api/tvdb_api.rb', line 27

def search(query)
  request_endpoint(:search, { query: })
end

#search_by_type(query, type) ⇒ Object



31
32
33
# File 'lib/tvdb_api/tvdb_api.rb', line 31

def search_by_type(query, type)
  request_endpoint(:search, query: query, type: type)
end

#series(id) ⇒ Object



39
40
41
# File 'lib/tvdb_api/tvdb_api.rb', line 39

def series(id)
  request_endpoint(:series, id: id)
end