adsmedia 1.0.2 → 1.0.4
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 +4 -4
- data/lib/adsmedia.rb +38 -19
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c0069e39b361ffd0580d8c5ec8da6ac724076619ea37b728514307d5a4a9eaa0
|
|
4
|
+
data.tar.gz: 5360bfd28185bd3026a0ff49321a736e6f6a8ca3b59aae91abd6039c223accce
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ea915cdb07ab4230c7901ee56785007c54143b0cfbe58653177b44e396de652c7a164661d46ee59f819f86579293359da62a1b072ed1a6e2150d25b539425abc
|
|
7
|
+
data.tar.gz: 3f01656668ea3bc19d319d2b40dd8d4b859b6a4d2c736db388bd4b865848c61491f5b175ee7e7ac05e94ea8486cd6b3cf8a1b86ca9a854cbc5416a9a16e2cded
|
data/lib/adsmedia.rb
CHANGED
|
@@ -3,7 +3,7 @@ require 'json'
|
|
|
3
3
|
|
|
4
4
|
module ADSMedia
|
|
5
5
|
class Client
|
|
6
|
-
BASE_URL = 'https://api.adsmedia.live/v1'.freeze
|
|
6
|
+
BASE_URL = 'https://api.adsmedia.live/v1/'.freeze
|
|
7
7
|
|
|
8
8
|
def initialize(api_key)
|
|
9
9
|
@api_key = api_key
|
|
@@ -16,7 +16,7 @@ module ADSMedia
|
|
|
16
16
|
|
|
17
17
|
# Test connection
|
|
18
18
|
def ping
|
|
19
|
-
get('
|
|
19
|
+
get('ping')
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
# Send single email
|
|
@@ -27,7 +27,7 @@ module ADSMedia
|
|
|
27
27
|
payload[:text] = text if text
|
|
28
28
|
payload[:reply_to] = reply_to if reply_to
|
|
29
29
|
|
|
30
|
-
post('
|
|
30
|
+
post('send', payload)
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
# Send batch emails
|
|
@@ -37,22 +37,22 @@ module ADSMedia
|
|
|
37
37
|
payload[:preheader] = preheader if preheader
|
|
38
38
|
payload[:from_name] = from_name if from_name
|
|
39
39
|
|
|
40
|
-
post('
|
|
40
|
+
post('send/batch', payload)
|
|
41
41
|
end
|
|
42
42
|
|
|
43
43
|
# Check email status
|
|
44
44
|
def get_status(message_id)
|
|
45
|
-
get('
|
|
45
|
+
get('send/status', message_id: message_id)
|
|
46
46
|
end
|
|
47
47
|
|
|
48
48
|
# List campaigns
|
|
49
49
|
def get_campaigns(limit: 50, offset: 0)
|
|
50
|
-
get('
|
|
50
|
+
get('campaigns', limit: limit, offset: offset)
|
|
51
51
|
end
|
|
52
52
|
|
|
53
53
|
# Get campaign
|
|
54
54
|
def get_campaign(id)
|
|
55
|
-
get('
|
|
55
|
+
get('campaigns/get', id: id)
|
|
56
56
|
end
|
|
57
57
|
|
|
58
58
|
# Create campaign
|
|
@@ -61,27 +61,27 @@ module ADSMedia
|
|
|
61
61
|
payload[:text] = text if text
|
|
62
62
|
payload[:preheader] = preheader if preheader
|
|
63
63
|
|
|
64
|
-
post('
|
|
64
|
+
post('campaigns/create', payload)
|
|
65
65
|
end
|
|
66
66
|
|
|
67
67
|
# List contact lists
|
|
68
68
|
def get_lists
|
|
69
|
-
get('
|
|
69
|
+
get('lists')
|
|
70
70
|
end
|
|
71
71
|
|
|
72
72
|
# Create list
|
|
73
73
|
def create_list(name:, type: 1)
|
|
74
|
-
post('
|
|
74
|
+
post('lists/create', name: name, type: type)
|
|
75
75
|
end
|
|
76
76
|
|
|
77
77
|
# Add contacts to list
|
|
78
78
|
def add_contacts(list_id:, contacts:)
|
|
79
|
-
post("
|
|
79
|
+
post("lists/contacts/add?id=#{list_id}", contacts: contacts)
|
|
80
80
|
end
|
|
81
81
|
|
|
82
82
|
# List schedules
|
|
83
83
|
def get_schedules(status: 'queue')
|
|
84
|
-
get('
|
|
84
|
+
get('schedules', status: status)
|
|
85
85
|
end
|
|
86
86
|
|
|
87
87
|
# Create schedule
|
|
@@ -90,32 +90,32 @@ module ADSMedia
|
|
|
90
90
|
payload[:sender_name] = sender_name if sender_name
|
|
91
91
|
payload[:schedule] = schedule if schedule
|
|
92
92
|
|
|
93
|
-
post('
|
|
93
|
+
post('schedules/create', payload)
|
|
94
94
|
end
|
|
95
95
|
|
|
96
96
|
# List servers
|
|
97
97
|
def get_servers
|
|
98
|
-
get('
|
|
98
|
+
get('servers')
|
|
99
99
|
end
|
|
100
100
|
|
|
101
101
|
# Verify domain
|
|
102
102
|
def verify_domain(server_id)
|
|
103
|
-
get('
|
|
103
|
+
get('domains/verify', server_id: server_id)
|
|
104
104
|
end
|
|
105
105
|
|
|
106
106
|
# Check suppression
|
|
107
107
|
def check_suppression(email)
|
|
108
|
-
get('
|
|
108
|
+
get('suppressions/check', email: email)
|
|
109
109
|
end
|
|
110
110
|
|
|
111
111
|
# Get account info
|
|
112
112
|
def get_account
|
|
113
|
-
get('
|
|
113
|
+
get('account')
|
|
114
114
|
end
|
|
115
115
|
|
|
116
116
|
# Get usage
|
|
117
117
|
def get_usage
|
|
118
|
-
get('
|
|
118
|
+
get('account/usage')
|
|
119
119
|
end
|
|
120
120
|
|
|
121
121
|
private
|
|
@@ -138,7 +138,26 @@ module ADSMedia
|
|
|
138
138
|
|
|
139
139
|
def handle_response(response)
|
|
140
140
|
data = response.body
|
|
141
|
-
|
|
141
|
+
|
|
142
|
+
# Handle non-JSON responses
|
|
143
|
+
unless data.is_a?(Hash)
|
|
144
|
+
raise ADSMediaError, "Invalid response: #{response.status} - #{data.to_s[0..200]}"
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
# Handle error responses
|
|
148
|
+
unless data['success']
|
|
149
|
+
error_msg = if data['error'].is_a?(Hash)
|
|
150
|
+
data['error']['message'] || data['error'].to_s
|
|
151
|
+
elsif data['error']
|
|
152
|
+
data['error'].to_s
|
|
153
|
+
elsif data['message']
|
|
154
|
+
data['message']
|
|
155
|
+
else
|
|
156
|
+
"HTTP #{response.status}: #{data.to_s[0..200]}"
|
|
157
|
+
end
|
|
158
|
+
raise ADSMediaError, error_msg
|
|
159
|
+
end
|
|
160
|
+
|
|
142
161
|
data['data']
|
|
143
162
|
end
|
|
144
163
|
end
|