Module: ScriptedClient

Defined in:
lib/scripted_client.rb,
lib/scripted_client/job.rb,
lib/scripted_client/pitch.rb,
lib/scripted_client/industry.rb,
lib/scripted_client/pitchset.rb,
lib/scripted_client/resource.rb,
lib/scripted_client/collection.rb,
lib/scripted_client/job_template.rb

Defined Under Namespace

Classes: Collection, Industry, Job, JobTemplate, Pitch, Pitchset, Resource

Constant Summary collapse

API_VERSION =
'v1'
@@env =
:sandbox

Class Method Summary collapse

Class Method Details

.access_tokenObject



6
7
8
# File 'lib/scripted_client.rb', line 6

def self.access_token
  @@access_token || fail("You must set #{ name }.access_token")
end

.access_token=(_access_token) ⇒ Object



10
11
12
13
14
# File 'lib/scripted_client.rb', line 10

def self.access_token=(_access_token)
  @@access_token = _access_token
  reset_resource_site
  @@access_token
end

.base_hostObject



39
40
41
42
43
44
45
46
47
48
# File 'lib/scripted_client.rb', line 39

def self.base_host
  case env
  when :sandbox
    'scripted-sandbox.herokuapp.com'
  when :production
    'api.scripted.com'
  when :development
    'localhost:3000'
  end
end

.base_urlObject



54
55
56
# File 'lib/scripted_client.rb', line 54

def self.base_url
  "#{ protocol }://#{ base_host }"
end

.envObject



26
27
28
# File 'lib/scripted_client.rb', line 26

def self.env
  @@env
end

.env=(_env) ⇒ Object



30
31
32
33
34
35
36
37
# File 'lib/scripted_client.rb', line 30

def self.env=(_env)
  unless [:development, :sandbox, :production].include?(_env)
    fail "#{ name }.env must be either :sandbox or :production"
  end
  @@env = _env
  reset_resource_site
  @@env
end

.organization_keyObject



16
17
18
# File 'lib/scripted_client.rb', line 16

def self.organization_key
  @@organization_key || fail("You must set #{ name }.organization_key")
end

.organization_key=(_organization_key) ⇒ Object



20
21
22
23
24
# File 'lib/scripted_client.rb', line 20

def self.organization_key=(_organization_key)
  @@organization_key = _organization_key
  reset_resource_site
  @@organization_key
end

.prefixObject



58
59
60
# File 'lib/scripted_client.rb', line 58

def self.prefix
  "/#{ organization_key }/#{ API_VERSION }/"
end

.protocolObject



50
51
52
# File 'lib/scripted_client.rb', line 50

def self.protocol
  env == :development ? 'http' : 'https'
end

.reset_resource_siteObject



62
63
64
65
66
67
68
69
# File 'lib/scripted_client.rb', line 62

def self.reset_resource_site
  if @@organization_key && @@access_token
    ScriptedClient::Resource.site = base_url
    ScriptedClient::Resource.prefix = prefix
    ScriptedClient::Resource.descendants.each(&:setup_prefix)
    ScriptedClient::Resource.headers['Authorization'] = "Bearer #{ access_token }"
  end
end