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