centaman 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 07cf23a02f6f02f0970d436a27b374255a3dc84ff97d1a5ac4df44fff5bd7c9c
4
- data.tar.gz: e1cac231c3412e91526fa31239bb1c3a1a27d7c3ba440b65c30adb72ffcc0f6d
3
+ metadata.gz: 0352fd00a22ff2bfca9298483f0543c3d994eac3f239b2deee67c329750b601c
4
+ data.tar.gz: '0857475123262678e9dd82ce0737284ea2b87d126254edd54bac75fdacff070e'
5
5
  SHA512:
6
- metadata.gz: d21ee7623d1c765e678d722a9706edabc789fb3fb032ac045181a34a643a0ec1d591676216b350b7350dba1ab5b2a17319a221dcb017e84f0e5eef31590f5852
7
- data.tar.gz: 5c4b10f72c0e692c250a35c240efbe952fbd3c96688093167783d64873eeadc1d84f033d22d3051c2b43ff2018e7c41ec70c78da57ef51a0382d579c22bb9aad
6
+ metadata.gz: 7b847ebe8c584c9d170bc503faa57da7ebda47c67bbb23ec0804eca4b2d9f8e046b0f62e9001e63b993a1194347ae08302e290a82caf425023cb74fd45efc092
7
+ data.tar.gz: 1c7b8350934d120f6e03d5de63e047004113afbe83e6c472ee2dbef95c03239fa1561d50cb4f343646d75b910c8389dfedfce952cec2e3440521bc9d6cdefafe
@@ -38,7 +38,7 @@ module Centaman
38
38
  private
39
39
 
40
40
  def auth_error(resp)
41
- { error: resp.parsed_response ? resp.parsed_response : 'Authentication Failed. Invalid credentials.' }
41
+ { error: resp.parsed_response || 'Authentication Failed. Invalid credentials.' }
42
42
  end
43
43
  end
44
44
  end
@@ -2,14 +2,16 @@ module Centaman
2
2
  class Service::Member < Centaman::Service
3
3
  include Centaman::JsonWrapper
4
4
 
5
- attr_reader :member_code
5
+ attr_reader :member_code, :email
6
6
 
7
7
  def after_init(args)
8
8
  @member_code = args.fetch(:member_code, nil).try(:to_i)
9
+ @email = args.fetch(:email, nil)
10
+ required_args
9
11
  end
10
12
 
11
13
  def endpoint
12
- "/member_services/Member/#{member_code}"
14
+ member_code ? member_endpoint(:member_code) : member_endpoint(:email)
13
15
  end
14
16
 
15
17
  def object_class
@@ -30,8 +32,29 @@ module Centaman
30
32
 
31
33
  private
32
34
 
35
+ def member_endpoint(attr_key)
36
+ attr_val = self.send(attr_key)
37
+ endpoint_url(attr_key, attr_val)
38
+ end
39
+
40
+ def endpoint_url(key, val)
41
+ endpoint_options = {
42
+ member_code: "/member_services/Member/#{val}",
43
+ email: "/member_services/Member?email=#{val}"
44
+ }
45
+ endpoint_options[key]
46
+ end
47
+
48
+ def args_missing
49
+ arg_missing = [member_code, email].compact.empty?
50
+ end
51
+
52
+ def required_args
53
+ raise "missing required arguments. #{self.class} must be instantiated with a :member_code or :email" if args_missing
54
+ end
55
+
33
56
  def not_found(resp)
34
- { error: resp.parsed_response ? resp.parsed_response : 'Member not found' }
57
+ { error: resp.parsed_response || 'Member not found' }
35
58
  end
36
59
  end
37
60
  end
@@ -1,3 +1,3 @@
1
1
  module Centaman
2
- VERSION = "0.2.1"
2
+ VERSION = "0.2.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: centaman
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - francirp
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2018-01-24 00:00:00.000000000 Z
12
+ date: 2018-01-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler