/prosperworks-ruby

A Ruby gem to interface with the ProsperWorks API

Primary LanguageRubyMIT LicenseMIT

ProsperWorks-Ruby

A lightweight wrapper for interacting with the ProsperWorks Developer API.

Build Status

Installation

Add this line to your application's Gemfile:

gem 'prosperworks-ruby'

And then execute:

$ bundle

Or install it yourself as:

$ gem install prosperworks-ruby

Usage

This gem offers basic operations to interact with the ProsperWorks Developer API. There is minimal error handling and no validation logic.

To use the proper credentials, the following must be run before using the gem:

ProsperWorks.configure do |config|
  config.user_email = <your_user_email>
  config.access_token = <your_api_token>
end

Create

person = ProsperWorks::Person.create(attributes)

opportunity = ProsperWorks::Opportunity.create({
  pipeline_id: <some_id>,
  company_id: <another_id>,
  monetary_value: 1_000
})

Find

person = ProsperWorks::Person.find(id)

lead = ProsperWorks::Lead.find(423)

Update

For update, either update the object in advance:

person.name = "A New Name"
response = ProsperWorks::Person.update(person)

or pass in a hash of attributes to update:

attributes = {
  name: "A New Name"
}
response = ProsperWorks::Person.update(person, attributes)

Delete

response = ProsperWorks::Person.delete(person.id)

Search

response = ProsperWorks::Person.search(name: "John Doe")

List

webhooks = ProsperWorks::Webhook.list

The following entity types are currently supported for create, find, update, delete and search:

  • Person
  • Lead
  • Company
  • Opportunity
  • Task
  • Project

The following entity types are currently supported for list:

  • Customer Source
  • Pipeline
  • Pipeline Stage
  • Webhook

The response will either be an instance of ProsperWorks::Errors, or the entity itself. See the handle_response function in connect.rb.

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake test to run the tests. You can also run bin/console for an interactive Ruby shell.

bin/console

To use the gem in an interactive Ruby shell, you can run bin/console. To include your ProsperWorks API credentials (user_name and access_token) you can either:

  1. Use ENV variables:
USER_EMAIL=<your_email> ACCESS_TOKEN=<your_access_token> bin/console
  1. Store them in a text file named .pw_credentials.txt in the root directory of this repository. The first line must be your user_email and the second line must be your access_token. Nothing else may be in this file. At startup, bin/console will read and use these values. And this file must not be checked into git; it has been included in .gitignore for this very reason.

Local Installation

To install this gem onto your local machine, run bundle exec rake install.

Contributing

This gem is fairly new, and can benefit from contributions!

You can take a look at the issues and start by contributing there.

Wishlist

  • continuous integration setup
  • add Rubocop
  • code cleanup & refactoring
  • improved testing
  • search endpoint
  • Users API
  • Activities API
  • Related Items API
  • Secondary Resources APIs
  • Support for Nested Resources

Bug reports and pull requests are welcome on GitHub at https://github.com/soccernee/prosperworks-ruby. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

To run the tests:

rake test

License

The gem is available as open source under the terms of the MIT License.

Code of Conduct

Everyone interacting in the Prosperworks::Ruby project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.