flowcommerce 0.0.10 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,47 @@
1
1
  module FlowCommerce
2
2
 
3
- def FlowCommerce.client(token, opts = {})
3
+ DEFAULT_TOKEN_FILE_LOCATION = "~/.flow/token"
4
+
5
+ # Creates a new instance of the flow cient, using standard
6
+ # conventions to identify the API TOKEN, checking in order:
7
+ #
8
+ # 1. an environment variable named FLOW_TOKEN
9
+ # 2. an environment variable named FLOW_TOKEN_FILE containing
10
+ # the path of the file with the token in it
11
+ #
12
+ # @param module e.g. catalog, experience - this is temporary
13
+ # until Flow consolidates its APIs into a single domain
14
+ def FlowCommerce.instance(app)
15
+ token = ENV['FLOW_TOKEN'].to_s.strip
16
+
17
+ if token.empty?
18
+ file = ENV['FLOW_TOKEN_FILE'].to_s.strip
19
+ if file.empty?
20
+ file = DEFAULT_TOKEN_FILE_LOCATION
21
+ end
22
+ path = File.expand_path(file)
23
+
24
+ if !File.exists?(path)
25
+ raise "File %s does not exist. You can specify environment variable FLOW_TOKEN or FLOW_TOKEN_FILE to explicitly provide the token" % path
26
+ end
27
+
28
+ token = IO.read(path).strip
29
+ if token.empty?
30
+ raise "File %s did not contain an API Token" % path
31
+ end
32
+ end
33
+
34
+ case app
35
+ when "catalog"
36
+ FlowCommerce.catalog_client(token, opts = {})
37
+ when "experience"
38
+ FlowCommerce.experience_client(token, opts = {})
39
+ else
40
+ raise "Invalid module name[%s]" % app
41
+ end
42
+ end
43
+
44
+ def FlowCommerce.catalog_client(token, opts = {})
4
45
  if token.empty?
5
46
  raise "ERROR: Token is required"
6
47
  end
@@ -15,5 +56,19 @@ module FlowCommerce
15
56
  end
16
57
  end
17
58
 
59
+ def FlowCommerce.experience_client(token, opts = {})
60
+ if token.empty?
61
+ raise "ERROR: Token is required"
62
+ end
63
+
64
+ base_url = opts[:base_url].to_s.strip
65
+ auth = Io::Flow::Experience::V0::HttpClient::Authorization.basic(token)
66
+
67
+ if base_url.empty?
68
+ Io::Flow::Experience::V0::Client.at_base_url(:authorization => auth)
69
+ else
70
+ Io::Flow::Experience::V0::Client.new(base_url, :authorization => auth)
71
+ end
72
+ end
18
73
 
19
74
  end
@@ -2,5 +2,6 @@ dir = File.dirname(__FILE__)
2
2
 
3
3
  load File.join(dir, 'clients/flow_common_v0_client.rb')
4
4
  load File.join(dir, 'clients/flow_catalog_v0_client.rb')
5
+ load File.join(dir, 'clients/flow_experience_v0_client.rb')
5
6
 
6
7
  load File.join(dir, 'flow_commerce/client.rb')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flowcommerce
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: 0.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Flow Commerce, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-06 00:00:00.000000000 Z
11
+ date: 2016-06-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -47,6 +47,7 @@ files:
47
47
  - README.md
48
48
  - lib/clients/flow_catalog_v0_client.rb
49
49
  - lib/clients/flow_common_v0_client.rb
50
+ - lib/clients/flow_experience_v0_client.rb
50
51
  - lib/flow_commerce/client.rb
51
52
  - lib/flowcommerce.rb
52
53
  homepage: https://github.com/flowcommerce/ruby-sdk