hphones-ruby 0.0.1 → 0.0.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 25c61ef3e11a0f877c8ec0af76a6f06bf90d2894
4
- data.tar.gz: a8e4ef5f8e023996fb7f1466e8ef5f680e01061d
3
+ metadata.gz: 00556e53ee71c148c31b173d0087ec8818fc09b7
4
+ data.tar.gz: b8fa6073496428027d4d248d2481de0c65991446
5
5
  SHA512:
6
- metadata.gz: 4ec366fd27a90871e0f2ebd0163759f0aa1cb3ca4cb98e163acc0d8f75c2eb6a07de9a4752f7a1123f6173201f7b816ce8e38830a87fc2b95433ed17e182e9b7
7
- data.tar.gz: b4643d98c4eb0abcb32b2ee48666da54fb38cf5d1a8e4f2055c8e3969dabded10933eb43bcc47a662f3b2b0d4c8a926d65e4492b3f63bd19b59f4fa9e637a3ec
6
+ metadata.gz: 52e5a06556cab0dcefeab73fc80ac516d41d32c5fbb6c317c6d1708ec6d07f13f16c5161900d0d1eef9bfdd57589e9a43dc35417d3a7e8bfd08726c243de64e2
7
+ data.tar.gz: eb9ca2256f2ae56806700530b9002f9e05755bb9b801089a1949560d3a00323401cc6db14826673b8929213bcd15db2a6469e1ebec4776dbe45bf16581b4d852
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- hphones-ruby (0.0.1)
4
+ hphones-ruby (0.0.2)
5
5
  faraday
6
6
  hashie
7
7
 
@@ -13,7 +13,7 @@ GEM
13
13
  dotenv (2.2.1)
14
14
  faraday (0.13.1)
15
15
  multipart-post (>= 1.2, < 3)
16
- hashie (3.5.6)
16
+ hashie (3.5.7)
17
17
  method_source (0.9.0)
18
18
  multipart-post (2.0.0)
19
19
  pry (0.11.3)
@@ -1,10 +1,12 @@
1
1
  get_index:
2
2
  method: get
3
+ response: json
3
4
  params:
4
5
  - key: cmd
5
6
  value: getIndex
6
7
  get_artist:
7
8
  method: get
9
+ response: json
8
10
  params:
9
11
  - key: cmd
10
12
  value: getArtist
@@ -12,6 +14,7 @@ get_artist:
12
14
  required: true
13
15
  get_album:
14
16
  method: get
17
+ response: json
15
18
  params:
16
19
  - key: cmd
17
20
  value: getAlbum
@@ -19,32 +22,38 @@ get_album:
19
22
  required: true
20
23
  get_upcoming:
21
24
  method: get
25
+ response: json
22
26
  params:
23
27
  - key: cmd
24
28
  value: getUpcoming
25
29
  get_wanted:
26
30
  method: get
31
+ response: json
27
32
  params:
28
33
  - key: cmd
29
34
  value: getWanted
30
35
  get_similar:
31
36
  method: get
37
+ response: json
32
38
  params:
33
39
  - key: cmd
34
40
  value: getSimilar
35
41
  get_history:
36
42
  method: get
43
+ response: json
37
44
  params:
38
45
  - key: cmd
39
46
  value: getHistory
40
47
  # NOT WORKING YET
41
48
  # get_logs:
42
49
  # method: get
50
+ # response: json
43
51
  # params:
44
52
  # - key: cmd
45
53
  # value: getLogs
46
54
  find_artist:
47
55
  method: get
56
+ response: json
48
57
  params:
49
58
  - key: cmd
50
59
  value: findArtist
@@ -54,6 +63,7 @@ find_artist:
54
63
  required: false
55
64
  find_album:
56
65
  method: get
66
+ response: json
57
67
  params:
58
68
  - key: cmd
59
69
  value: findAlbum
@@ -63,6 +73,7 @@ find_album:
63
73
  required: false
64
74
  add_artist:
65
75
  method: get
76
+ response: status
66
77
  params:
67
78
  - key: cmd
68
79
  value: addArtist
