An open API service indexing awesome lists of open source software.

https://github.com/jetrockets/perfect_audit

PerfectAudit Ruby API wrapper
https://github.com/jetrockets/perfect_audit

api-client api-wrapper perfectaudit ruby ruby-gem

Last synced: 10 months ago
JSON representation

PerfectAudit Ruby API wrapper

Awesome Lists containing this project

README

          

# PerfectAudit

[![Gem Version](https://badge.fury.io/rb/perfect_audit.svg)](https://badge.fury.io/rb/perfect_audit)
[![Build Status](https://travis-ci.org/jetrockets/perfect_audit.svg?branch=master)](https://travis-ci.org/jetrockets/perfect_audit)
[![Maintainability](https://api.codeclimate.com/v1/badges/f416de8dc8074f1b1588/maintainability)](https://codeclimate.com/github/jetrockets/perfect_audit/maintainability)
[![Test Coverage](https://api.codeclimate.com/v1/badges/f416de8dc8074f1b1588/test_coverage)](https://codeclimate.com/github/jetrockets/perfect_audit/test_coverage)

Perfect Audit API wrapper.

[https://ocrolus.com/api-docs/](https://ocrolus.com/api-docs/)

## Installation

Add this line to your application's Gemfile:

```ruby
gem 'perfect_audit'
```

And then execute:

$ bundle

Or install it yourself as:

$ gem install perfect_audit

## Configuration

``` ruby
PerfectAudit.configure do |config|
config.client_id = 'your_client_id'
config.client_secret = 'your_client_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:

``` ruby
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:

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

## Usage

### Books Repository

Get books list for your account

``` ruby
PerfectAudit.books.all
#=> [#, ...]
```

Create a book

``` ruby
# Create a book with name=Test
PerfectAudit.books.create('Test')
#=> #

# Create a book with name=Test which is public
PerfectAudit.books.create('Test', true)
#=> #
```

Find book by ID

``` ruby
PerfectAudit.books.find(100)
#=> #
```

Delete a book

``` ruby
# 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
``` ruby
book = PerfectAudit.books.find(100)
File.write('./book.xlsx', PerfectAudit.books.to_excel(book))
```

### Documents Repository

Upload document to a book

``` ruby
# 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](http://www.jetrockets.pro).

![JetRockets](http://jetrockets.pro/JetRockets.jpg)

## License

The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).