bloomerang_api 0.2.2 → 1.0.1
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/.DS_Store +0 -0
- data/README.md +76 -54
- data/lib/bloomerang/address.rb +5 -5
- data/lib/bloomerang/appeal.rb +4 -4
- data/lib/bloomerang/base.rb +17 -18
- data/lib/bloomerang/campaign.rb +5 -5
- data/lib/bloomerang/configuration.rb +7 -1
- data/lib/bloomerang/constituent.rb +11 -14
- data/lib/bloomerang/custom_field.rb +5 -5
- data/lib/bloomerang/email.rb +5 -5
- data/lib/bloomerang/email_interest.rb +2 -2
- data/lib/bloomerang/fund.rb +4 -4
- data/lib/bloomerang/household.rb +7 -7
- data/lib/bloomerang/interaction.rb +5 -5
- data/lib/bloomerang/note.rb +5 -5
- data/lib/bloomerang/phone.rb +5 -5
- data/lib/bloomerang/pledge.rb +5 -5
- data/lib/bloomerang/refund.rb +6 -6
- data/lib/bloomerang/relationship.rb +6 -6
- data/lib/bloomerang/soft_credit.rb +5 -5
- data/lib/bloomerang/task.rb +6 -6
- data/lib/bloomerang/transaction.rb +7 -7
- data/lib/bloomerang/tribute.rb +5 -5
- data/lib/bloomerang/version.rb +1 -1
- data/lib/bloomerang.rb +6 -2
- data/lib/generators/bloomerang/templates/bloomerang_config.rb +2 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1115ff6cbfd710e29125b2f1dffd2c3a0406f650cab18e5188d92f64384469cf
|
4
|
+
data.tar.gz: 2329d69106766e001d2bd55376a040f5a0ccda7a3e3117f7e33b519c85bc6200
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6402efa8347325f403db5f3e9362533ccf0f522678599bff1642a28ef1786a0931f7fc7f6e332390d15b71b8dcca21bf6d645e41107c6ff1155cd8d2c4b12a58
|
7
|
+
data.tar.gz: 1423f68406509952f130961e78b0e70582d51bf77ada6541fe93a854536f3b3b9552a7ecb5cdba33c0b05a91cc96a083c6d1a0b2c016c69f11d93063eb690b9a
|
data/.DS_Store
ADDED
Binary file
|
data/README.md
CHANGED
@@ -7,15 +7,15 @@ _Note: you must be a Bloomerang customer with an active account to access the AP
|
|
7
7
|
|
8
8
|
This gem is based upon the initial work of [@allynfolksjr](https://github.com/allynfolksjr) at https://github.com/mcsweeneys/bloomerang. They added limited endpoint support for:
|
9
9
|
|
10
|
-
* Constituent
|
11
|
-
* Fund
|
12
|
-
* Transaction
|
10
|
+
* Constituent
|
11
|
+
* Fund
|
12
|
+
* Transaction
|
13
13
|
|
14
|
-
This gem adds support [
|
14
|
+
This gem adds support for [all other endpoints](https://github.com/chiperific/bloomerang_api/tree/main/lib/bloomerang), _except_:
|
15
15
|
|
16
|
-
* Processor
|
17
|
-
* User
|
18
|
-
* WalletItem
|
16
|
+
* Processor
|
17
|
+
* User
|
18
|
+
* WalletItem
|
19
19
|
|
20
20
|
|
21
21
|
## Installation for Ruby on Rails:
|
@@ -23,42 +23,41 @@ This gem adds support [__all__ other endpoints](https://github.com/chiperific/bl
|
|
23
23
|
Add this line to your application's Gemfile:
|
24
24
|
|
25
25
|
```ruby
|
26
|
-
gem "bloomerang_api", "~> 0
|
26
|
+
gem "bloomerang_api", "~> 1.0"
|
27
27
|
```
|
28
28
|
|
29
29
|
And then execute:
|
30
30
|
|
31
31
|
`$ bundle install`
|
32
32
|
|
33
|
-
Or install it yourself as:
|
34
|
-
|
35
|
-
`$ gem install bloomerang_api`
|
36
|
-
|
37
33
|
## Setup
|
38
34
|
|
39
35
|
1. Get your Bloomerang API Key:
|
40
36
|
|
41
|
-
- Generate your v2.0 API key from [your Bloomerang user settings](https://crm.bloomerang.co/Settings/User/Edit)
|
37
|
+
- Generate your v2.0 API key from [your Bloomerang user settings](https://crm.bloomerang.co/Settings/User/Edit)
|
42
38
|
|
43
39
|
2. Add your API key to your app using a secure method:
|
44
40
|
|
45
|
-
- [Credentials](https://edgeguides.rubyonrails.org/security.html#custom-credentials) strategy (preferred):
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
41
|
+
- [Credentials](https://edgeguides.rubyonrails.org/security.html#custom-credentials) strategy (preferred):
|
42
|
+
|
43
|
+
```yaml
|
44
|
+
# ./config/credentials.yml
|
45
|
+
bloomerang:
|
46
|
+
api_key: myapikey
|
47
|
+
```
|
48
|
+
|
49
|
+
- [dotenv](https://github.com/bkeepers/dotenv) strategy:
|
50
|
+
|
51
|
+
```ruby
|
52
|
+
# ./.env
|
53
|
+
BLOOMERANG_API_KEY=myapikey
|
54
|
+
```
|
51
55
|
|
52
|
-
- [
|
53
|
-
```ruby
|
54
|
-
# ./.env
|
55
|
-
BLOOMERANG_API_KEY=myapikey
|
56
|
-
```
|
56
|
+
- [ENV](https://blog.devgenius.io/what-are-environment-variables-in-rails-6f7e97a0b164) strategy:
|
57
57
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
```
|
58
|
+
```bash
|
59
|
+
$ export BLOOMERANG_API_KEY=myapikey
|
60
|
+
```
|
62
61
|
|
63
62
|
3. Run the generator to create the initializer file:
|
64
63
|
|
@@ -66,28 +65,56 @@ Or install it yourself as:
|
|
66
65
|
$ rails generate bloomerang:initializer
|
67
66
|
```
|
68
67
|
|
68
|
+
This will create the file `./config/initializers/bloomerang.rb` where you can set your API key:
|
69
|
+
|
70
|
+
```ruby
|
71
|
+
require 'bloomerang'
|
72
|
+
|
73
|
+
Bloomerang.configure do |config|
|
74
|
+
### Set your Bloomerang API key:
|
75
|
+
# Generate your v2.0 API key from your Bloomerang user settings:
|
76
|
+
# https://crm.bloomerang.co/Settings/User/Edit
|
77
|
+
#
|
78
|
+
# UNSECURE: DO NOT ADD THE KEY DIRECTLY TO THIS FILE!
|
79
|
+
# It will be exposed in your source code.
|
80
|
+
# Instead, use a secure method to store your API key
|
81
|
+
#
|
82
|
+
# Rails credentials example (preferred):
|
83
|
+
# Learn about encrypted credentials: https://edgeguides.rubyonrails.org/security.html#custom-credentials
|
84
|
+
# config.api_key = Rails.application.credentials.dig(:bloomerang, :api_key)
|
85
|
+
#
|
86
|
+
# ENV or dotenv example:
|
87
|
+
# Learn about dotenv gem: https://github.com/bkeepers/dotenv
|
88
|
+
# config.api_key = ENV["BLOOMERANG_API_KEY"]
|
89
|
+
end
|
90
|
+
```
|
91
|
+
|
92
|
+
## Usage
|
93
|
+
|
94
|
+
:point_down::point_down::point_down::point_down::point_down::point_down::point_down::point_down::point_down::point_down::point_down::point_down::point_down::point_down::point_down::point_down::point_down::point_down::point_down::point_down::point_down::point_down::point_down::point_down::point_down::point_down::point_down::point_down::point_down::point_down::point_down::point_down:
|
95
|
+
|
69
96
|
### WARNING: NO SANDBOX, PRODUCTION ONLY
|
70
97
|
|
71
98
|
Bloomerang does not offer a sandbox environment or any way to test API calls without actually affecting your production data.
|
72
99
|
|
73
|
-
__Any POST, PUT and DELETE requests will be run against your live Bloomerang account!__
|
74
|
-
|
75
100
|
[Please encourage Bloomerang](https://crm.bloomerang.co/Home/FeaturesPortal) to address this issue.
|
76
101
|
|
77
|
-
|
102
|
+
***Any POST, PUT and DELETE requests will be run against your live Bloomerang account!***
|
78
103
|
|
79
|
-
|
104
|
+
:point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2::point_up_2:
|
105
|
+
|
106
|
+
### Standard structure:
|
80
107
|
|
81
108
|
- Reading records:
|
82
|
-
|
83
|
-
|
109
|
+
- `#fetch`: a GET request that returns a batch of records, 50 by default (see paging/batching below for more)
|
110
|
+
- `#show`: a GET request returns a single record that matches the provided ID
|
84
111
|
|
85
112
|
- Creating, updating and deleting records:
|
86
|
-
|
87
|
-
|
88
|
-
|
113
|
+
- `#create`: a POST request that creates a record based on the provided `body` variable.
|
114
|
+
- `#update`: a PUT request that updates a record
|
115
|
+
- `#delete`: a DELETE request that deletes a record
|
89
116
|
|
90
|
-
__It is highly recommended to reference the [documentation](https://bloomerang.co/product/integrations-data-management/api/rest-api) to identify required and allowed attributes.__
|
117
|
+
__It is highly recommended to reference the [documentation](https://bloomerang.co/product/integrations-data-management/api/rest-api) to identify required and allowed attributes.__
|
91
118
|
|
92
119
|
Some `Class`es have custom endpoints. For example:
|
93
120
|
|
@@ -97,12 +124,12 @@ Some `Class`es have custom endpoints. For example:
|
|
97
124
|
- `Bloomerang::Constituent.search`
|
98
125
|
- `Bloomerang::CustomField.categories`
|
99
126
|
|
100
|
-
|
127
|
+
Check [the specific class](https://github.com/chiperific/bloomerang_api/tree/main/lib/bloomerang) for available methods.
|
101
128
|
|
102
129
|
### GET requests:
|
103
|
-
Most
|
130
|
+
Most GET requests have URL parameters that can be set.
|
104
131
|
|
105
|
-
Each `Class`
|
132
|
+
[Each `Class`](https://github.com/chiperific/bloomerang_api/tree/main/lib/bloomerang) lists the available parameters you can append to `GET` requests, you can also check each endpoints' [documentation](https://bloomerang.co/product/integrations-data-management/api/rest-api).
|
106
133
|
|
107
134
|
#### Paging / Batching support:
|
108
135
|
|
@@ -122,12 +149,11 @@ The result will include these keys:
|
|
122
149
|
|
123
150
|
```json
|
124
151
|
{
|
125
|
-
"Total": 1850,
|
126
|
-
"TotalFiltered": 1850,
|
152
|
+
"Total": 1850, // All records in the database
|
153
|
+
"TotalFiltered": 1850, // All records that match query/filters
|
127
154
|
"Start": 0,
|
128
155
|
"ResultCount": 50,
|
129
|
-
"Results": [
|
130
|
-
{ ...
|
156
|
+
"Results": []
|
131
157
|
```
|
132
158
|
|
133
159
|
`"Start"` should be equal to `skip` and `"ResultCount` should be equal to `take`.
|
@@ -136,25 +162,21 @@ Increase your `skip` value by your `take` value to get the next page/batch of re
|
|
136
162
|
|
137
163
|
```ruby
|
138
164
|
params = { skip: 50, take: 50 }
|
139
|
-
|
165
|
+
next_fifty_constituents = Bloomerang::Constituent.fetch(params)
|
140
166
|
```
|
141
167
|
|
142
168
|
```json
|
143
169
|
{
|
144
|
-
"Total": 1850,
|
145
|
-
"TotalFiltered": 1850,
|
170
|
+
"Total": 1850, // All records in the database
|
171
|
+
"TotalFiltered": 1850, // All records that match query/filters
|
146
172
|
"Start": 50,
|
147
173
|
"ResultCount": 50,
|
148
|
-
"Results": [
|
149
|
-
{ ...
|
174
|
+
"Results": []
|
150
175
|
```
|
151
176
|
|
152
177
|
### POST/PUT/DELETE requests:
|
153
|
-
__WARNING: Bloomerang has no test/sandbox feature!__
|
154
|
-
|
155
|
-
Any POST, PUT and DELETE requests will be run against your live Bloomerang account!
|
156
178
|
|
157
|
-
|
179
|
+
***WARNING: Bloomerang has no test/sandbox feature! Any POST, PUT and DELETE requests will be run against your live Bloomerang account! Proceed with caution!***
|
158
180
|
|
159
181
|
|
160
182
|
`#update`, and `#delete` methods require a record ID and a `body` object. Not all `Class`es implement a `#delete` endpoint.
|
data/lib/bloomerang/address.rb
CHANGED
@@ -26,7 +26,7 @@ module Bloomerang
|
|
26
26
|
# take integer, default: 50, simple paging system
|
27
27
|
# constituent array[integer], separated by pipes: "1|2|3"
|
28
28
|
# id array[integer], separated by pipes: "1|2|3"
|
29
|
-
def fetch(params = {})
|
29
|
+
def self.fetch(params = {})
|
30
30
|
get("addresses", params)
|
31
31
|
end
|
32
32
|
|
@@ -35,7 +35,7 @@ module Bloomerang
|
|
35
35
|
#
|
36
36
|
## Params:
|
37
37
|
# id integer
|
38
|
-
def
|
38
|
+
def self.show(id)
|
39
39
|
get("addresses/#{id}")
|
40
40
|
end
|
41
41
|
|
@@ -44,7 +44,7 @@ module Bloomerang
|
|
44
44
|
#
|
45
45
|
# Params:
|
46
46
|
# body see API for fields
|
47
|
-
def create(body)
|
47
|
+
def self.create(body)
|
48
48
|
post("address", {}, body)
|
49
49
|
end
|
50
50
|
|
@@ -54,7 +54,7 @@ module Bloomerang
|
|
54
54
|
# Params:
|
55
55
|
# id integer
|
56
56
|
# body see API for fields
|
57
|
-
def update(id, body)
|
57
|
+
def self.update(id, body)
|
58
58
|
put("address/#{id}", {}, body)
|
59
59
|
end
|
60
60
|
|
@@ -63,7 +63,7 @@ module Bloomerang
|
|
63
63
|
#
|
64
64
|
# Params:
|
65
65
|
# id integer
|
66
|
-
def delete(id)
|
66
|
+
def self.delete(id)
|
67
67
|
delete("address/#{id}", {})
|
68
68
|
end
|
69
69
|
end
|
data/lib/bloomerang/appeal.rb
CHANGED
@@ -19,7 +19,7 @@ module Bloomerang
|
|
19
19
|
# id array[integer], separated by pipes: "1|2|3"
|
20
20
|
# isActive boolean, Filters to either active or inactive appeals
|
21
21
|
# search string, Filters to appeals with names that match any part of the search string
|
22
|
-
def fetch(params)
|
22
|
+
def self.fetch(params)
|
23
23
|
get("appeals", params)
|
24
24
|
end
|
25
25
|
|
@@ -28,7 +28,7 @@ module Bloomerang
|
|
28
28
|
#
|
29
29
|
# Params:
|
30
30
|
# id integer
|
31
|
-
def
|
31
|
+
def self.show(id)
|
32
32
|
get("appeal/#{id}")
|
33
33
|
end
|
34
34
|
|
@@ -37,7 +37,7 @@ module Bloomerang
|
|
37
37
|
#
|
38
38
|
# Params:
|
39
39
|
# body see API for fields
|
40
|
-
def create(body)
|
40
|
+
def self.create(body)
|
41
41
|
post("appeal", {}, body)
|
42
42
|
end
|
43
43
|
|
@@ -47,7 +47,7 @@ module Bloomerang
|
|
47
47
|
# Params:
|
48
48
|
# id integer
|
49
49
|
# body see API for fields
|
50
|
-
def update(id, body)
|
50
|
+
def self.update(id, body)
|
51
51
|
put("appeal/#{id}", {}, body)
|
52
52
|
end
|
53
53
|
end
|
data/lib/bloomerang/base.rb
CHANGED
@@ -7,40 +7,39 @@ module Bloomerang
|
|
7
7
|
## Bloomerang::Base
|
8
8
|
# Primary interface for Faraday
|
9
9
|
class Base
|
10
|
-
|
11
|
-
API_KEY = ENV["BLOOMERANG_API_KEY"]
|
12
|
-
|
13
|
-
def get(path, params = {})
|
10
|
+
def self.get(path, params = {})
|
14
11
|
response = connection(params).get(path)
|
15
12
|
JSON.parse response.body
|
16
13
|
end
|
17
14
|
|
18
|
-
def delete(path, params = {})
|
15
|
+
def self.delete(path, params = {})
|
19
16
|
response = connection(params).delete(path)
|
20
17
|
JSON.parse response.body
|
21
18
|
end
|
22
19
|
|
23
|
-
def post(path, params, body)
|
20
|
+
def self.post(path, params, body)
|
24
21
|
response = connection(params).post(path, body.to_json)
|
25
22
|
JSON.parse response.body
|
26
23
|
end
|
27
24
|
|
28
|
-
def put(path, params, body)
|
25
|
+
def self.put(path, params, body)
|
29
26
|
response = connection(params).put(path, body.to_json)
|
30
27
|
JSON.parse response.body
|
31
28
|
end
|
32
29
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
30
|
+
class << self
|
31
|
+
private
|
32
|
+
|
33
|
+
def connection(params)
|
34
|
+
Faraday.new(
|
35
|
+
url: Bloomerang.configuration.api_url,
|
36
|
+
headers: {
|
37
|
+
"Content-Type" => "application/json",
|
38
|
+
"X-API-Key" => Bloomerang.configuration.api_key
|
39
|
+
},
|
40
|
+
params: params
|
41
|
+
)
|
42
|
+
end
|
44
43
|
end
|
45
44
|
end
|
46
45
|
end
|
data/lib/bloomerang/campaign.rb
CHANGED
@@ -26,7 +26,7 @@ module Bloomerang
|
|
26
26
|
# IsActive boolean
|
27
27
|
# search string, returns matches on any part of name
|
28
28
|
# hasGoal boolean, have either non-zero-dollar or zero-dollar goals
|
29
|
-
def fetch(params = {})
|
29
|
+
def self.fetch(params = {})
|
30
30
|
get("campaigns", params)
|
31
31
|
end
|
32
32
|
|
@@ -35,7 +35,7 @@ module Bloomerang
|
|
35
35
|
#
|
36
36
|
# Params:
|
37
37
|
# id integer
|
38
|
-
def
|
38
|
+
def self.show(id)
|
39
39
|
get("campaign/#{id}")
|
40
40
|
end
|
41
41
|
|
@@ -45,7 +45,7 @@ module Bloomerang
|
|
45
45
|
## Params:
|
46
46
|
# id integer
|
47
47
|
# body JSON object, see API for fields
|
48
|
-
def update(id, body)
|
48
|
+
def self.update(id, body)
|
49
49
|
put("campaign/#{id}", {}, body)
|
50
50
|
end
|
51
51
|
|
@@ -54,7 +54,7 @@ module Bloomerang
|
|
54
54
|
#
|
55
55
|
## Params:
|
56
56
|
# body JSON object, see API for fields
|
57
|
-
def create(body)
|
57
|
+
def self.create(body)
|
58
58
|
post("campaign", {}, body)
|
59
59
|
end
|
60
60
|
|
@@ -64,7 +64,7 @@ module Bloomerang
|
|
64
64
|
# Returns: JSON: The list of campaigns that are active and have a non-zero goal.
|
65
65
|
#
|
66
66
|
## Params: none
|
67
|
-
def refresh_summaries
|
67
|
+
def self.refresh_summaries
|
68
68
|
get("campaigns/refreshsummaries")
|
69
69
|
end
|
70
70
|
end
|
@@ -1,7 +1,13 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Bloomerang
|
4
|
+
## Bloomerang::Configuration
|
4
5
|
class Configuration
|
5
|
-
attr_accessor :api_key
|
6
|
+
attr_accessor :api_key, :api_url
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
@api_url = "https://api.bloomerang.co/v2"
|
10
|
+
@api_key = nil
|
11
|
+
end
|
6
12
|
end
|
7
13
|
end
|
@@ -53,8 +53,6 @@ module Bloomerang
|
|
53
53
|
# CustomValues array[Objects], Objects are either OneValueAssignment or MultipleValueAssignments
|
54
54
|
# AuditTrail AuditTrail (Object)
|
55
55
|
class Constituent < Base
|
56
|
-
# for backwards compatability
|
57
|
-
|
58
56
|
### Fetch all constituents
|
59
57
|
## https://bloomerang.co/product/integrations-data-management/api/rest-api/#/Constituents/get_constituents
|
60
58
|
#
|
@@ -67,8 +65,7 @@ module Bloomerang
|
|
67
65
|
# id array[integer], separated by pipes: "1|2|3"
|
68
66
|
# orderBy string, Available values : Id (default), CreatedDate, LastModifiedDate
|
69
67
|
# orderDirection string, Available values : Asc, Desc
|
70
|
-
def fetch(params = {})
|
71
|
-
# TODO: BREAKING CHANGE: used to accept no arguments
|
68
|
+
def self.fetch(params = {})
|
72
69
|
get("constituents", params)
|
73
70
|
end
|
74
71
|
|
@@ -77,7 +74,7 @@ module Bloomerang
|
|
77
74
|
#
|
78
75
|
# Params:
|
79
76
|
# id integer
|
80
|
-
def
|
77
|
+
def self.show(id)
|
81
78
|
get("constituent/#{id}")
|
82
79
|
end
|
83
80
|
|
@@ -90,7 +87,7 @@ module Bloomerang
|
|
90
87
|
# id integer
|
91
88
|
#
|
92
89
|
# Returns: array of Relationships
|
93
|
-
def fetch_relationships(id, params = {})
|
90
|
+
def self.fetch_relationships(id, params = {})
|
94
91
|
get("constituent/#{id}/relationships", params)
|
95
92
|
end
|
96
93
|
|
@@ -104,7 +101,7 @@ module Bloomerang
|
|
104
101
|
# id integer
|
105
102
|
#
|
106
103
|
# Returns: paged list of TimelineEntrySummary models
|
107
|
-
def fetch_timeline(id, params = {})
|
104
|
+
def self.fetch_timeline(id, params = {})
|
108
105
|
get("constituent/#{id}/timeline", params)
|
109
106
|
end
|
110
107
|
|
@@ -114,7 +111,7 @@ module Bloomerang
|
|
114
111
|
# Params:
|
115
112
|
# id integer
|
116
113
|
# body see API for fields
|
117
|
-
def update_communication_settings(id, body)
|
114
|
+
def self.update_communication_settings(id, body)
|
118
115
|
put("/constituent/#{id}/updateCommunicationSettings", {}, body)
|
119
116
|
end
|
120
117
|
|
@@ -125,7 +122,7 @@ module Bloomerang
|
|
125
122
|
# skip integer, default: 0, simple paging system
|
126
123
|
# take integer, default: 50, simple paging system
|
127
124
|
# search string, searches on Full Name with
|
128
|
-
def search(params = {})
|
125
|
+
def self.search(params = {})
|
129
126
|
get("constituents/search", params)
|
130
127
|
end
|
131
128
|
|
@@ -144,7 +141,7 @@ module Bloomerang
|
|
144
141
|
# there is a create-only endpoint, but
|
145
142
|
# given the risk of duplicate records, this should be the default method
|
146
143
|
# for create-only over merge-or-create
|
147
|
-
def create(body)
|
144
|
+
def self.create(body)
|
148
145
|
# "When merging, the database will look for a possible duplicate defined as a
|
149
146
|
# name plus one piece of contact info (address, email, or phone). If a duplicate
|
150
147
|
# is found, the data passed in will be merged into an existing constituent.
|
@@ -167,7 +164,7 @@ module Bloomerang
|
|
167
164
|
# A more secure pattern would be to create the Constituent
|
168
165
|
# then use the returned Constituent ID to check for Emails, Addresses and Phones,
|
169
166
|
# and add records if necessary
|
170
|
-
def create_with_secondary(body)
|
167
|
+
def self.create_with_secondary(body)
|
171
168
|
post("constituent", {}, body)
|
172
169
|
end
|
173
170
|
|
@@ -177,7 +174,7 @@ module Bloomerang
|
|
177
174
|
# Params:
|
178
175
|
# id integer
|
179
176
|
# body see API for fields
|
180
|
-
def update(id, body)
|
177
|
+
def self.update(id, body)
|
181
178
|
put("constituent/#{id}", {}, body)
|
182
179
|
end
|
183
180
|
|
@@ -190,7 +187,7 @@ module Bloomerang
|
|
190
187
|
# NOTE: There is a GET version as well,
|
191
188
|
# but POST was chosen for future Model usage
|
192
189
|
# e.g. body = Constituent.duplicate_check_attributes
|
193
|
-
def find_duplicates(body)
|
190
|
+
def self.find_duplicates(body)
|
194
191
|
post("constituent/duplicates", {}, body)
|
195
192
|
end
|
196
193
|
|
@@ -199,7 +196,7 @@ module Bloomerang
|
|
199
196
|
#
|
200
197
|
# Params:
|
201
198
|
# id integer
|
202
|
-
def delete(id)
|
199
|
+
def self.delete(id)
|
203
200
|
delete("constituent/#{id}")
|
204
201
|
end
|
205
202
|
end
|
@@ -12,13 +12,13 @@ module Bloomerang
|
|
12
12
|
# DataType CustomFieldDataType (object): string, Enum: [ Currency, Date, Decimal, Text, Year ]
|
13
13
|
# PickType CustomFieldPickType (object): string, Enum: [ Freeform, PickMultiple, PickOne ]
|
14
14
|
# SortIndex integer($int32)
|
15
|
-
class CustomField
|
15
|
+
class CustomField < Base
|
16
16
|
### Fetch CustomField Categories by type
|
17
17
|
## https://bloomerang.co/product/integrations-data-management/api/rest-api/#/Custom%20Fields/get_customFieldCategories__type__
|
18
18
|
#
|
19
19
|
# Params:
|
20
20
|
# type string, Available values: Constituent, Transaction, Interaction, Note, Benevon
|
21
|
-
def categories(type)
|
21
|
+
def self.categories(type)
|
22
22
|
get("/customFieldCategories/#{type}/")
|
23
23
|
end
|
24
24
|
|
@@ -28,7 +28,7 @@ module Bloomerang
|
|
28
28
|
# Params:
|
29
29
|
# type string, Available values: Constituent, Transaction, Interaction, Note, Benevon
|
30
30
|
# isActive boolean, Default value: true
|
31
|
-
def fields(type, params = {})
|
31
|
+
def self.fields(type, params = {})
|
32
32
|
get("/customFields/#{type}/", params)
|
33
33
|
end
|
34
34
|
|
@@ -38,7 +38,7 @@ module Bloomerang
|
|
38
38
|
# Params:
|
39
39
|
# type string, Available values : Constituent, Transaction, Interaction, Note, Benevon
|
40
40
|
# isActive boolean, Default value: true
|
41
|
-
def values(type, params = {})
|
41
|
+
def self.values(type, params = {})
|
42
42
|
get("/customValues/#{type}/", params)
|
43
43
|
end
|
44
44
|
|
@@ -49,7 +49,7 @@ module Bloomerang
|
|
49
49
|
# type string, Available values : Constituent, Transaction, Interaction, Note, Benevon
|
50
50
|
# fieldId integer
|
51
51
|
# isActive boolean, Default value: true
|
52
|
-
def values_by_field(type, field_id, params = {})
|
52
|
+
def self.values_by_field(type, field_id, params = {})
|
53
53
|
get("/customValues/#{type}/#{field_id}", params)
|
54
54
|
end
|
55
55
|
end
|
data/lib/bloomerang/email.rb
CHANGED
@@ -20,7 +20,7 @@ module Bloomerang
|
|
20
20
|
# take integer, default: 50, simple paging system
|
21
21
|
# constituent array[integer], separated by pipes: "1|2|3"
|
22
22
|
# id array[integer], separated by pipes: "1|2|3"
|
23
|
-
def fetch(params = {})
|
23
|
+
def self.fetch(params = {})
|
24
24
|
get("emails", params)
|
25
25
|
end
|
26
26
|
|
@@ -29,7 +29,7 @@ module Bloomerang
|
|
29
29
|
#
|
30
30
|
# Params:
|
31
31
|
# id integer
|
32
|
-
def
|
32
|
+
def self.show(id)
|
33
33
|
get("email/#{id}")
|
34
34
|
end
|
35
35
|
|
@@ -38,7 +38,7 @@ module Bloomerang
|
|
38
38
|
#
|
39
39
|
# Params:
|
40
40
|
# body JSON object, see API for fields
|
41
|
-
def create(body)
|
41
|
+
def self.create(body)
|
42
42
|
post("email", {}, body)
|
43
43
|
end
|
44
44
|
|
@@ -48,7 +48,7 @@ module Bloomerang
|
|
48
48
|
# Params:
|
49
49
|
# id integer
|
50
50
|
# body JSON object, see API for fields
|
51
|
-
def update(id, body)
|
51
|
+
def self.update(id, body)
|
52
52
|
put("email/#{id}", {}, body)
|
53
53
|
end
|
54
54
|
|
@@ -57,7 +57,7 @@ module Bloomerang
|
|
57
57
|
#
|
58
58
|
# Params:
|
59
59
|
# id integer
|
60
|
-
def delete(id)
|
60
|
+
def self.delete(id)
|
61
61
|
delete("email/#{id}")
|
62
62
|
end
|
63
63
|
end
|
@@ -20,7 +20,7 @@ module Bloomerang
|
|
20
20
|
# take integer, default: 50, simple paging system
|
21
21
|
# id array[integer], separated by pipes: "1|2|3"
|
22
22
|
# isActive boolean
|
23
|
-
def fetch(params = {})
|
23
|
+
def self.fetch(params = {})
|
24
24
|
get("emailInterests", params)
|
25
25
|
end
|
26
26
|
|
@@ -29,7 +29,7 @@ module Bloomerang
|
|
29
29
|
#
|
30
30
|
# Params:
|
31
31
|
# id integer
|
32
|
-
def
|
32
|
+
def self.show(id)
|
33
33
|
get("emailInterest/#{id}")
|
34
34
|
end
|
35
35
|
end
|
data/lib/bloomerang/fund.rb
CHANGED
@@ -20,7 +20,7 @@ module Bloomerang
|
|
20
20
|
# id array[integer], separated by pipes: "1|2|3"
|
21
21
|
# isActive boolean
|
22
22
|
# search string, Filters to funds with names that match any part of the search string
|
23
|
-
def fetch(params = {})
|
23
|
+
def self.fetch(params = {})
|
24
24
|
get("funds", params)
|
25
25
|
end
|
26
26
|
|
@@ -29,7 +29,7 @@ module Bloomerang
|
|
29
29
|
#
|
30
30
|
# Params:
|
31
31
|
# id integer
|
32
|
-
def
|
32
|
+
def self.show(id)
|
33
33
|
get("fund/#{id}")
|
34
34
|
end
|
35
35
|
|
@@ -38,7 +38,7 @@ module Bloomerang
|
|
38
38
|
#
|
39
39
|
# Params:
|
40
40
|
# body JSON object, see API for fields
|
41
|
-
def create(body)
|
41
|
+
def self.create(body)
|
42
42
|
post("fund", {}, body)
|
43
43
|
end
|
44
44
|
|
@@ -48,7 +48,7 @@ module Bloomerang
|
|
48
48
|
# Params:
|
49
49
|
# id integer
|
50
50
|
# body JSON object, see API for fields
|
51
|
-
def update(id, body)
|
51
|
+
def self.update(id, body)
|
52
52
|
put("fund/#{id}", {}, body)
|
53
53
|
end
|
54
54
|
end
|
data/lib/bloomerang/household.rb
CHANGED
@@ -28,7 +28,7 @@ module Bloomerang
|
|
28
28
|
# take integer, default: 50, simple paging system
|
29
29
|
# lastModified string, date in iso8601 format, Filters to constituents last modified after the specified date
|
30
30
|
# id array[integer], separated by pipes: "1|2|3"
|
31
|
-
def fetch(params = {})
|
31
|
+
def self.fetch(params = {})
|
32
32
|
get("households", params)
|
33
33
|
end
|
34
34
|
|
@@ -37,7 +37,7 @@ module Bloomerang
|
|
37
37
|
#
|
38
38
|
# Params:
|
39
39
|
# id integer
|
40
|
-
def
|
40
|
+
def self.show(id)
|
41
41
|
get("household/#{id}")
|
42
42
|
end
|
43
43
|
|
@@ -48,7 +48,7 @@ module Bloomerang
|
|
48
48
|
# skip integer, default: 0, simple paging system
|
49
49
|
# take integer, default: 50, simple paging system
|
50
50
|
# search string, searches on household name and constituent full name, matches any part of string
|
51
|
-
def search(params = {})
|
51
|
+
def self.search(params = {})
|
52
52
|
# TODO: BREAKING CHANGE: query changed to params
|
53
53
|
Constituent.search(params)
|
54
54
|
end
|
@@ -58,7 +58,7 @@ module Bloomerang
|
|
58
58
|
#
|
59
59
|
# Params:
|
60
60
|
# body JSON object, see API for fields
|
61
|
-
def create(body)
|
61
|
+
def self.create(body)
|
62
62
|
post("household", {}, body)
|
63
63
|
end
|
64
64
|
|
@@ -68,7 +68,7 @@ module Bloomerang
|
|
68
68
|
# Params:
|
69
69
|
# id integer
|
70
70
|
# body JSON object, see API for fields
|
71
|
-
def update(id, body)
|
71
|
+
def self.update(id, body)
|
72
72
|
put("household/#{id}", {}, body)
|
73
73
|
end
|
74
74
|
|
@@ -77,7 +77,7 @@ module Bloomerang
|
|
77
77
|
#
|
78
78
|
# Params:
|
79
79
|
# id integer
|
80
|
-
def delete(id)
|
80
|
+
def self.delete(id)
|
81
81
|
delete("household/#{id}")
|
82
82
|
end
|
83
83
|
|
@@ -87,7 +87,7 @@ module Bloomerang
|
|
87
87
|
# Params:
|
88
88
|
# id integer
|
89
89
|
# body JSON object, see API for fields
|
90
|
-
def update_communication_settings(id, body)
|
90
|
+
def self.update_communication_settings(id, body)
|
91
91
|
put("household/#{id}/updateCommunicationSettings", {}, body)
|
92
92
|
end
|
93
93
|
end
|
@@ -38,7 +38,7 @@ module Bloomerang
|
|
38
38
|
# id array[integer], separated by pipes: "1|2|3"
|
39
39
|
# orderBy string, Available values : Id (default), CreatedDate, LastModifiedDate
|
40
40
|
# orderDirection string, Available values : Asc, Desc
|
41
|
-
def fetch(params = {})
|
41
|
+
def self.fetch(params = {})
|
42
42
|
get("interactions", params)
|
43
43
|
end
|
44
44
|
|
@@ -47,7 +47,7 @@ module Bloomerang
|
|
47
47
|
#
|
48
48
|
# Params:
|
49
49
|
# body JSON object, see API for fields
|
50
|
-
def create(body)
|
50
|
+
def self.create(body)
|
51
51
|
post("interaction", {}, body)
|
52
52
|
end
|
53
53
|
|
@@ -56,7 +56,7 @@ module Bloomerang
|
|
56
56
|
#
|
57
57
|
# Params:
|
58
58
|
# id integer
|
59
|
-
def
|
59
|
+
def self.show(id)
|
60
60
|
get("interaction/#{id}")
|
61
61
|
end
|
62
62
|
|
@@ -66,7 +66,7 @@ module Bloomerang
|
|
66
66
|
# Params:
|
67
67
|
# id integer
|
68
68
|
# body JSON object, see API for fields
|
69
|
-
def update(id, body)
|
69
|
+
def self.update(id, body)
|
70
70
|
put("interaction/#{id}", {}, body)
|
71
71
|
end
|
72
72
|
|
@@ -75,7 +75,7 @@ module Bloomerang
|
|
75
75
|
#
|
76
76
|
# Params:
|
77
77
|
# id integer
|
78
|
-
def delete(id)
|
78
|
+
def self.delete(id)
|
79
79
|
delete("interaction/#{id}")
|
80
80
|
end
|
81
81
|
end
|
data/lib/bloomerang/note.rb
CHANGED
@@ -21,7 +21,7 @@ module Bloomerang
|
|
21
21
|
# id array[integer], separated by pipes: "1|2|3"
|
22
22
|
# orderBy string, Available values : Id (default), CreatedDate, LastModifiedDate
|
23
23
|
# orderDirection string, Available values : Asc, Desc
|
24
|
-
def fetch(params = {})
|
24
|
+
def self.fetch(params = {})
|
25
25
|
get("notes", params)
|
26
26
|
end
|
27
27
|
|
@@ -30,7 +30,7 @@ module Bloomerang
|
|
30
30
|
#
|
31
31
|
# Params:
|
32
32
|
# body JSON object, see API for fields
|
33
|
-
def create(body)
|
33
|
+
def self.create(body)
|
34
34
|
post("note", {}, body)
|
35
35
|
end
|
36
36
|
|
@@ -39,7 +39,7 @@ module Bloomerang
|
|
39
39
|
#
|
40
40
|
# Params:
|
41
41
|
# id integer
|
42
|
-
def
|
42
|
+
def self.show(id)
|
43
43
|
get("note/#{id}")
|
44
44
|
end
|
45
45
|
|
@@ -49,7 +49,7 @@ module Bloomerang
|
|
49
49
|
# Params:
|
50
50
|
# id integer
|
51
51
|
# body JSON object, see API for fields
|
52
|
-
def update(id, body)
|
52
|
+
def self.update(id, body)
|
53
53
|
put("note/#{id}", {}, body)
|
54
54
|
end
|
55
55
|
|
@@ -58,7 +58,7 @@ module Bloomerang
|
|
58
58
|
#
|
59
59
|
# Params:
|
60
60
|
# id integer
|
61
|
-
def delete(id)
|
61
|
+
def self.delete(id)
|
62
62
|
delete("note/#{id}")
|
63
63
|
end
|
64
64
|
end
|
data/lib/bloomerang/phone.rb
CHANGED
@@ -18,7 +18,7 @@ module Bloomerang
|
|
18
18
|
# take integer, default: 50, simple paging system
|
19
19
|
# constituent array[integer], separated by pipes: "1|2|3"
|
20
20
|
# id array[integer], separated by pipes: "1|2|3"
|
21
|
-
def fetch(params = {})
|
21
|
+
def self.fetch(params = {})
|
22
22
|
get("phones", params)
|
23
23
|
end
|
24
24
|
|
@@ -27,7 +27,7 @@ module Bloomerang
|
|
27
27
|
#
|
28
28
|
# Params:
|
29
29
|
# body JSON object, see API for fields
|
30
|
-
def create(body)
|
30
|
+
def self.create(body)
|
31
31
|
post("phone", {}, body)
|
32
32
|
end
|
33
33
|
|
@@ -36,7 +36,7 @@ module Bloomerang
|
|
36
36
|
#
|
37
37
|
# Params:
|
38
38
|
# id integer
|
39
|
-
def
|
39
|
+
def self.show(id)
|
40
40
|
get("phone/#{id}")
|
41
41
|
end
|
42
42
|
|
@@ -46,7 +46,7 @@ module Bloomerang
|
|
46
46
|
# Params:
|
47
47
|
# id integer
|
48
48
|
# body JSON object, see API for fields
|
49
|
-
def update(id, body)
|
49
|
+
def self.update(id, body)
|
50
50
|
put("phone/#{id}", {}, body)
|
51
51
|
end
|
52
52
|
|
@@ -55,7 +55,7 @@ module Bloomerang
|
|
55
55
|
#
|
56
56
|
# Params:
|
57
57
|
# id integer
|
58
|
-
def delete(id)
|
58
|
+
def self.delete(id)
|
59
59
|
delete("phone/#{id}")
|
60
60
|
end
|
61
61
|
end
|
data/lib/bloomerang/pledge.rb
CHANGED
@@ -42,7 +42,7 @@ module Bloomerang
|
|
42
42
|
# skip integer, default: 0, simple paging system
|
43
43
|
# take integer, default: 50, simple paging system
|
44
44
|
# id array[integer], separated by pipes: "1|2|3"
|
45
|
-
def fetch_installments(id, params = {})
|
45
|
+
def self.fetch_installments(id, params = {})
|
46
46
|
get("pledge/#{id}/installments", params)
|
47
47
|
end
|
48
48
|
|
@@ -57,7 +57,7 @@ module Bloomerang
|
|
57
57
|
# frequency string, Available values : Weekly, EveryOtherWeekly, TwiceMonthly, Monthly, EveryOtherMonthly, Quarterly, Yearly, Custom
|
58
58
|
# day1 integer, Day1 & Day2 are only used with the TwiceMonthly frequency. If specified, day1 must be equal to the day value in firstInstallmentDate. If not specified, day1 will be set to the day value in firstInstallmentDate.
|
59
59
|
# day2 integer, Day1 & Day2 are only used with the TwiceMonthly frequency
|
60
|
-
def generate_installments(params = {})
|
60
|
+
def self.generate_installments(params = {})
|
61
61
|
get("pledge/generateInstallments", params)
|
62
62
|
end
|
63
63
|
|
@@ -68,7 +68,7 @@ module Bloomerang
|
|
68
68
|
# skip integer, default: 0, simple paging system
|
69
69
|
# take integer, default: 50, simple paging system
|
70
70
|
# id array[integer], separated by pipes: "1|2|3"
|
71
|
-
def fetch_payments(id, params = {})
|
71
|
+
def self.fetch_payments(id, params = {})
|
72
72
|
get("pledge/#{id}/payments", params)
|
73
73
|
end
|
74
74
|
|
@@ -79,7 +79,7 @@ module Bloomerang
|
|
79
79
|
# skip integer, default: 0, simple paging system
|
80
80
|
# take integer, default: 50, simple paging system
|
81
81
|
# id array[integer], separated by pipes: "1|2|3"
|
82
|
-
def fetch_failed_payments(id, params = {})
|
82
|
+
def self.fetch_failed_payments(id, params = {})
|
83
83
|
get("pledge/#{id}/paymentFailures", params)
|
84
84
|
end
|
85
85
|
|
@@ -88,7 +88,7 @@ module Bloomerang
|
|
88
88
|
#
|
89
89
|
# Params:
|
90
90
|
# id integer
|
91
|
-
def write_off(id)
|
91
|
+
def self.write_off(id)
|
92
92
|
post("pledge/#{id}/writeOff")
|
93
93
|
end
|
94
94
|
end
|
data/lib/bloomerang/refund.rb
CHANGED
@@ -9,7 +9,7 @@ module Bloomerang
|
|
9
9
|
# Date string($date), iso8601 format
|
10
10
|
# Amount number($currency)
|
11
11
|
# AuditTrail AuditTrail (object)
|
12
|
-
class Refund
|
12
|
+
class Refund < Base
|
13
13
|
### Fetch all refunds
|
14
14
|
## https://bloomerang.co/product/integrations-data-management/api/rest-api/#/Refunds/get_refunds
|
15
15
|
#
|
@@ -20,7 +20,7 @@ module Bloomerang
|
|
20
20
|
# id array[integer], separated by pipes: "1|2|3"
|
21
21
|
# orderBy string, Available values : Id (default), CreatedDate, LastModifiedDate
|
22
22
|
# orderDirection string, Available values : Asc, Desc
|
23
|
-
def fetch(params = {})
|
23
|
+
def self.fetch(params = {})
|
24
24
|
get("refunds", params)
|
25
25
|
end
|
26
26
|
|
@@ -29,7 +29,7 @@ module Bloomerang
|
|
29
29
|
#
|
30
30
|
# Params:
|
31
31
|
# body JSON object, see API for fields
|
32
|
-
def create(body)
|
32
|
+
def self.create(body)
|
33
33
|
post("refund", {}, body)
|
34
34
|
end
|
35
35
|
|
@@ -38,7 +38,7 @@ module Bloomerang
|
|
38
38
|
#
|
39
39
|
# Params:
|
40
40
|
# id integer
|
41
|
-
def
|
41
|
+
def self.show(id)
|
42
42
|
get("refund/#{id}")
|
43
43
|
end
|
44
44
|
|
@@ -48,7 +48,7 @@ module Bloomerang
|
|
48
48
|
# Params:
|
49
49
|
# id integer
|
50
50
|
# body JSON object, see API for fields
|
51
|
-
def update(id, body)
|
51
|
+
def self.update(id, body)
|
52
52
|
put("refund/#{id}", {}, body)
|
53
53
|
end
|
54
54
|
|
@@ -57,7 +57,7 @@ module Bloomerang
|
|
57
57
|
#
|
58
58
|
# Params:
|
59
59
|
# id integer
|
60
|
-
def delete(id)
|
60
|
+
def self.delete(id)
|
61
61
|
delete("refund/#{id}")
|
62
62
|
end
|
63
63
|
end
|
@@ -22,7 +22,7 @@ module Bloomerang
|
|
22
22
|
#
|
23
23
|
# Params:
|
24
24
|
# body JSON object, see API for fields
|
25
|
-
def create(body)
|
25
|
+
def self.create(body)
|
26
26
|
post("relationship", {}, body)
|
27
27
|
end
|
28
28
|
|
@@ -31,7 +31,7 @@ module Bloomerang
|
|
31
31
|
#
|
32
32
|
# Params:
|
33
33
|
# id integer
|
34
|
-
def
|
34
|
+
def self.show(id)
|
35
35
|
get("relationship/#{id}")
|
36
36
|
end
|
37
37
|
|
@@ -41,7 +41,7 @@ module Bloomerang
|
|
41
41
|
# Params:
|
42
42
|
# id integer
|
43
43
|
# body JSON object, see API for fields
|
44
|
-
def update(id, body)
|
44
|
+
def self.update(id, body)
|
45
45
|
put("relationship/#{id}", {}, body)
|
46
46
|
end
|
47
47
|
|
@@ -50,7 +50,7 @@ module Bloomerang
|
|
50
50
|
#
|
51
51
|
# Params:
|
52
52
|
# id integer
|
53
|
-
def delete(id)
|
53
|
+
def self.delete(id)
|
54
54
|
delete("relationship/#{id}")
|
55
55
|
end
|
56
56
|
|
@@ -64,7 +64,7 @@ module Bloomerang
|
|
64
64
|
# id array[integer], separated by pipes: "1|2|3"
|
65
65
|
# name array[string], Filters to relationship roles with the names in the list (pipe-separated)
|
66
66
|
# isActive boolean, Filters to either active or inactive relationship roles
|
67
|
-
def fetch_roles(params = {})
|
67
|
+
def self.fetch_roles(params = {})
|
68
68
|
get("relationshiproles", params)
|
69
69
|
end
|
70
70
|
|
@@ -73,7 +73,7 @@ module Bloomerang
|
|
73
73
|
#
|
74
74
|
# Params:
|
75
75
|
# id integer
|
76
|
-
def get_role(role_id)
|
76
|
+
def self.get_role(role_id)
|
77
77
|
get("relationshiprole/#{role_id}")
|
78
78
|
end
|
79
79
|
end
|
@@ -20,7 +20,7 @@ module Bloomerang
|
|
20
20
|
# id array[integer], separated by pipes: "1|2|3"
|
21
21
|
# orderBy string, Available values : Id (default), CreatedDate, LastModifiedDate
|
22
22
|
# orderDirection string, Available values : Asc, Desc
|
23
|
-
def fetch(params = {})
|
23
|
+
def self.fetch(params = {})
|
24
24
|
get("softcredits", params)
|
25
25
|
end
|
26
26
|
|
@@ -29,7 +29,7 @@ module Bloomerang
|
|
29
29
|
#
|
30
30
|
# Params:
|
31
31
|
# body JSON object, see API for fields
|
32
|
-
def create(body)
|
32
|
+
def self.create(body)
|
33
33
|
post("softcredit", {}, body)
|
34
34
|
end
|
35
35
|
|
@@ -38,7 +38,7 @@ module Bloomerang
|
|
38
38
|
#
|
39
39
|
# Params
|
40
40
|
# id integer
|
41
|
-
def
|
41
|
+
def self.show(id)
|
42
42
|
get("softcredit/#{id}")
|
43
43
|
end
|
44
44
|
|
@@ -48,7 +48,7 @@ module Bloomerang
|
|
48
48
|
# Params:
|
49
49
|
# id integer
|
50
50
|
# body JSON object, see API for fields
|
51
|
-
def update(id, body)
|
51
|
+
def self.update(id, body)
|
52
52
|
put("softcredit/#{id}", {}, body)
|
53
53
|
end
|
54
54
|
|
@@ -57,7 +57,7 @@ module Bloomerang
|
|
57
57
|
#
|
58
58
|
# Params:
|
59
59
|
# id integer
|
60
|
-
def delete(id)
|
60
|
+
def self.delete(id)
|
61
61
|
delete("softcredit/#{id}")
|
62
62
|
end
|
63
63
|
end
|
data/lib/bloomerang/task.rb
CHANGED
@@ -33,7 +33,7 @@ module Bloomerang
|
|
33
33
|
# id array[integer], separated by pipes: "1|2|3"
|
34
34
|
# orderBy string, Available values : Id (default), CreatedDate, LastModifiedDate
|
35
35
|
# orderDirection string, Available values : Asc, Desc
|
36
|
-
def fetch(params = {})
|
36
|
+
def self.fetch(params = {})
|
37
37
|
get("tasks", params)
|
38
38
|
end
|
39
39
|
|
@@ -42,7 +42,7 @@ module Bloomerang
|
|
42
42
|
#
|
43
43
|
# Params:
|
44
44
|
# body JSON object, see API for fields
|
45
|
-
def create(body)
|
45
|
+
def self.create(body)
|
46
46
|
post("task", {}, body)
|
47
47
|
end
|
48
48
|
|
@@ -51,7 +51,7 @@ module Bloomerang
|
|
51
51
|
#
|
52
52
|
# Params:
|
53
53
|
# id integer
|
54
|
-
def
|
54
|
+
def self.show(id)
|
55
55
|
get("task/#{id}")
|
56
56
|
end
|
57
57
|
|
@@ -61,7 +61,7 @@ module Bloomerang
|
|
61
61
|
# Params:
|
62
62
|
# id integer
|
63
63
|
# body JSON object, see API for fields
|
64
|
-
def update(id, body)
|
64
|
+
def self.update(id, body)
|
65
65
|
put("task/#{id}", {}, body)
|
66
66
|
end
|
67
67
|
|
@@ -70,7 +70,7 @@ module Bloomerang
|
|
70
70
|
#
|
71
71
|
# Params:
|
72
72
|
# id integer
|
73
|
-
def delete(id)
|
73
|
+
def self.delete(id)
|
74
74
|
delete("task/#{id}")
|
75
75
|
end
|
76
76
|
|
@@ -81,7 +81,7 @@ module Bloomerang
|
|
81
81
|
# id integer
|
82
82
|
# saveAsInteraction boolean, True to create an interaction from the task; must be false if the task does not have a constituent
|
83
83
|
# completedDate string($date), default: Today, iso8601 format
|
84
|
-
def complete(id, params = {})
|
84
|
+
def self.complete(id, params = {})
|
85
85
|
put("task/#{id}/complete", params)
|
86
86
|
end
|
87
87
|
end
|
@@ -45,7 +45,7 @@ module Bloomerang
|
|
45
45
|
# maxAmount number, Filters results based on the transaction's amount (inclusive).
|
46
46
|
# orderBy string, Available values : Id (default), CreatedDate, LastModifiedDate
|
47
47
|
# orderDirection string, Available values : Asc, Desc
|
48
|
-
def fetch(params = {})
|
48
|
+
def self.fetch(params = {})
|
49
49
|
get("transactions", params)
|
50
50
|
end
|
51
51
|
|
@@ -54,7 +54,7 @@ module Bloomerang
|
|
54
54
|
#
|
55
55
|
# Params:
|
56
56
|
# body JSON object, see API for fiends
|
57
|
-
def create(body)
|
57
|
+
def self.create(body)
|
58
58
|
post("transaction", {}, body)
|
59
59
|
end
|
60
60
|
|
@@ -63,7 +63,7 @@ module Bloomerang
|
|
63
63
|
#
|
64
64
|
# Params:
|
65
65
|
# id integer
|
66
|
-
def
|
66
|
+
def self.show(id)
|
67
67
|
get("transaction/#{id}")
|
68
68
|
end
|
69
69
|
|
@@ -73,7 +73,7 @@ module Bloomerang
|
|
73
73
|
# Params:
|
74
74
|
# id integer
|
75
75
|
# body JSON object, see API for fields
|
76
|
-
def update(id, body)
|
76
|
+
def self.update(id, body)
|
77
77
|
put("transaction/#{id}", {}, body)
|
78
78
|
end
|
79
79
|
|
@@ -82,7 +82,7 @@ module Bloomerang
|
|
82
82
|
#
|
83
83
|
# Params:
|
84
84
|
# id integer
|
85
|
-
def delete(id)
|
85
|
+
def self.delete(id)
|
86
86
|
delete("transaction/#{id}")
|
87
87
|
end
|
88
88
|
|
@@ -97,7 +97,7 @@ module Bloomerang
|
|
97
97
|
# id array[integer], separated by pipes: "1|2|3"
|
98
98
|
# orderBy string, Available values : Id (default), CreatedDate, LastModifiedDate
|
99
99
|
# orderDirection string, Available values : Asc, Desc
|
100
|
-
def fetch_designations(params = {})
|
100
|
+
def self.fetch_designations(params = {})
|
101
101
|
get("transactions/designations", params)
|
102
102
|
end
|
103
103
|
|
@@ -106,7 +106,7 @@ module Bloomerang
|
|
106
106
|
#
|
107
107
|
# Params:
|
108
108
|
# id integer
|
109
|
-
def get_designation(id)
|
109
|
+
def self.get_designation(id)
|
110
110
|
get("transactions/designation/#{id}")
|
111
111
|
end
|
112
112
|
end
|
data/lib/bloomerang/tribute.rb
CHANGED
@@ -22,7 +22,7 @@ module Bloomerang
|
|
22
22
|
# take integer, default: 50, simple paging system
|
23
23
|
# id array[integer], separated by pipes: "1|2|3", Filters to tributes with the IDs in the list (pipe-separated)
|
24
24
|
# isActive boolean
|
25
|
-
def fetch(params = {})
|
25
|
+
def self.fetch(params = {})
|
26
26
|
get("tributes", params)
|
27
27
|
end
|
28
28
|
|
@@ -31,7 +31,7 @@ module Bloomerang
|
|
31
31
|
#
|
32
32
|
# Params:
|
33
33
|
# body JSON object, see API for fields
|
34
|
-
def create(body)
|
34
|
+
def self.create(body)
|
35
35
|
post("tribute", {}, body)
|
36
36
|
end
|
37
37
|
|
@@ -40,7 +40,7 @@ module Bloomerang
|
|
40
40
|
#
|
41
41
|
# Params:
|
42
42
|
# id integer
|
43
|
-
def
|
43
|
+
def self.show(id)
|
44
44
|
get("tribute/#{id}")
|
45
45
|
end
|
46
46
|
|
@@ -50,7 +50,7 @@ module Bloomerang
|
|
50
50
|
# Params:
|
51
51
|
# id integer
|
52
52
|
# body JSON object, see API for fields
|
53
|
-
def update(id, body)
|
53
|
+
def self.update(id, body)
|
54
54
|
put("tribute/#{id}", {}, body)
|
55
55
|
end
|
56
56
|
|
@@ -59,7 +59,7 @@ module Bloomerang
|
|
59
59
|
# skip integer, default: 0, simple paging system
|
60
60
|
# take integer, default: 50, simple paging system
|
61
61
|
# search string, The text to search (must be at least 3 characters)
|
62
|
-
def search_active(params = {})
|
62
|
+
def self.search_active(params = {})
|
63
63
|
get("tributes/search", params)
|
64
64
|
end
|
65
65
|
end
|
data/lib/bloomerang/version.rb
CHANGED
data/lib/bloomerang.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_relative "bloomerang/version"
|
4
|
-
require_relative "bloomerang/base"
|
5
4
|
require_relative "bloomerang/configuration"
|
5
|
+
require_relative "bloomerang/base"
|
6
6
|
|
7
7
|
require_relative "bloomerang/address"
|
8
8
|
require_relative "bloomerang/appeal"
|
@@ -34,7 +34,11 @@ module Bloomerang
|
|
34
34
|
@configuration ||= Configuration.new
|
35
35
|
end
|
36
36
|
|
37
|
-
def self.
|
37
|
+
def self.reset
|
38
|
+
@configuration = Configuration.new
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.configure(&_block)
|
38
42
|
yield(configuration)
|
39
43
|
end
|
40
44
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bloomerang_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chiperific
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-01-
|
11
|
+
date: 2023-01-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -31,6 +31,7 @@ executables: []
|
|
31
31
|
extensions: []
|
32
32
|
extra_rdoc_files: []
|
33
33
|
files:
|
34
|
+
- ".DS_Store"
|
34
35
|
- ".rubocop.yml"
|
35
36
|
- CHANGELOG.md
|
36
37
|
- CODE_OF_CONDUCT.md
|