tvdb_api 0.0.2 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/tvdb_api/tvdb_api.rb +33 -16
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 500991e66e3a7796958cef67f45c68c7300f07ab27fcd5e030da6f469ad2f818
4
- data.tar.gz: d4440345615bd0d8608e50875d9ba4106bb710048c85b4a07ca7a8c8e9b30853
3
+ metadata.gz: ff84749e7fda3bdb8e45ddaf8fd7b838250e61346da22b715dbf6739936dfc93
4
+ data.tar.gz: e3c796b111a889ded92cb42be18846f68eecf55bc9d7ba2906a653ee1c3a1b3d
5
5
  SHA512:
6
- metadata.gz: 7530d15e2af662a2a269af7de1647da8056f464d8e66b149b8d728a70f3755e6cdf20f137eb558639ca41712087d29b3f7083674441e910085596cfde88d3502
7
- data.tar.gz: 114056201fd465964175274ea180025de4b80b8faebf59f737faa4787e8f5721c36c0bdaaa9ccd8d6780fa27b8186d64ed29b9ebca04cf4cfc1a5af9ae1befa5
6
+ metadata.gz: d55201524861662b571a4f6d619a31208ae90fe298986db0a363313253a62e91aade0c4db64c2cd365a763ed31c78eaa95d7972c9cd9a406343405a64aa4bfdb
7
+ data.tar.gz: cda9d7292e8cc8a287fe71846c20561d4ecff611fcf73e7d1aece52b73ea3c460d08cdce9fd47fd0e2c3805b4f11602d17e056738731d34b281e91f57310b590
@@ -6,50 +6,66 @@ require_relative 'tvdb_api_middleware'
6
6
 
7
7
  class TVDBApi
8
8
  BASE_URL = 'https://api4.thetvdb.com'
9
+ COMMON_PARAMS = { meta: 'translations', short: 'false' }.freeze
9
10
  ENDPOINTS = {
10
11
  search: '/v4/search',
11
- movie: '/v4/movies/%{id}/extended',
12
+ movie: '/v4/movies/%{id}/extended',
12
13
  series: '/v4/series/%{id}/extended',
13
14
  person: '/v4/people/%{id}/extended'
14
- }
15
+ }.freeze
15
16
 
16
- def initialize
17
- Faraday::Request.register_middleware tvdb_auth: -> { TVDBAPIMiddleware }
17
+ DEFAULT_PARAMS = {
18
+ movie: COMMON_PARAMS,
19
+ person: COMMON_PARAMS
20
+ }.freeze
18
21
 
19
- @conn = Faraday.new(url: BASE_URL) do |faraday|
20
- faraday.headers['Content-Type'] = 'application/json'
21
- faraday.request :url_encoded
22
- faraday.request :tvdb_auth
23
- faraday.adapter Faraday.default_adapter
24
- end
22
+ def initialize
23
+ register_middleware
24
+ setup_connection
25
25
  end
26
26
 
27
27
  def search(query)
28
- request_endpoint(:search, { query: })
28
+ request(:search, query: query)
29
29
  end
30
30
 
31
31
  def search_by_type(query, type)
32
- request_endpoint(:search, query: query, type: type)
32
+ request(:search, query: query, type: type)
33
33
  end
34
34
 
35
35
  def movie(id)
36
- request_endpoint(:movie, id: id)
36
+ request(:movie, id: id)
37
37
  end
38
38
 
39
39
  def series(id)
40
- request_endpoint(:series, id: id)
40
+ request(:series, id: id)
41
41
  end
42
42
 
43
43
  def person(id)
44
- request_endpoint(:person, id: id)
44
+ request(:person, id: id)
45
45
  end
46
46
 
47
47
  private
48
48
 
49
- def request_endpoint(endpoint_key, params = {})
49
+ def register_middleware
50
+ Faraday::Request.register_middleware tvdb_auth: -> { TVDBAPIMiddleware }
51
+ end
52
+
53
+ def setup_connection
54
+ @conn = Faraday.new(url: BASE_URL) do |faraday|
55
+ faraday.headers['Content-Type'] = 'application/json'
56
+ faraday.request :url_encoded
57
+ faraday.request :tvdb_auth
58
+ faraday.adapter Faraday.default_adapter
59
+ end
60
+ end
61
+
62
+ def request(endpoint_key, params = {})
50
63
  url = ENDPOINTS[endpoint_key]
51
64
  raise "Invalid endpoint key: #{endpoint_key}" unless url
52
65
 
66
+ default_params = DEFAULT_PARAMS[endpoint_key] || {}
67
+ params = params.merge(default_params)
68
+
53
69
  url = url % params if url.include?('%{')
54
70
 
55
71
  response = @conn.get do |req|
@@ -60,3 +76,4 @@ class TVDBApi
60
76
  JSON.parse(response.body)
61
77
  end
62
78
  end
79
+
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tvdb_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stephen McCullough
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-09-25 00:00:00.000000000 Z
11
+ date: 2023-09-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday