WCC::Arena
This gem provides wrappers to the Arena church management system's API. This is an early version of the library, and has had limited testing in real world environments. Use at your own risk!
There are also bound to be a few things that are specific to our configuration and version of Arena. This isn't intentional and we consider that a bug that we would like to fix. We would love for this to be a fully featured way to interact with Arena's API.
Installation
Add this line to your application's Gemfile:
gem 'wcc-arena'
And then execute:
$ bundle
Or install it yourself as:
$ gem install wcc-arena
Configuration
You can configure the wcc-arena gem using the WCC::Arena.configure
method.
Here is an example configuration block:
WCC::Arena.configure do |arena|
arena.username = 'username'
arena.password = 'password'
arena.api_key = 'api_key'
arena.api_secret = 'api_secret'
arena.api_url = 'https://arena-domain/api.svc/'
end
Usage
The library is currently a very thin layer over the Arena API. We plan to add a higher level interface layer that provides a better experience for the most common use cases.
The library consists of Query classes and Mapper classes. The Query classes handle calling the respective services and the Mapper classes handle binding the XML to Ruby objects. For full details on all available endpoints please see the code. Below are a few examples of some common queries.
person_query = WCC::Arena::PersonQuery.new.where(first_name: "Travis")
people = person_query.call
people.each do |person|
puts person.full_name
end
This will print the full names of all person records with the first name "Travis". There are a ton of other attributes that are available on a Person record. Check them out on the Person model.
You can also query tags (or Profiles as they are called under the hood). To pull all top level Ministry tags run the following:
# This assumes that your ministry tags have a type ID of 1.
WCC::Arena::ProfileQuery.new(profile_type_id: 1).call.each do |tag|
puts tag.name
end
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request