tvdb_api 0.0.3 → 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: 402227651d6c8eecf6d25cb584964617757756e10cff4b761ca5ca7eb09b24ad
4
- data.tar.gz: 93df34fb76e1ad84da1df20ef44be6ad5389221c198b3e8b1248ec981e9ce357
3
+ metadata.gz: ff84749e7fda3bdb8e45ddaf8fd7b838250e61346da22b715dbf6739936dfc93
4
+ data.tar.gz: e3c796b111a889ded92cb42be18846f68eecf55bc9d7ba2906a653ee1c3a1b3d
5
5
  SHA512:
6
- metadata.gz: 59e56d47f4bb23a0fc153aad45cca9ec14f9b861e2cf991eabd7f883832f93b6c2c1a40d8d57a5d09e783ac6f764acc405d9b8f7eaf9f01f03a2f6115abde27c
7
- data.tar.gz: a0552579e4c5f6c1c94c6ee850011b2665af3349f384cacc3ec73832fcd8b876aad06d3c13891b348c9bf125bfe041efc18567117960f0fe716ce4af86e4f515
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: 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.3
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