bloomerang_api 0.2.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.
@@ -0,0 +1,66 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "base"
4
+
5
+ module Bloomerang
6
+ ### Bloomerang::Tribute
7
+ ## https://bloomerang.co/product/integrations-data-management/api/rest-api/#/Tributes
8
+ # Id integer($int64)
9
+ # SortIndex integer($int32)
10
+ # Note string
11
+ # TributeType TributeType, string, Enum: [ InHonorOf, InMemoryOf ]
12
+ # NotificantAccountIds array[integer], The IDs of all notificants (constituents) associated with this tribute
13
+ # Name string
14
+ # IsDefault boolean, Is this the default?
15
+ # IsActive boolean, Is this active?
16
+ class Tribute < Base
17
+ ### Fetch all tributes
18
+ ## https://bloomerang.co/product/integrations-data-management/api/rest-api/#/Tributes/get_tributes
19
+ #
20
+ # Params:
21
+ # skip integer, default: 0, simple paging system
22
+ # take integer, default: 50, simple paging system
23
+ # id array[integer], separated by pipes: "1|2|3", Filters to tributes with the IDs in the list (pipe-separated)
24
+ # isActive boolean
25
+ def fetch(params = {})
26
+ get("tributes", params)
27
+ end
28
+
29
+ ### Create a tribute
30
+ ## https://bloomerang.co/product/integrations-data-management/api/rest-api/#/Tributes/post_tribute
31
+ #
32
+ # Params:
33
+ # body JSON object, see API for fields
34
+ def create(body)
35
+ post("tribute", {}, body)
36
+ end
37
+
38
+ ### Fetch tribute by ID
39
+ ## https://bloomerang.co/product/integrations-data-management/api/rest-api/#/Tributes/get_tribute__id_
40
+ #
41
+ # Params:
42
+ # id integer
43
+ def get(id)
44
+ get("tribute/#{id}")
45
+ end
46
+
47
+ ### Update tribute
48
+ ## https://bloomerang.co/product/integrations-data-management/api/rest-api/#/Tributes/put_tribute__id_
49
+ #
50
+ # Params:
51
+ # id integer
52
+ # body JSON object, see API for fields
53
+ def update(id, body)
54
+ put("tribute/#{id}", {}, body)
55
+ end
56
+
57
+ ### Search for active tributes
58
+ ## https://bloomerang.co/product/integrations-data-management/api/rest-api/#/Tributes/get_tributes_search
59
+ # skip integer, default: 0, simple paging system
60
+ # take integer, default: 50, simple paging system
61
+ # search string, The text to search (must be at least 3 characters)
62
+ def search_active(params = {})
63
+ get("tributes/search", params)
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bloomerang
4
+ VERSION = "0.2.2"
5
+ end
data/lib/bloomerang.rb ADDED
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "bloomerang/version"
4
+ require_relative "bloomerang/base"
5
+ require_relative "bloomerang/configuration"
6
+
7
+ require_relative "bloomerang/address"
8
+ require_relative "bloomerang/appeal"
9
+ require_relative "bloomerang/campaign"
10
+ require_relative "bloomerang/constituent"
11
+ require_relative "bloomerang/custom_field"
12
+ require_relative "bloomerang/email"
13
+ require_relative "bloomerang/email_interest"
14
+ require_relative "bloomerang/fund"
15
+ require_relative "bloomerang/household"
16
+ require_relative "bloomerang/interaction"
17
+ require_relative "bloomerang/note"
18
+ require_relative "bloomerang/phone"
19
+ require_relative "bloomerang/pledge"
20
+ # require_relative "bloomerang/processor"
21
+ require_relative "bloomerang/refund"
22
+ require_relative "bloomerang/relationship"
23
+ require_relative "bloomerang/soft_credit"
24
+ require_relative "bloomerang/task"
25
+ require_relative "bloomerang/transaction"
26
+ require_relative "bloomerang/tribute"
27
+ # require_relative "bloomerang/user"
28
+ # require_relative "bloomerang/wallet_item"
29
+
30
+ module Bloomerang
31
+ class Error < StandardError; end
32
+
33
+ def self.configuration
34
+ @configuration ||= Configuration.new
35
+ end
36
+
37
+ def self.configure(&block)
38
+ yield(configuration)
39
+ end
40
+ end
@@ -0,0 +1,3 @@
1
+ To copy a Bloomerang initializer to your Rails app, which allows setting your API key, just run this command from a terminal:
2
+
3
+ `rails generate bloomerang:initialize`
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rails/generators/base"
4
+
5
+ module Bloomerang
6
+ module Generators
7
+ class InitializerGenerator < Rails::Generators::Base
8
+ source_root File.expand_path("../../templates", __FILE__)
9
+
10
+ desc "Copy Bloomerang initializer file"
11
+ def create_initializer_file
12
+ copy_file "bloomerang_config.rb", "config/initializers/bloomerang.rb"
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ Bloomerang.configure do |config|
4
+ ### Set your Bloomerang API key:
5
+ # Generate your v2.0 API key from your Bloomerang user settings:
6
+ # https://crm.bloomerang.co/Settings/User/Edit
7
+ #
8
+ # UNSECURE: DO NOT ADD THE KEY DIRECTLY TO THIS FILE!
9
+ # It will be exposed in your source code.
10
+ # Instead, use a secure method to store your API key
11
+ #
12
+ # Rails credentials example (preferred):
13
+ # Learn about encrypted credentials: https://edgeguides.rubyonrails.org/security.html#custom-credentials
14
+ # config.api_key = Rails.application.credentials.dig(:bloomerang, :api_key)
15
+ #
16
+ # ENV or dotenv example:
17
+ # Learn about dotenv gem: https://github.com/bkeepers/dotenv
18
+ # config.api_key = ENV["BLOOMERANG_API_KEY"]
19
+ end
@@ -0,0 +1,4 @@
1
+ module Bloomerang
2
+ VERSION: String
3
+ # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
+ end
metadata ADDED
@@ -0,0 +1,97 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bloomerang_api
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.2
5
+ platform: ruby
6
+ authors:
7
+ - Chiperific
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2023-01-22 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: faraday
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '2.7'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '2.7'
27
+ description: Unofficial Ruby API client for bloomerang.co, a donor management platform
28
+ email:
29
+ - chiperific@gmail.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - ".rubocop.yml"
35
+ - CHANGELOG.md
36
+ - CODE_OF_CONDUCT.md
37
+ - Gemfile
38
+ - Gemfile.lock
39
+ - LICENSE.txt
40
+ - README.md
41
+ - Rakefile
42
+ - bin/console
43
+ - bin/setup
44
+ - lib/bloomerang.rb
45
+ - lib/bloomerang/address.rb
46
+ - lib/bloomerang/appeal.rb
47
+ - lib/bloomerang/base.rb
48
+ - lib/bloomerang/campaign.rb
49
+ - lib/bloomerang/configuration.rb
50
+ - lib/bloomerang/constituent.rb
51
+ - lib/bloomerang/custom_field.rb
52
+ - lib/bloomerang/email.rb
53
+ - lib/bloomerang/email_interest.rb
54
+ - lib/bloomerang/fund.rb
55
+ - lib/bloomerang/household.rb
56
+ - lib/bloomerang/interaction.rb
57
+ - lib/bloomerang/note.rb
58
+ - lib/bloomerang/phone.rb
59
+ - lib/bloomerang/pledge.rb
60
+ - lib/bloomerang/refund.rb
61
+ - lib/bloomerang/relationship.rb
62
+ - lib/bloomerang/soft_credit.rb
63
+ - lib/bloomerang/task.rb
64
+ - lib/bloomerang/transaction.rb
65
+ - lib/bloomerang/tribute.rb
66
+ - lib/bloomerang/version.rb
67
+ - lib/generators/bloomerang/USAGE
68
+ - lib/generators/bloomerang/initializer/initializer_generator.rb
69
+ - lib/generators/bloomerang/templates/bloomerang_config.rb
70
+ - sig/bloomerang.rbs
71
+ homepage: https://github.com/chiperific/bloomerang
72
+ licenses:
73
+ - MIT
74
+ metadata:
75
+ homepage_uri: https://github.com/chiperific/bloomerang
76
+ source_code_uri: https://github.com/chiperific/bloomerang_api
77
+ changelog_uri: https://github.com/chiperific/bloomerang_api/blob/main/CHANGELOG.md
78
+ post_install_message:
79
+ rdoc_options: []
80
+ require_paths:
81
+ - lib
82
+ required_ruby_version: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: 2.6.0
87
+ required_rubygems_version: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ version: '0'
92
+ requirements: []
93
+ rubygems_version: 3.3.26
94
+ signing_key:
95
+ specification_version: 4
96
+ summary: Unofficial Ruby API client for Bloomerang.co
97
+ test_files: []