SugarCRM
REST Bindings for SugarCRM!
SUMMARY:
RubyGem for interacting with SugarCRM via REST.
Description:
A less clunky way to interact with SugarCRM via REST.
I’ve built an abstraction layer on top of the SugarCRM REST API, instead of get_entry(“Users”, “1”) you can call SugarCRM::User.find(1). There is also support for collections à la SugarCRM::User.find(1).accounts.
ActiveRecord style finders are in place, with limited support for conditions and joins e.g. SugarCRM::Contacts.find_by_title(“VP of Sales”) will work, but SugarCRM::Contacts.find_by_title(“VP of Sales”, {:conditions => {:deleted => 0}}) will not.
FEATURES/PROBLEMS:
-
Supports all v2 API calls
-
Auto-generation of Module specific objects. When a connection is established, get_available_modules is called and the resultant modules are turned into SugarCRM::Module classes.
-
If you just want to use the vanilla API, you can access the methods directly on the SugarCRM.connection object.
SYNOPSIS:
require 'sugarcrm'
# Establish a connection
SugarCRM::Base.establish_connection("http://localhost/sugarcrm", 'user', 'password', {:debug => false})
# Retrieve a user by user_name
SugarCRM::User.find_by_user_name("admin")
# Retrieve all Accounts owned by a particular user.
SugarCRM::User.find_by_user_name('sarah').accounts
# Show a list of available modules
SugarCRM.modules
# Use the HTTP Connection and SugarCRM API to load the Admin user
SugarCRM.connection.get_entry("Users", 1)
# Retrieve all Accounts by user name (direct API method)
SugarCRM.connection.get_entry_list(
"Users",
"users.user_name = \'sarah\'",
{
:link_fields => [
{
"name" => "accounts",
"value" => ["id", "name"]
}
]
}
)
REQUIREMENTS:
-
>= activesupport 3.0.0 gem
-
json gem
INSTALL:
-
sudo gem install sugarcrm
Note on Patches/Pull Requests
-
Fork the project.
-
Make your feature addition or bug fix.
-
Add tests for it. This is important so I don’t break it in a future version unintentionally.
-
Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
-
Send me a pull request. Bonus points for topic branches.
Copyright
Copyright © 2010 Carl Hicks. See LICENSE for details.