@@ -70,6 +81,7 @@ add_artist:
70
81
  required: true
71
82
  add_album:
72
83
  method: get
84
+ response: status
73
85
  params:
74
86
  - key: cmd
75
87
  value: addAlbum
@@ -77,6 +89,7 @@ add_album:
77
89
  required: true
78
90
  del_artist:
79
91
  method: get
92
+ response: status
80
93
  params:
81
94
  - key: cmd
82
95
  value: delArtist
@@ -84,6 +97,7 @@ del_artist:
84
97
  required: true
85
98
  pause_artist:
86
99
  method: get
100
+ response: status
87
101
  params:
88
102
  - key: cmd
89
103
  value: pauseArtist
@@ -91,6 +105,7 @@ pause_artist:
91
105
  required: true
92
106
  resume_artist:
93
107
  method: get
108
+ response: status
94
109
  params:
95
110
  - key: cmd
96
111
  value: resumeArtist
@@ -98,6 +113,7 @@ resume_artist:
98
113
  required: true
99
114
  refresh_artist:
100
115
  method: get
116
+ response: status
101
117
  params:
102
118
  - key: cmd
103
119
  value: refreshArtist
@@ -105,6 +121,7 @@ refresh_artist:
105
121
  required: true
106
122
  queue_album:
107
123
  method: get
124
+ response: status
108
125
  params:
109
126
  - key: cmd
110
127
  value: queueAlbum
@@ -116,6 +133,7 @@ queue_album:
116
133
  required: false
117
134
  unqueue_album:
118
135
  method: get
136
+ response: status
119
137
  params:
120
138
  - key: cmd
121
139
  value: unqueueAlbum
@@ -123,11 +141,13 @@ unqueue_album:
123
141
  required: true
124
142
  force_search:
125
143
  method: get
144
+ response: status
126
145
  params:
127
146
  - key: cmd
128
147
  value: forceSearch
129
148
  force_process:
130
149
  method: get
150
+ response: status
131
151
  params:
132
152
  - key: cmd
133
153
  value: forceProcess
@@ -135,6 +155,7 @@ force_process:
135
155
  required: false
136
156
  force_active_artists_update:
137
157
  method: get
158
+ response: status
138
159
  params:
139
160
  - key: cmd
140
161
  value: forceActiveArtistsUpdate
@@ -145,26 +166,31 @@ get_version:
145
166
  value: getVersion
146
167
  check_github:
147
168
  method: get
169
+ response: status
148
170
  params:
149
171
  - key: cmd
150
172
  value: checkGithub
151
173
  shutdown:
152
174
  method: get
175
+ response: status
153
176
  params:
154
177
  - key: cmd
155
178
  value: shutdown
156
179
  restart:
157
180
  method: get
181
+ response: status
158
182
  params:
159
183
  - key: cmd
160
184
  value: restart
161
185
  update:
162
186
  method: get
187
+ response: status
163
188
  params:
164
189
  - key: cmd
165
190
  value: update
166
191
  get_artist_art:
167
192
  method: get
193
+ response: path
168
194
  params:
169
195
  - key: cmd
170
196
  value: getArtistArt
@@ -172,6 +198,7 @@ get_artist_art:
172
198
  required: true
173
199
  get_artist_info:
174
200
  method: get
201
+ response: json
175
202
  params:
176
203
  - key: cmd
177
204
  value: getArtistInfo
@@ -179,6 +206,7 @@ get_artist_info:
179
206
  required: true
180
207
  get_album_info:
181
208
  method: get
209
+ response: json
182
210
  params:
183
211
  - key: cmd
184
212
  value: getAlbumInfo
@@ -186,6 +214,7 @@ get_album_info:
186
214
  required: true
187
215
  get_artist_thumb:
188
216
  method: get
217
+ response: path
189
218
  params:
190
219
  - key: cmd
191
220
  value: getArtistThumb
@@ -193,6 +222,7 @@ get_artist_thumb:
193
222
  required: true
194
223
  get_album_thumb:
195
224
  method: get
225
+ response: path
196
226
  params:
197
227
  - key: cmd
198
228
  value: getAlbumThumb
