civicrm 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
@@ -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
- end
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 = {'entity' => self.class.entity_class_name, 'action' => 'delete', 'id' => id}
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
@@ -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
@@ -12,6 +12,10 @@ module CiviCrm
12
12
  all.count
13
13
  end
14
14
 
15
+ def find_by(params={})
16
+ all(params).first
17
+ end
18
+
15
19
  def first
16
20
  all.first
17
21
  end
@@ -26,4 +30,4 @@ module CiviCrm
26
30
  end
27
31
  end
28
32
  end
29
- end
33
+ end
@@ -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 = {'entity' => self.class.entity_class_name, 'action' => 'replace', 'id' => id}
7
- new_attrs = attributes.merge(attrs)
8
- response = CiviCrm::Client.request(:post, params.merge(values: new_attrs))
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
@@ -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
- CiviCrm::XML.parse(body)
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
@@ -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
@@ -1,3 +1,3 @@
1
1
  module CiviCrm
2
- VERSION = '1.0.1'
2
+ VERSION = '1.0.2'
3
3
  end
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.1
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: 2013-05-08 00:00:00.000000000 Z
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: 1.8.25
168
+ rubygems_version: 2.5.1
191
169
  signing_key:
192
- specification_version: 3
170
+ specification_version: 4
193
171
  summary: Ruby bindings for the CiviCRM API
194
172
  test_files: []