class Elemeno::Client
Public Class Methods
new(api_key)
click to toggle source
# File lib/elemeno.rb, line 11 def initialize(api_key) @conn = Faraday.new(:url => 'https://api.elemeno.io/v1/', :headers => {'Authorization' => api_key}) do |conn| conn.use Faraday::Response::RaiseError conn.use Faraday::Adapter::NetHttp end end
Public Instance Methods
getCollection(collectionSlug)
click to toggle source
# File lib/elemeno.rb, line 65 def getCollection(collectionSlug) return get(@@collectionBase + collectionSlug) end
getCollectionItem(collectionSlug, itemSlug, options = nil)
click to toggle source
# File lib/elemeno.rb, line 73 def getCollectionItem(collectionSlug, itemSlug, options = nil) return get(@@collectionBase + collectionSlug + '/items/' + itemSlug, getQuery(options, ['sort'])) end
getCollectionItems(collectionSlug, options = nil)
click to toggle source
# File lib/elemeno.rb, line 69 def getCollectionItems(collectionSlug, options = nil) return get(@@collectionBase + collectionSlug + '/items', getQuery(options, ['filters', 'sort'])) end
getCollections(options = nil)
click to toggle source
# File lib/elemeno.rb, line 61 def getCollections(options = nil) return get(@@collectionBase, getQuery(options, ['sort'])) end
getSingle(singleSlug)
click to toggle source
# File lib/elemeno.rb, line 57 def getSingle(singleSlug) return get(@@singleBase + singleSlug) end
getSingles(options = nil)
click to toggle source
# File lib/elemeno.rb, line 53 def getSingles(options = nil) return get(@@singleBase, getQuery(options, ['sort'])) end
Private Instance Methods
get(path, query = nil)
click to toggle source
# File lib/elemeno.rb, line 18 def get(path, query = nil) response = @conn.get do |req| req.url path if query req.params = query end end return JSON.parse(response.body) end
getQuery(options = nil, allow = false)
click to toggle source
# File lib/elemeno.rb, line 29 def getQuery(options = nil, allow = false) query = Hash.new if options && options.is_a?(Hash) if options.has_key?(:filters) && allow.is_a?(Array) && allow.include?('filters') query['filters'] = options[:filters].to_json end if options.has_key?(:sort) && allow.is_a?(Array) && allow.include?('sort') query['sort'] = options[:sort].to_json end if options.has_key?(:page) query['page'] = options[:page].to_json end if options.has_key?(:size) query['size'] = options[:size].to_json end if options.has_key?(:byId) query['byId'] = (options[:byId].is_a?(TrueClass) || options[:byId] == 'true') ? true : false end end return query end