Skip to content

Commit 0cba377

Browse files
author
coding-chimp
committed
Adds base resource
1 parent 5a33bcb commit 0cba377

4 files changed

Lines changed: 57 additions & 53 deletions

File tree

lib/onesignal.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
require 'onesignal/models/base_model'
77
require 'onesignal/models/app'
88
require 'onesignal/models/player'
9+
require 'onesignal/resources/base_resource'
910
require 'onesignal/resources/app_resource'
1011
require 'onesignal/resources/player_resource'
1112

1213
module OneSignal
13-
DEVICE_TYPES = [
14-
'ios', 'android', 'amazon', 'mpns', 'chrome_app', 'chrome_website', 'wns',
15-
'safari', 'firefox'
16-
]
14+
DEVICE_TYPES = %w(
15+
ios android amazon mpns chrome_app chrome_website wns safari firefox
16+
).freeze
1717
end
Lines changed: 9 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,27 @@
1-
require 'json'
2-
31
module OneSignal
4-
class AppResource
5-
def initialize(client)
6-
@client = client
7-
end
8-
2+
class AppResource < BaseResource
93
def all
10-
response = request.get('/apps')
11-
apps = JSON.parse(response.body)
4+
get('/apps')
125

13-
apps.map(&OneSignal::App)
6+
response_body.map(&OneSignal::App)
147
end
158

169
def find(id)
17-
response = request.get("/apps/#{id}")
18-
app = JSON.parse(response.body)
10+
get("/apps/#{id}")
1911

20-
OneSignal::App.new(app)
12+
OneSignal::App.new(response_body)
2113
end
2214

2315
def create(params)
24-
response = request.post('/apps', params)
25-
app = JSON.parse(response.body)
16+
post('/apps', params)
2617

27-
OneSignal::App.new(app)
18+
OneSignal::App.new(response_body)
2819
end
2920

3021
def update(id, params)
31-
response = request.put("/apps/#{id}", params)
32-
app = JSON.parse(response.body)
33-
34-
OneSignal::App.new(app)
35-
end
36-
37-
private
22+
put("/apps/#{id}", params)
3823

39-
def request
40-
@request ||= OneSignal::Request.new(@client)
24+
OneSignal::App.new(response_body)
4125
end
4226
end
4327
end
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
require 'json'
2+
3+
module OneSignal
4+
class BaseResource
5+
def initialize(client)
6+
@client = client
7+
end
8+
9+
private
10+
11+
def get(path, params = {})
12+
@response = request.get(path, params)
13+
end
14+
15+
def put(path, params)
16+
@response = request.put(path, params)
17+
end
18+
19+
def post(path, params)
20+
@response = request.post(path, params)
21+
end
22+
23+
def request
24+
@request ||= OneSignal::Request.new(@client)
25+
end
26+
27+
def response_body
28+
JSON.parse(@response.body)
29+
end
30+
end
31+
end
Lines changed: 13 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,53 @@
11
module OneSignal
2-
class PlayerResource
3-
def initialize(client)
4-
@client = client
5-
end
6-
2+
class PlayerResource < BaseResource
73
def all(params = {})
8-
response = request.get('/players', params)
9-
players = JSON.parse(response.body)['players']
4+
get('/players', params)
5+
players = response_body['players']
106

117
players.map(&OneSignal::Player)
128
end
139

1410
def find(id)
15-
response = request.get("/players/#{id}")
16-
player = JSON.parse(response.body)
11+
get("/players/#{id}")
1712

18-
OneSignal::Player.new(player)
13+
OneSignal::Player.new(response_body)
1914
end
2015

2116
def create(params)
22-
response = request.post('/players', params)
17+
post('/players', params)
2318

24-
JSON.parse(response.body)['id']
19+
response_body['id']
2520
end
2621

2722
def update(id, params)
28-
request.put("/players/#{id}", params)
23+
put("/players/#{id}", params)
2924

3025
true
3126
end
3227

3328
def on_session(id, params)
34-
request.post("/players/#{id}/on_session", params)
29+
post("/players/#{id}/on_session", params)
3530

3631
true
3732
end
3833

3934
def on_purchase(id, params)
40-
request.post("/players/#{id}/on_purchase", params)
35+
post("/players/#{id}/on_purchase", params)
4136

4237
true
4338
end
4439

4540
def on_focus(id, params)
46-
request.post("/players/#{id}/on_focus", params)
41+
post("/players/#{id}/on_focus", params)
4742

4843
true
4944
end
5045

5146
def csv_export(id)
5247
params = { app_id: id }
53-
response = request.post('/players/csv_export', params)
54-
55-
JSON.parse(response.body)['csv_file_url']
56-
end
57-
58-
private
48+
post('/players/csv_export', params)
5949

60-
def request
61-
@request ||= OneSignal::Request.new(@client)
50+
response_body['csv_file_url']
6251
end
6352
end
6453
end

0 commit comments

Comments
 (0)