Project

craftar

0.0
No commit activity in last 3 years
No release in over 3 years
Ruby client that supports all of the Craftar CraftAR API methods. Intuitive query methods allow you easily call API endpoints.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 0
>= 3.2.0, ~> 3.2

Runtime

>= 0.3.16, ~> 0.3
 Project Readme

CraftAR Ruby Gem

Description

The Catchoom's CraftAR Service for Augmented Reality and Image Recognition is a service that allows you to build a wide range of Image Recognition and Augmented Reality applications and services.

This client library provides access to CraftAR API:

  • [CraftAR Management API] (http://craftar.com/documentation/api/management/) allows upload and management of collections of reference images, and associated meta-data such as Augmented Reality experiences and their content. All requests must be authenticated using your Management API key.

Installation

gem install craftar

Or if you are using rails

gem 'craftar', require: false

Quick Start

Follow these steps to create a collection with one item and perform an image recognition request against that collection. A collection is a set of items representing entities that you want to recognize. Examples of items are logos, physical objects, or a drawings, among others. You can do it directly from your python interpreter.

Get your management api_key. This is needed to authenticate your requests to the Management API.

require craftar

# use your own api_key!
Craftar.api_key = ENV['craftar_api_key']

Collections

Create a new collection.
name = "My cool colection" # use your own collection name
collection = Craftar::Collection.create(name: name)
Update a collection
name = 'My newly named cool collection'
collection.update(name: name)
Delete a collection
collection.destroy
Get a collection
uuid = '' #The uuid of the collection you want to find
Craftar::Collection.find(uuid)
Get the collection list
Craftar::Collection.list
Craftar::Collection.list name: 'name', limit: 10
Craftar::Collection.list name__contains: 'nam', offset: 10, limit: 20

Items

Create a new item.
name = 'test' # use your own item name
custom = { key1: value1, key2: value2}.to_json #custom parameter must be a string
item = Craftar::Item.create(collection: collection.resorce_uri, name: name, trackable: false, custom: custom)
Update an item
item.update(trackable: true)

Possible parameters: name, collection, url, content, custom, trackable, tags

Delete an item
item.destroy
Get an item
uuid = '8a95c8ab98e9c464' #The uuid of the item you want to find
Craftar::Item.find(uuid)
Get the item list
Craftar::Item.list
Craftar::Item.list name: 'name', limit: 10
Craftar::Item.list name_contains: 'nam', offset: 10, limit: 20

You can also filter by

  • collection__uuid
  • collection__name
  • collection__name__contains

Images

Create a new image.
file = 'http://blabla/image.jpg'
image = Craftar::Image.create(item: item.resorce_uri, file: file)

Possible parameters: name, collection, url, content, custom, trackable

Delete an image
image.destroy
Get an image
uuid = '8a95c8ab98e9c464' #The uuid of the image you want to find
Craftar::Image.find(uuid)

You will receive uuid, item, file, resource_uri, name, status, thumb_120, thumb_60, tracking_data_status

Get the image list
Craftar::Image.list
Craftar::Image.list name: 'name', limit: 10
Craftar::Image.list name_contains: 'nam', offset: 10, limit: 20

You can also filter by

  • item__uuid: filter by item UUID.
  • item__name: filter by item by this exact match.
  • item__name__contains: filter by item by case-sensitive containment.
  • item__collection__uuid: filter by item’s collection UUID.
  • item__collection__name: filter by item’s collection name, using this exact match.
  • item__collection__name__contains: filter by item’s collection name, using case-sensitive containment.
  • status: filter by image status (ER or OK).

Token

Create a new token
token = Craftar::Token.create(collection: collection.collection_uri, tags: [tag_uri])
Find the token object
token = Craftar::Token.find(token)
Update the token
token.update(tags: [tag_uri])
Delete a token
token.destroy
Get token list
Craftar::Token.list
Craftar::Token.list offset: 10, limit: 20

You can also filter by:

  • collection__uuid: filter by collection UUID.
  • collection__name: filter by collection name, using this exact match.
  • collection__name__contains: filter by collection name, using case-sensitive containment.

Media

Create a new media.
file = 'http://test/test.jpg' # use your own media url
media = Craftar::Media.create(name: name, file: file)
Get a media
uuid = '8a95c8ab98e9c464' #The uuid of the media you want to find
Craftar::Media.find(uuid)
Get the media list
Craftar::Media.list
Craftar::Media.list name: 'name', limit: 10
Craftar::Media.list name_contains: 'nam', offset: 10, limit: 20

You can also filter by

  • mimetype
  • mimetype__contains

Application ID

Create a new app
media = Craftar::App.create(name: name, collection: collection.resource_uri)
Get an app
uuid = '8a95c8ab98e9c464' #The uuid of the app you want to find
Craftar::App.find(uuid)
Get the app list
Craftar::App.list
Craftar::App.list name: 'name', limit: 10
Craftar::App.list name_contains: 'nam', offset: 10, limit: 20

SDK versions

Get a version
uuid = '8a95c8ab98e9c464' #The uuid of the version you want to find
Craftar::SdkVersion.find(uuid)
Get the app list
Craftar::SdkVersion.list
Craftar::SdkVersion.list, offset: 10, limit: 20

Collection Bundle

Create a new collection bundle.
collection_bundle = Craftar::CollectionBundle.create(collection: collection.resource_uri, app: app.resource_uri, version: version.resource_uri)
Delete an collection bundle
collection_bundle.destroy
Get an collection bundle
uuid = '8a95c8ab98e9c464' #The uuid of the collection bundle you want to find
Craftar::Item.find(uuid)
Get the collection bundle list
Craftar::CollectionBundle.list
Craftar::CollectionBundle.list, offset: 10, limit: 20

Tags

Create a new tag.
name = 'my_tag' # your tag name
tag = Craftar::Tag.create(collection: collection.resorce_uri, name: name)
Update an tag
tag.update(name: 'my_new_tag')

Possible parameters: name, collection

Delete a tag
tag.destroy
Get a tag
uuid = '8a95c8ab98e9c464' #The uuid of the tag you want to find
Craftar::Tag.find(uuid)
Get the item list
Craftar::Tag.list
Craftar::Tag.list name: 'name', limit: 10
Craftar::Tag.list name_contains: 'nam', offset: 10, limit: 20

Contributing

Please, if you use it, report back any bugs/problems.

  • Fork it
  • Create your feature branch (git checkout -b my-new-feature)
  • Commit your changes (git commit -am 'Add some feature')
  • Don't forget to test your feature
  • Push to the branch (git push origin my-new-feature)
  • Create new Pull Request