ruby-sendhub 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +82 -8
- data/lib/ruby-sendhub.rb +24 -1
- data/lib/ruby-sendhub/version.rb +1 -1
- metadata +6 -6
data/README.md
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
# ruby-sendhub
|
2
2
|
|
3
3
|
ruby-sendhub is a simple API wrapper for interacting with [SendHub API](http://www.sendhub.com/developer)
|
4
|
-
It's my first ever gem, so I'm crying right now as you read this.
|
5
4
|
|
6
5
|
##Installation
|
7
6
|
|
@@ -11,7 +10,7 @@ It's my first ever gem, so I'm crying right now as you read this.
|
|
11
10
|
|
12
11
|
A SendHub account. Get your API key [here](https://www.sendhub.com/settings)
|
13
12
|
|
14
|
-
##
|
13
|
+
##Getting started
|
15
14
|
|
16
15
|
Create a new instance of the API wrapper:
|
17
16
|
|
@@ -25,15 +24,90 @@ SendHub API uses RESTful services. Every methods begin with post, put, update, o
|
|
25
24
|
|
26
25
|
sh.post_contacts({:name => "SoonKhen OwYong", :number => 4040404040, :address => "1 Infinite Loop", :city => "Cupertino", :zip => "95014"})
|
27
26
|
|
28
|
-
Every put or delete requests must have :id
|
27
|
+
Every put or delete requests must have an :id hash key
|
29
28
|
|
30
29
|
sh.delete_contacts({:id => [11]})
|
31
30
|
|
32
|
-
##
|
31
|
+
##Messages
|
33
32
|
|
34
|
-
|
35
|
-
* [Amro Mousa](https://github.com/amro) for his source code on Gibbon which inspired this code
|
33
|
+
Sending a Message
|
36
34
|
|
37
|
-
|
35
|
+
sh.post_messages({:contacts => [1111], :text => "Testing"})
|
38
36
|
|
39
|
-
|
37
|
+
Scheduling a Message
|
38
|
+
|
39
|
+
sh.post_messages({:contacts => [1111], :text => "Testing", :scheduled_at => "2011-02-17T20:29:40-0800"})
|
40
|
+
|
41
|
+
Get Message Status
|
42
|
+
|
43
|
+
sh.get_messages({:id => 11})
|
44
|
+
|
45
|
+
Mark Message as Read
|
46
|
+
|
47
|
+
sh.put_messages({:id => 11, :unread => "false"})
|
48
|
+
|
49
|
+
##Contacts
|
50
|
+
|
51
|
+
Adding a Contact
|
52
|
+
|
53
|
+
sh.post_contacts({:name => "John Doe", :number => "6501234567"})
|
54
|
+
|
55
|
+
Adding a Contact with Additional Data
|
56
|
+
|
57
|
+
sh.post_contacts({:name => "John Doe", :number => "6501234567", :groups => [11,12], :address => "1 Infinite Loop", :city => "Cupertino", :zip => "95014"})
|
58
|
+
|
59
|
+
Collecting Contacts Data
|
60
|
+
|
61
|
+
sh.get_contacts
|
62
|
+
|
63
|
+
Editing a Contact
|
64
|
+
|
65
|
+
sh.put_contacts({:id => 22413, :name => "Jesse Doe", :number => 6501234567})
|
66
|
+
|
67
|
+
Deleting a Contact
|
68
|
+
|
69
|
+
sh.delete_contacts({:id => 22413})
|
70
|
+
|
71
|
+
##Groups
|
72
|
+
|
73
|
+
Adding a Group
|
74
|
+
|
75
|
+
sh.post_groups({:name => "Regulars", :slug => "regulars", :text_to_subscribe => true})
|
76
|
+
|
77
|
+
Collect Groups List
|
78
|
+
|
79
|
+
sh.get_groups
|
80
|
+
|
81
|
+
Collect a Single Group's Contacts
|
82
|
+
|
83
|
+
sh.get_groups_contacts({:id => 1220})
|
84
|
+
|
85
|
+
Adding and Removing Contacts
|
86
|
+
|
87
|
+
sh.post_groups_contacts({:id => 1220, :add => [22081], :remove => [22411, 22412]})
|
88
|
+
|
89
|
+
Editing a Group
|
90
|
+
|
91
|
+
sh.put_groups({:id => 1220, :name => "Best Customers", :slug => "regulars", :text_to_subscribe => true})
|
92
|
+
|
93
|
+
Deleting a Group
|
94
|
+
|
95
|
+
sh.delete_groups({:id => 1220})
|
96
|
+
|
97
|
+
##Inbox
|
98
|
+
|
99
|
+
Collecting the Inbox
|
100
|
+
|
101
|
+
sh.get_inbox
|
102
|
+
|
103
|
+
##Threads
|
104
|
+
|
105
|
+
Viewing Threads
|
106
|
+
|
107
|
+
sh.get_threads({:id => 12555})
|
108
|
+
|
109
|
+
##Profile
|
110
|
+
|
111
|
+
Collecting the Profile
|
112
|
+
|
113
|
+
sh.get_profile
|
data/lib/ruby-sendhub.rb
CHANGED
@@ -17,16 +17,39 @@ class SendHub
|
|
17
17
|
def method_missing(method, hsh = {})
|
18
18
|
meth = method.to_s.split("_")
|
19
19
|
if meth.first == "put" || meth.first == "delete"
|
20
|
+
if meth.last == "messages"
|
21
|
+
api_url = base_url + meth.last + "/" + hsh[:id].to_s + credentials
|
22
|
+
hsh.delete(:id)
|
23
|
+
else
|
24
|
+
api_url = base_url + meth.last + "/" + hsh[:id].to_s + credentials
|
25
|
+
end
|
26
|
+
elsif meth.first == "get" && (meth.last == "threads" || meth.last == "messages" || !hsh[:id].nil?)
|
20
27
|
api_url = base_url + meth.last + "/" + hsh[:id].to_s + credentials
|
21
28
|
else
|
22
29
|
api_url = base_url + meth.last + credentials
|
23
30
|
end
|
24
|
-
ret =
|
31
|
+
ret = send_request(meth.first, api_url, :body => hsh.to_json)
|
25
32
|
ret.nil? && meth.first == "delete" ? "Aaaand it's gone" : ret
|
26
33
|
end
|
27
34
|
|
35
|
+
def get_groups_contacts(hsh = {})
|
36
|
+
send_request("get", group_contacts_url(hsh), :body => hsh.to_json)
|
37
|
+
end
|
38
|
+
|
39
|
+
def post_groups_contacts(hsh = {})
|
40
|
+
send_request("post", group_contacts_url(hsh), :body => hsh.to_json)
|
41
|
+
end
|
42
|
+
|
28
43
|
private
|
29
44
|
|
45
|
+
def group_contacts_url(hsh)
|
46
|
+
base_url + "groups/" + hsh[:id].to_s + "/contacts" + credentials
|
47
|
+
end
|
48
|
+
|
49
|
+
def send_request(request_type, url, json)
|
50
|
+
self.class.send(request_type, url, json).parsed_response
|
51
|
+
end
|
52
|
+
|
30
53
|
def base_url
|
31
54
|
"https://api.sendhub.com/v1/"
|
32
55
|
end
|
data/lib/ruby-sendhub/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-sendhub
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-04-
|
12
|
+
date: 2012-04-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: httparty
|
16
|
-
requirement: &
|
16
|
+
requirement: &21865320 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *21865320
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: json
|
27
|
-
requirement: &
|
27
|
+
requirement: &21881660 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *21881660
|
36
36
|
description: My first gem and no tests yet. Ruby wrapper for SendHub API
|
37
37
|
email:
|
38
38
|
- dude@owyong.sk
|