tvdb_api 0.0.3 → 0.0.5

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: 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