ruby-swift 0.1.3 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +12 -14
  3. data/lib/ruby-swift.rb +40 -11
  4. metadata +4 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3e2b51e6f7f50074a4885cf8436c54b83182a17c
4
- data.tar.gz: d20f0cdeb344b48e3dec8601af0d21736dc019a8
3
+ metadata.gz: bcfefd7de34d0ee73b023d387e2fa6572ae1d56d
4
+ data.tar.gz: 6ba1002f1770ee1219147e6f7e029778e490460d
5
5
  SHA512:
6
- metadata.gz: 5465aaf43d2e650ae7362e39474a6dbf1c451a2c4c5c8c3b8d3ddd92591b801438d2029221b040dcf026dfb4527038829ab6eb93886dfb77da7daa6518cb493f
7
- data.tar.gz: 32a16945bdac5cfb53d2775b57531191e7b578aa9c3a0c77894b2b1ef7687d228b64ccc0fcaa65cdfe6244996455c76b29b36a473f8e32ccdade7f61c392541d
6
+ metadata.gz: 06981968173bb370b5280fc40b28dd530565ce67607ed05476e1d8cd08c7c53adca491ee65751f1d5aa0175ae6ae6ab31c9716f06ea50d65637b87f5b4d04c53
7
+ data.tar.gz: 76cb3ab38a76efa4acbe03165dc4c69727a59c4fa0eeec2591bef5e301ad57a7b725cfde92f16882cdae70f926dc17772a18c68e227fa8b876b9565a932abd88
data/README.md CHANGED
@@ -26,77 +26,75 @@ swift = RubySwift.new("API_PASSWORD")
26
26
  Does a person exist?
27
27
 
28
28
  ```ruby
29
- swift.person_exists?("you@example.com") # -> true
29
+ swift.person_exists?("you@example.com") # -> {:status => 0, :response => true}
30
30
  ```
31
31
 
32
32
  Read a person:
33
33
 
34
34
  ```ruby
35
- person = swift.read_person("you@example.com")
35
+ person = swift.read_person("you@example.com") # -> {:status => 0, :response => {...}}
36
36
  ```
37
37
 
38
38
  Add someone to a mail group:
39
39
 
40
40
  ```ruby
41
- swift.add_group_member("you@example.com", "Group Name") # -> "0"
41
+ swift.add_group_member("you@example.com", "Group Name") # -> {:status => 0, :response => true}
42
42
  ```
43
43
 
44
44
  Remove someone from a mail group:
45
45
 
46
46
  ```ruby
47
- swift.remove_group_member("you@example.com", "Group Name") # -> "0"
47
+ swift.remove_group_member("you@example.com", "Group Name") # -> {:status => 0, :response => true}
48
48
  ```
49
49
 
50
50
  Create a person:
51
51
 
52
52
  ```ruby
53
- swift.write_person(email: "me@example.com", first_name: "Dennis", last_name: "Ritchie") # -> "0"
53
+ swift.write_person(email: "me@example.com", first_name: "Dennis", last_name: "Ritchie") # -> {:status => 0, :response => true}
54
54
  ```
55
55
 
56
56
  Update person:
57
57
 
58
58
  ```ruby
59
- swift.update_person(email: "you@example.com", first_name: "Donald", last_name: "Knuth") # -> "0"
59
+ swift.update_person(email: "you@example.com", first_name: "Donald", last_name: "Knuth") # -> {:status => 0, :response => true}
60
60
  ```
61
61
 
62
62
  Create or update existing person:
63
63
 
64
64
  ```ruby
65
- swift.write_or_update_person(email: "me@example.com", first_name: "Dennis", last_name: "Ritchie") # -> "0"
65
+ swift.write_or_update_person(email: "me@example.com", first_name: "Dennis", last_name: "Ritchie") # -> {:status => 0, :response => true}
66
66
  ```
67
67
 
68
68
  Create a group:
69
69
 
70
70
  ```ruby
71
- swift.write_group("Group name") # -> "0"
71
+ swift.write_group("Group name") # -> {:status => 0, :response => true}
72
72
  ```
73
73
 
74
74
  Read all groups:
75
75
 
76
76
  ```ruby
77
- groups = swift.read_groups
77
+ groups = swift.read_groups # -> {:status => 0, :response => ["group1", "group2", ...]}
78
78
  ```
79
79
 
80
80
  Read all members of a group:
81
81
 
82
82
  ```ruby
83
- people = swift.read_persons("Group Name")
83
+ people = swift.read_persons("Group Name") # -> {:status => 0, :response => [{...}, ...]}
84
84
  ```
85
85
 
86
86
  Remove a group:
87
87
 
88
88
  ```ruby
89
- swift.remove_group("Group Name") # -> "0"
89
+ swift.remove_group("Group Name") # -> {:status => 0, :response => true}
90
90
  ```
91
91
 
92
92
  Remove a person:
93
93
 
94
94
  ```ruby
95
- swift.remove_person("you@example.com") # -> "0"
95
+ swift.remove_person("you@example.com") # -> {:status => 0, :response => true}
96
96
  ```
97
97
 
98
98
  TODO
99
99
  ----
100
- * Tidy up responses (Hashie?)
101
- * Return true/false instead of "0" for write actions
102
100
  * Allow custom fields in write/update
@@ -12,7 +12,7 @@ class RubySwift
12
12
  end
13
13
 
14
14
  def person_exists?(email)
15
- read_person(email).is_a?(Hash)
15
+ read_person(email)[:status] == 0
16
16
  end
17
17
 
18
18
  def write_or_update_person(fields)
@@ -24,43 +24,53 @@ class RubySwift
24
24
  end
25
25
 
26
26
  def read_person(email)
27
- soap_request("read_person", {email: email})
27
+ return_response(soap_request("read_person", {email: email})) do |sr|
28
+ convert_to_person(sr)
29
+ end
28
30
  end
29
31
 
30
32
  def write_person(fields)
31
- soap_request("write_person", fields)
33
+ return_response(soap_request("write_person", fields))
32
34
  end
33
35
 
34
36
  def read_groups
35
- soap_request("read_groups")
37
+ return_response(soap_request("read_groups")) do |sr|
38
+ sr[:item].map do |group|
39
+ group[:item][:value]
40
+ end
41
+ end
36
42
  end
37
43
 
38
44
  def add_group_member(email, group_name)
39
- soap_request("add_group_member", {email: email, group_name: group_name})
45
+ return_response(soap_request("add_group_member", {email: email, group_name: group_name}))
40
46
  end
41
47
 
42
48
  def remove_group_member(email, group_name)
43
- soap_request("remove_group_member", {email: email, group_name: group_name})
49
+ return_response(soap_request("remove_group_member", {email: email, group_name: group_name}))
44
50
  end
45
51
 
46
52
  def read_persons(group_name)
47
- soap_request("read_persons", {group_name: group_name})
53
+ return_response(soap_request("read_persons", {group_name: group_name})) do |sr|
54
+ sr[:item].map do |person|
55
+ convert_to_person(person)
56
+ end
57
+ end
48
58
  end
49
59
 
50
60
  def remove_group(group_name)
51
- soap_request("remove_group", {group_name: group_name})
61
+ return_response(soap_request("remove_group", {group_name: group_name}))
52
62
  end
53
63
 
54
64
  def remove_person(email)
55
- soap_request("remove_person", {email: email})
65
+ return_response(soap_request("remove_person", {group_name: group_name}))
56
66
  end
57
67
 
58
68
  def update_person(old_email, fields)
59
- soap_request("update_person", {email_old: old_email}.merge(fields))
69
+ return_response(soap_request("update_person", {email_old: old_email}.merge(fields)))
60
70
  end
61
71
 
62
72
  def write_group(group_name)
63
- soap_request("write_group", {group_name: group_name})
73
+ return_response(soap_request("write_group", {group_name: group_name}))
64
74
  end
65
75
 
66
76
  private
@@ -91,4 +101,23 @@ class RubySwift
91
101
  def tidy_response(response)
92
102
  response.to_a[0][1][:return]
93
103
  end
104
+
105
+ def convert_to_person(soap_response)
106
+ Hash[*soap_response[:item].map { |line|
107
+ [line[:key].to_sym, (line[:value].is_a? Hash) ? nil : line[:value]]
108
+ }.flatten]
109
+ end
110
+
111
+ def return_response(soap_response, &block)
112
+ status = soap_response.to_s.to_i
113
+ resp = if status == 0
114
+ if block_given?
115
+ yield soap_response
116
+ else
117
+ true
118
+ end
119
+ end
120
+
121
+ return {:status => status, :response => resp}
122
+ end
94
123
  end
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-swift
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Buntine
8
+ - Philip Castiglione
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2015-08-16 00:00:00.000000000 Z
12
+ date: 2015-09-03 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: savon
@@ -53,7 +54,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
53
54
  version: '0'
54
55
  requirements: []
55
56
  rubyforge_project:
56
- rubygems_version: 2.4.8
57
+ rubygems_version: 2.4.6
57
58
  signing_key:
58
59
  specification_version: 4
59
60
  summary: A ruby wrapper of the Swift Digital Suite API.