tvdb_api 0.0.3 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: 44a32352d6edb6cc5524794afafb2870cc36bbe06b914a61e591936270f473ff
4
+ data.tar.gz: fba772963a10175b5c95d055490170d4e14d809a2a44d6ef779d81b474106e83
5
5
  SHA512:
6
- metadata.gz: 59e56d47f4bb23a0fc153aad45cca9ec14f9b861e2cf991eabd7f883832f93b6c2c1a40d8d57a5d09e783ac6f764acc405d9b8f7eaf9f01f03a2f6115abde27c
7
- data.tar.gz: a0552579e4c5f6c1c94c6ee850011b2665af3349f384cacc3ec73832fcd8b876aad06d3c13891b348c9bf125bfe041efc18567117960f0fe716ce4af86e4f515
6
+ metadata.gz: 0a59383884a6a6e5bfe2c0843f736e5d31530a721c7926a3a58a4df35c3779133f5c15abbd7b5c454887ace681d85bc08ddd6561ba003c8fab37285d4bef7bdc
7
+ data.tar.gz: d8e318570de6e4be70f11bd81ea72fcd52a2960862326dec4764283c141354f797a9940ee23a5d92af059032f35d2b80cd4388f49746f126728838f579fb00ed
@@ -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
+ series: 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.5
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