civicrm 1.0.1 → 1.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 +7 -0
- data/lib/civicrm.rb +7 -1
- data/lib/civicrm/actions/create.rb +6 -1
- data/lib/civicrm/actions/destroy.rb +17 -2
- data/lib/civicrm/actions/find.rb +6 -1
- data/lib/civicrm/actions/list.rb +5 -1
- data/lib/civicrm/actions/update.rb +8 -5
- data/lib/civicrm/client.rb +11 -2
- data/lib/civicrm/resource.rb +2 -2
- data/lib/civicrm/resources/base.rb +13 -1
- data/lib/civicrm/version.rb +1 -1
- metadata +23 -45
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 608968f5678017833a98105dbd51d3da51c98f8a
|
4
|
+
data.tar.gz: 4993a15314c5d0be867f60baad7d20f32b595029
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: ddea2392172c99b6141bd0ac5a68c0d8cfc0dc878193022c8467ef5d41266b7eb4518e2798e7d81fda2543aa31a49c13a484a0ae0cd356e7322a8add3cb2f3a4
|
7
|
+
data.tar.gz: e54c3ee7263b88bfcf975b8a22862a6d851684fa34014e31d0aa7a9c5537bae2d40feeb5608d1229eeef1c7b5c35b0ae3c786a10d4b49c1a018f64fc0685db85
|
data/lib/civicrm.rb
CHANGED
@@ -25,6 +25,8 @@ require 'civicrm/errors'
|
|
25
25
|
require 'civicrm/resources/base'
|
26
26
|
|
27
27
|
module CiviCrm
|
28
|
+
Error = Class.new(Exception)
|
29
|
+
|
28
30
|
@@api_key = nil
|
29
31
|
@@site_key = nil
|
30
32
|
@@api_base = 'https://www.example.org/path/to/civi/codebase'
|
@@ -44,4 +46,8 @@ module CiviCrm
|
|
44
46
|
auth = Client.request(:post, q: 'civicrm/login', name: name, pass: password)
|
45
47
|
@@api_key = auth[0]['api_key']
|
46
48
|
end
|
47
|
-
|
49
|
+
|
50
|
+
def self.api_key=(key)
|
51
|
+
@@api_key = key
|
52
|
+
end
|
53
|
+
end
|
@@ -5,6 +5,11 @@ module CiviCrm
|
|
5
5
|
def create(attrs = {})
|
6
6
|
params = {'entity' => entity_class_name, 'action' => 'create'}
|
7
7
|
response = CiviCrm::Client.request(:post, params.merge(attrs))
|
8
|
+
|
9
|
+
if response.first.nil?
|
10
|
+
raise Error, "Couldn't create #{entity_class_name}"
|
11
|
+
end
|
12
|
+
|
8
13
|
Resource.build_from(response.first, params)
|
9
14
|
end
|
10
15
|
end
|
@@ -14,4 +19,4 @@ module CiviCrm
|
|
14
19
|
end
|
15
20
|
end
|
16
21
|
end
|
17
|
-
end
|
22
|
+
end
|
@@ -2,10 +2,25 @@ module CiviCrm
|
|
2
2
|
module Actions
|
3
3
|
module Destroy
|
4
4
|
def delete
|
5
|
-
params = {
|
5
|
+
params = {
|
6
|
+
'entity' => self.class.entity_class_name,
|
7
|
+
'action' => 'delete',
|
8
|
+
'id' => id
|
9
|
+
}
|
10
|
+
response = CiviCrm::Client.request(:post, params)
|
11
|
+
refresh_from(response.first.to_hash)
|
12
|
+
end
|
13
|
+
|
14
|
+
def delete!
|
15
|
+
params = {
|
16
|
+
'entity' => self.class.entity_class_name,
|
17
|
+
'action' => 'delete',
|
18
|
+
'skip_undelete' => 1,
|
19
|
+
'id' => id
|
20
|
+
}
|
6
21
|
response = CiviCrm::Client.request(:post, params)
|
7
22
|
refresh_from(response.first.to_hash)
|
8
23
|
end
|
9
24
|
end
|
10
25
|
end
|
11
|
-
end
|
26
|
+
end
|
data/lib/civicrm/actions/find.rb
CHANGED
@@ -5,6 +5,11 @@ module CiviCrm
|
|
5
5
|
def find(id)
|
6
6
|
params = {'entity' => entity_class_name, 'action' => 'getsingle', 'id' => id}
|
7
7
|
response = CiviCrm::Client.request(:get, params)
|
8
|
+
|
9
|
+
if response.first.nil?
|
10
|
+
raise Error, "Couldn't find #{entity_class_name}##{id}"
|
11
|
+
end
|
12
|
+
|
8
13
|
Resource.build_from(response.first, params)
|
9
14
|
end
|
10
15
|
end
|
@@ -14,4 +19,4 @@ module CiviCrm
|
|
14
19
|
end
|
15
20
|
end
|
16
21
|
end
|
17
|
-
end
|
22
|
+
end
|
data/lib/civicrm/actions/list.rb
CHANGED
@@ -1,11 +1,14 @@
|
|
1
1
|
module CiviCrm
|
2
2
|
module Actions
|
3
3
|
module Update
|
4
|
-
# TODO: this method doesn't work yet
|
5
4
|
def update(attrs = {})
|
6
|
-
params = {
|
7
|
-
|
8
|
-
|
5
|
+
params = {
|
6
|
+
'entity' => self.class.entity_class_name,
|
7
|
+
'action' => 'create',
|
8
|
+
'id' => id
|
9
|
+
}.merge(attributes).merge(attrs)
|
10
|
+
|
11
|
+
response = CiviCrm::Client.request(:post, params)
|
9
12
|
refresh_from(response.first.to_hash)
|
10
13
|
end
|
11
14
|
|
@@ -16,4 +19,4 @@ module CiviCrm
|
|
16
19
|
end
|
17
20
|
end
|
18
21
|
end
|
19
|
-
end
|
22
|
+
end
|
data/lib/civicrm/client.rb
CHANGED
@@ -26,8 +26,17 @@ module CiviCrm
|
|
26
26
|
end
|
27
27
|
opts[:url] = CiviCrm.api_url(path)
|
28
28
|
response = execute(opts)
|
29
|
+
|
30
|
+
puts(JSON.dump(params)) if ENV["DEBUG_CIVICRM_REQUEST"]
|
31
|
+
puts(response) if ENV["DEBUG_CIVICRM_RESPONSE"]
|
32
|
+
|
29
33
|
body, code = response.body, response.code
|
30
|
-
|
34
|
+
|
35
|
+
CiviCrm::XML.parse(body).tap do |results|
|
36
|
+
Array(results).each do |res|
|
37
|
+
raise Error, res["error_message"] if res["is_error"] == "1"
|
38
|
+
end
|
39
|
+
end
|
31
40
|
end
|
32
41
|
|
33
42
|
def execute(opts)
|
@@ -67,4 +76,4 @@ module CiviCrm
|
|
67
76
|
end
|
68
77
|
end
|
69
78
|
end
|
70
|
-
end
|
79
|
+
end
|
data/lib/civicrm/resource.rb
CHANGED
@@ -14,7 +14,7 @@ module CiviCrm
|
|
14
14
|
# we will use this method for creating nested resources
|
15
15
|
def refresh_from(values)
|
16
16
|
values.each do |key, value|
|
17
|
-
@values[key] = value
|
17
|
+
@values[key.to_s] = value
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
@@ -81,4 +81,4 @@ module CiviCrm
|
|
81
81
|
end
|
82
82
|
end
|
83
83
|
end
|
84
|
-
end
|
84
|
+
end
|
@@ -44,6 +44,9 @@ module CiviCrm
|
|
44
44
|
class ContributionRecur < BaseResource
|
45
45
|
entity :contribution_recur
|
46
46
|
end
|
47
|
+
class Country < BaseResource
|
48
|
+
entity :country
|
49
|
+
end
|
47
50
|
class CustomField < BaseResource
|
48
51
|
entity :custom_field
|
49
52
|
end
|
@@ -119,6 +122,9 @@ module CiviCrm
|
|
119
122
|
class Membership < BaseResource
|
120
123
|
entity :membership
|
121
124
|
end
|
125
|
+
class MembershipPayment < BaseResource
|
126
|
+
entity :membership_payment
|
127
|
+
end
|
122
128
|
class Note < BaseResource
|
123
129
|
entity :note
|
124
130
|
end
|
@@ -128,13 +134,19 @@ module CiviCrm
|
|
128
134
|
class Profile < BaseResource
|
129
135
|
entity :profile
|
130
136
|
end
|
137
|
+
class Relationship < BaseResource
|
138
|
+
entity :relationship
|
139
|
+
end
|
131
140
|
class Setting < BaseResource
|
132
141
|
entity :setting
|
133
142
|
end
|
143
|
+
class StateProvince < BaseResource
|
144
|
+
entity :state_province
|
145
|
+
end
|
134
146
|
class Survey < BaseResource
|
135
147
|
entity :survey
|
136
148
|
end
|
137
149
|
class SurveyRespondant < BaseResource
|
138
150
|
entity :survey_respondant
|
139
151
|
end
|
140
|
-
end
|
152
|
+
end
|
data/lib/civicrm/version.rb
CHANGED
metadata
CHANGED
@@ -1,126 +1,111 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: civicrm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
5
|
-
prerelease:
|
4
|
+
version: 1.0.2
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Iskander Haziev
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2018-06-11 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rest-client
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- - ~>
|
17
|
+
- - "~>"
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '1.4'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- - ~>
|
24
|
+
- - "~>"
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '1.4'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: activesupport
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - ">="
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - ">="
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: activemodel
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - ">="
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - ">="
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: nokogiri
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - ">="
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - ">="
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0'
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: rake
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
|
-
- -
|
73
|
+
- - ">="
|
84
74
|
- !ruby/object:Gem::Version
|
85
75
|
version: '0'
|
86
76
|
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
|
-
- -
|
80
|
+
- - ">="
|
92
81
|
- !ruby/object:Gem::Version
|
93
82
|
version: '0'
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: rspec
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
|
-
- -
|
87
|
+
- - ">="
|
100
88
|
- !ruby/object:Gem::Version
|
101
89
|
version: '0'
|
102
90
|
type: :development
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
|
-
- -
|
94
|
+
- - ">="
|
108
95
|
- !ruby/object:Gem::Version
|
109
96
|
version: '0'
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: mocha
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
|
-
- -
|
101
|
+
- - ">="
|
116
102
|
- !ruby/object:Gem::Version
|
117
103
|
version: '0'
|
118
104
|
type: :development
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
|
-
- -
|
108
|
+
- - ">="
|
124
109
|
- !ruby/object:Gem::Version
|
125
110
|
version: '0'
|
126
111
|
description: See http://civicrm.org for details.
|
@@ -131,8 +116,8 @@ executables:
|
|
131
116
|
extensions: []
|
132
117
|
extra_rdoc_files: []
|
133
118
|
files:
|
134
|
-
- .gitignore
|
135
|
-
- .travis.yml
|
119
|
+
- ".gitignore"
|
120
|
+
- ".travis.yml"
|
136
121
|
- CONTRIBUTORS
|
137
122
|
- Gemfile
|
138
123
|
- Gemfile.lock
|
@@ -163,32 +148,25 @@ files:
|
|
163
148
|
- spec/support/test_matchers.rb
|
164
149
|
homepage: http://civicrm.org
|
165
150
|
licenses: []
|
151
|
+
metadata: {}
|
166
152
|
post_install_message:
|
167
153
|
rdoc_options: []
|
168
154
|
require_paths:
|
169
155
|
- lib
|
170
156
|
required_ruby_version: !ruby/object:Gem::Requirement
|
171
|
-
none: false
|
172
157
|
requirements:
|
173
|
-
- -
|
158
|
+
- - ">="
|
174
159
|
- !ruby/object:Gem::Version
|
175
160
|
version: '0'
|
176
|
-
segments:
|
177
|
-
- 0
|
178
|
-
hash: -4533903245477044172
|
179
161
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
180
|
-
none: false
|
181
162
|
requirements:
|
182
|
-
- -
|
163
|
+
- - ">="
|
183
164
|
- !ruby/object:Gem::Version
|
184
165
|
version: '0'
|
185
|
-
segments:
|
186
|
-
- 0
|
187
|
-
hash: -4533903245477044172
|
188
166
|
requirements: []
|
189
167
|
rubyforge_project:
|
190
|
-
rubygems_version:
|
168
|
+
rubygems_version: 2.5.1
|
191
169
|
signing_key:
|
192
|
-
specification_version:
|
170
|
+
specification_version: 4
|
193
171
|
summary: Ruby bindings for the CiviCRM API
|
194
172
|
test_files: []
|