@@ -200,6 +230,7 @@ get_album_thumb:
200
230
  required: true
201
231
  choose_specific_download:
202
232
  method: get
233
+ response: json
203
234
  params:
204
235
  - key: cmd
205
236
  value: choose_specific_download
@@ -52,7 +52,7 @@ class Hphones
52
52
  super
53
53
  end
54
54
 
55
- def respond_to_missing?(mth)
55
+ def respond_to_missing?(mth, *)
56
56
  !!lookup_endpoint(mth) || super
57
57
  end
58
58
 
@@ -11,7 +11,7 @@ class Hphones
11
11
  class MissingParameterError < StandardError; end
12
12
 
13
13
  # The path to the endpoints file.
14
- ENDPOINTS_PATH = File.join('data', 'endpoints.yml')
14
+ ENDPOINTS_PATH = File.join(File.dirname(__FILE__), '..', '..', 'data', 'endpoints.yml')
15
15
 
16
16
  class << self
17
17
  def lookup(key)
@@ -37,10 +37,14 @@ class Hphones
37
37
 
38
38
  def fetch
39
39
  api_params = compile_params
40
- req = Hphones::Request.new(api)
40
+ req = Hphones::Request.new(api, self)
41
41
  req.send endpoint_info['method'], api_params
42
42
  end
43
43
 
44
+ def response_type
45
+ endpoint_info['response']
46
+ end
47
+
44
48
  private
45
49
 
46
50
  attr_reader :key, :api, :params
@@ -5,16 +5,21 @@ class Hphones
5
5
  # Represents an API request
6
6
  #
7
7
  class Request
8
- attr_reader :api
8
+ attr_reader :api, :endpoint
9
9
 
10
- def initialize(api)
10
+ def initialize(api, endpoint)
11
11
  @api = api
12
+ @endpoint = endpoint
12
13
  end
13
14
 
14
15
  def get(params = {})
15
16
  conn = api.connection
16
17
  compiled_params = params.merge('apikey' => api.api_key)
17
- Hphones::Response.new(conn.get(api.base_path, compiled_params))
18
+ Hphones::Response.new(self, conn.get(api.base_path, compiled_params))
19
+ end
20
+
21
+ def response_type
22
+ endpoint.response_type
18
23
  end
19
24
  end
20
25
  end
@@ -8,20 +8,51 @@ class Hphones
8
8
  # Represents an API response
9
9
  #
10
10
  class Response
11
- def initialize(http_response)
11
+ STATUS_OK = 'OK'
12
+
13
+ RESPONSE_TYPE_JSON = 'json'
14
+ RESPONSE_TYPE_STATUS = 'status'
15
+ RESPONSE_TYPE_PATH = 'path'
16
+
17
+ def initialize(request, http_response)
12
18
  @http_response = http_response
19
+ @request = request
13
20
  end
14
21
 
15
22
  def data
16
- @data ||= parse_json http_response.body
23
+ @data ||= parse_data http_response.body
17
24
  end
18
25
 
19
26
  private
20
27
 
21
- attr_reader :http_response
28
+ attr_reader :request, :http_response
29
+
30
+ def parse_data(body)
31
+ case request.response_type
32
+ when RESPONSE_TYPE_JSON
33
+ parse_json body
34
+ when RESPONSE_TYPE_STATUS
35
+ parse_status body
36
+ when RESPONSE_TYPE_PATH
37
+ parse_path body
38
+ end
39
+ end
40
+
41
+ def parse_json(body)
42
+ JSON.parse body
43
+ end
44
+
45
+ def parse_status(body)
46
+ case body
47
+ when STATUS_OK
48
+ true
49
+ else
50
+ false
51
+ end
52
+ end
22
53
 
23
- def parse_json(json_str)
24
- JSON.parse json_str
54
+ def parse_path(body)
55
+ body
25
56
  end
26
57
  end
27
58
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Hphones
4
- VERSION = '0.0.1'
4
+ VERSION = '0.0.2'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hphones-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tyler Guillen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-12-07 00:00:00.000000000 Z
11
+ date: 2017-12-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday