class Fulcrum::Client
Constants
- DEFAULT_URL
- DEFAULT_USER_AGENT
Attributes
connection[RW]
key[RW]
response[RW]
url[RW]
Public Class Methods
authenticate(username, password, url=DEFAULT_URL)
click to toggle source
# File lib/fulcrum/client.rb, line 44 def self.authenticate(username, password, url=DEFAULT_URL) connection = create_connection(url) connection.basic_auth(username, password) resp = connection.get('users.json') resp.body['user']['contexts'].map do |context| { id: context['id'], name: context['name'] } end end
create_connection(url, key = nil)
click to toggle source
# File lib/fulcrum/client.rb, line 82 def self.create_connection(url, key = nil) Faraday.new(url) do |connection| connection.request :multipart connection.request :json connection.response :raise_error connection.response :json, content_type: 'application/json' connection.adapter Faraday.default_adapter connection.headers['X-ApiToken'] = key if key connection.headers['X-Require-Media'] = 'false' connection.headers['User-Agent'] = DEFAULT_USER_AGENT end end
get_user(username, password, url=DEFAULT_URL)
click to toggle source
# File lib/fulcrum/client.rb, line 57 def self.get_user(username, password, url=DEFAULT_URL) connection = create_connection(url) connection.basic_auth(username, password) resp = connection.get('users.json') user = resp.body['user'] user['contexts'] = user['contexts'].map{|c| c.except!('api_token')} user end
new(key = nil, url = nil)
click to toggle source
# File lib/fulcrum/client.rb, line 15 def initialize(key = nil, url = nil) self.key = key self.url = url || DEFAULT_URL end
Public Instance Methods
attachments()
click to toggle source
# File lib/fulcrum/client.rb, line 122 def attachments @attachment ||= Fulcrum::Attachment.new(self) end
audio()
click to toggle source
# File lib/fulcrum/client.rb, line 118 def audio @audio ||= Fulcrum::Audio.new(self) end
audit_logs()
click to toggle source
# File lib/fulcrum/client.rb, line 158 def audit_logs @audit_logs ||= Fulcrum::AuditLog.new(self) end
call(method = :get, path = '', params = {})
click to toggle source
# File lib/fulcrum/client.rb, line 35 def call(method = :get, path = '', params = {}) @response = connection.send(method.to_sym, path, params.with_indifferent_access) @response.body end
changesets()
click to toggle source
# File lib/fulcrum/client.rb, line 146 def changesets @changesets ||= Fulcrum::Changeset.new(self) end
choice_lists()
click to toggle source
# File lib/fulcrum/client.rb, line 98 def choice_lists @choice_lists ||= Fulcrum::ChoiceList.new(self) end
classification_sets()
click to toggle source
# File lib/fulcrum/client.rb, line 102 def classification_sets @classification_sets ||= Fulcrum::ClassificationSet.new(self) end
forms()
click to toggle source
# File lib/fulcrum/client.rb, line 106 def forms @forms ||= Fulcrum::Form.new(self) end
key=(key)
click to toggle source
# File lib/fulcrum/client.rb, line 20 def key=(key) @key = key reset end
layers()
click to toggle source
# File lib/fulcrum/client.rb, line 142 def layers @layers ||= Fulcrum::Layer.new(self) end
memberships()
click to toggle source
# File lib/fulcrum/client.rb, line 138 def memberships @memberships ||= Fulcrum::Membership.new(self) end
photos()
click to toggle source
# File lib/fulcrum/client.rb, line 110 def photos @photos ||= Fulcrum::Photo.new(self) end
projects()
click to toggle source
# File lib/fulcrum/client.rb, line 130 def projects @projects ||= Fulcrum::Project.new(self) end
query(sql, format = 'json')
click to toggle source
# File lib/fulcrum/client.rb, line 166 def query(sql, format = 'json') body = { q: sql, format: format } call(:post, 'query', body) end
records()
click to toggle source
# File lib/fulcrum/client.rb, line 134 def records @records ||= Fulcrum::Record.new(self) end
reset()
click to toggle source
# File lib/fulcrum/client.rb, line 30 def reset @response = nil @connection = nil end
roles()
click to toggle source
# File lib/fulcrum/client.rb, line 154 def roles @roles ||= Fulcrum::Role.new(self) end
signatures()
click to toggle source
# File lib/fulcrum/client.rb, line 126 def signatures @signatures ||= Fulcrum::Signature.new(self) end
url=(url)
click to toggle source
# File lib/fulcrum/client.rb, line 25 def url=(url) @url = url reset end
videos()
click to toggle source
# File lib/fulcrum/client.rb, line 114 def videos @videos ||= Fulcrum::Video.new(self) end
webhooks()
click to toggle source
# File lib/fulcrum/client.rb, line 150 def webhooks @webhooks ||= Fulcrum::Webhook.new(self) end