https://github.com/efforg/ruby-civicrm
Ruby client for CiviCRM REST interface
https://github.com/efforg/ruby-civicrm
Last synced: about 1 year ago
JSON representation
Ruby client for CiviCRM REST interface
- Host: GitHub
- URL: https://github.com/efforg/ruby-civicrm
- Owner: EFForg
- License: mit
- Created: 2018-09-19T23:01:06.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-07-22T02:09:17.000Z (almost 4 years ago)
- Last Synced: 2025-03-30T22:51:19.649Z (about 1 year ago)
- Language: Ruby
- Size: 54.7 KB
- Stars: 1
- Watchers: 5
- Forks: 4
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Changelog: History.txt
- License: LICENSE
Awesome Lists containing this project
README
# CiviCRM Client
## Installation
```
$ gem install civicrm
```
## Getting started
```ruby
# Required config
CiviCrm.api_base = "https://www.example.org/path/to/civi/codebase/"
CiviCrm.site_key = "YOUR_SITE_KEY"
CiviCrm.api_key = "..."
# Optional config
CiviCrm.timeout = 60 # Change request timeout in seconds (nil to disable)
```
## CiviCrm Objects
```ruby
# Get list of contacts
CiviCrm::Contact.all
# Create contact
CiviCrm::Contact.create(contact_type: "Organization", organization_name: "test")
# Find and delete
CiviCrm::Contact.find(1).delete
```
## Testing
```
$ bundle exec rspec spec
```
## Debugging
Set these `ENV` options to a truthy value to print CiviCRM REST API data.
```DEBUG_CIVICRM_REQUEST```
Example:
```
[CiviCRM] [REQ] [FinancialType] [get] {"method":"post","timeout":null,"headers":{"user_agent":"CiviCrm RubyClient/1.3.6","request_id":"8168cbfc-36d1-4967-bf94-8fd72fd48455"},"payload":{"json":"{\"id\":12}"},"url":"..."}
```
```DEBUG_CIVICRM_RESPONSE```
Example:
```
[CiviCRM] [RES] [FinancialType] [get] {"is_error":0,"version":3,"count":1,"id":12,"values":{"12":{"id":"12","name":"Matching Gift","is_deductible":"0","is_active":"1"}}}
```
## Useful links
* https://docs.civicrm.org/dev/en/latest/api/interfaces/#rest-interface
* http://drupal.demo.civicrm.org/civicrm/api/explorer
## Acknowledgements
Created by [Iskander Haziev](https://github.com/gvalmon). Maintained by [EFF](https://www.eff.org/).