PerfectAudit

Gem Version Build Status Maintainability Test Coverage

Perfect Audit API wrapper.

https://ocrolus.com/api-docs/

Installation

Add this line to your application's Gemfile:

gem 'perfect_audit'

And then execute:

$ bundle

Or install it yourself as:

$ gem install perfect_audit

Configuration

  PerfectAudit.configure do |config|
    config.api_key = 'your_api_key'
    config.api_secret = 'your_api_secret'
  end

Exception Handling

If PerfectAudit will return anything different from 200 OK status code, PerfectAudit::Error will be raised. It contains #message and #code returned from API.

For example with invalid credentials you will receive:

PerfectAudit.books.all
#=> PerfectAudit::Error: Email and/or password not found [1306]

And if you will try to find a Book that does not exist, you will receive:

PerfectAudit.books.find(82087)
#=> PerfectAudit::Error: Book not found [1401]

Usage

Books Repository

Get books list for your account

PerfectAudit.books.all
#=> [#<PerfectAudit::Book:0x00007ff51bbfbe28>, ...]

Create a book

# Create a book with name=Test
PerfectAudit.books.create('Test')
#=> #<PerfectAudit::Book:0x00007ff51c8e4248 @id=0, @created_at="2018-03-22T20:21:25Z", @name="Test", @public=false ...>

# Create a book with name=Test which is public
PerfectAudit.books.create('Test', true)
#=> #<PerfectAudit::Book:0x00007ff51c8e4248 @id=0, @created_at="2018-03-22T20:21:25Z", @name="Test", @public=true ...>

Find book by ID

PerfectAudit.books.find(100)
#=> #<PerfectAudit::Book:0x00007ff51c89f828 @id=100, @created_at="2018-03-22T20:48:54Z", @name="Test", @public=false ...>

Delete a book

# To delete a book you can use either its ID or instance
PerfectAudit.books.delete(100)
#=> true

book = PerfectAudit.books.find(100)
PerfectAudit.books.delete(book)
#=> true

Export book to Excel

book = PerfectAudit.books.find(100)
File.write('./book.xlsx', PerfectAudit.books.to_excel(book))

Documents Repository

Upload document to a book

# To upload documents to a book you can use book ID or its instance and File
PerfectAudit.documents.create(100, File.open('./document.pdf'))
#=> true

book = PerfectAudit.books.find(100)
PerfectAudit.documents.create(book, File.open('./document.pdf'))
#=> true

Credits

Sponsored by JetRockets.

JetRockets

License

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