Gem Gem Version Build Status Maintainability Test Coverage

PlateApi

Welcome to the PlateApi gem. This gem provides a wrapper to communicate with the Plate API, taking care of authentication.

Installation

Add this line to your application's Gemfile:

gem 'plate_api'

And then execute:

$ bundle

Or install it yourself as:

$ gem install plate_api

Getting started (TLDR;)

To get started with a simple connector:

# Initialze a connector
plate_api = PlateApi.new("{{public_key}}", "{{secret_key}}")

# Find information of a specific site with id == 822
site = plate_api.sites.find(822)

# Find all posts in this site
posts = site.posts

# Find all elements in the first post of this site
first_post = posts.first
elements = first_post.elements

# Update the content field 'body' of the first element
element = elements.first
element.update(body: "<h2>My new text</h2>")

Establishing a connection object

To create a connection object, representing a connection to the Plate API, you need a public and a secret key. The Plate API docs explain how to get such keys.

Given these two keys, a connection object can be established as follows:

plate_api = PlateApi.new("{{public_key}}", "{{secret_key}}")

The Plate API object can be used to find resources with a certain id:

Retrieve a resource by id.

To retrieve a resource with a specific id, do the following: (to retrieve an element with id=12)

element = plate_api.elements.find(12)

Create/Update/Delete resources given an object

To create a resource, you first retrieve the parent of the resource you want to create. Second, you pass the create parameters in the create_{{resource}} method:

column = plate_api.columns.find(12)
element = column.create_element(content_type_id: 71, some_content_parameter: "Avé moi")

To update a resource:

element = plate_api.element.find(36)
element.update(some_content_parameter: "New content")

To delete a resource (be careful):

element = plate_api.element.find(223)
element.delete

Create/Update/Delete resources directly:

It is also possible to use the plate_api instance to execute actions directly, without first retrieving the object itself.

To create a resource:

column = plate_api.columns.find(12)
plate_api.elements.create(column, content_type_id: 71, some_content_parameter: "Avé moi")

To update a resource :

plate_api.elements.update(36, some_content_parameter: "New content")

To delete a resource:

plate_api.elements.delete(223)

List child resources

To list all childs of a resource, for example to get all elements in a section:

section = plate_api.sections.find(50)
all_elements = section.elements

To pass some arguments to the request (like pagination, or to filter on content_type):

section = plate_api.sections.find(50)
all_elements = section.elements(content_type_id: 150, page: 12, per_page: 10)

To find the total amount of childs of a resource:

section = plate_api.sections.find(50)
count = section.elements_total_count

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rspec spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

License

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