centaman 3.0.0 → 3.1.0

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: 80ad5a8f6663d229212ae27adb40fb40dcf66a49450e532d38a69a9ea42f9ef7
4
- data.tar.gz: 27f76779b3d8ed4367185f5d562b6501f8c4cf05cdc0dec533dbc0dd4cb0c684
3
+ metadata.gz: 340746dbed78a24b56cbb1a3acf9a769c365befb5d112604ed40ad51c801d595
4
+ data.tar.gz: b0e7e8b4ff3414d7d1155691ea3b1a0f2d1d1d6457667c6dccdcfb62969d142d
5
5
  SHA512:
6
- metadata.gz: 49370c7def9ac62518defe14e3ddddf97fd14045e336e2dbfa2991216d6efef349acbc5e8eb8fd791e4941de250bd0c1d7fb2ca34c9af4e21a550de0263547dd
7
- data.tar.gz: dd38bf01305cc5d7d64080c11bf2580b3e654881c31f64fbe95819a1e434c6ba0958d1303b886d6d8c1acb2d7ad54f774b18ebea0be846fc3973b129f6382b24
6
+ metadata.gz: 890b6c0e6e2b54ace0b3c97181a2c38c1d740e0b4e96de0b072f090d7b045d5ede2864dea63fa625ebc2c70f2f5bc1ff27d51419bb276b97d5de0bbd4124828c
7
+ data.tar.gz: 9fbedb8fa1f34cd4e88d4b0934a88d4f593e6cbcda0d537847c87b08ff790f0c1c889e007a900827bf49e40bbea30c232b4b5ad8a79f9c0b6afc08e8bd1a8cc4
data/lib/centaman.rb CHANGED
@@ -16,6 +16,7 @@ require 'centaman/service/coupon_check'
16
16
  require 'centaman/service/create_customer'
17
17
  require 'centaman/service/create_primary_member'
18
18
  require 'centaman/service/create_secondary_member'
19
+ require 'centaman/service/create_udf'
19
20
  require 'centaman/service/extra'
20
21
  require 'centaman/service/gift_ticket'
21
22
  require 'centaman/service/general_admission_ticket'
@@ -1,6 +1,6 @@
1
1
  module Centaman
2
2
  class Object::AddOn < Centaman::Object
3
- attr_reader :id, :membership_type_id, :pay_price
3
+ attr_reader :id, :membership_type_id
4
4
 
5
5
  def define_variables(args)
6
6
  super
@@ -15,6 +15,7 @@ module Centaman
15
15
  membership_code: membership_code,
16
16
  membership_class: membership_class,
17
17
  cost: cost,
18
+ pay_price: pay_price,
18
19
  minimum_age: minimum_age,
19
20
  maximum_age: maximum_age,
20
21
  membership_description: membership_description,
@@ -3,7 +3,7 @@ require 'timeout'
3
3
  module Centaman
4
4
  #:nodoc:
5
5
  class Service < Wrapper
6
- DEFAULT_TIMEOUT_TIME = 15
6
+ DEFAULT_TIMEOUT_TIME = 20
7
7
 
8
8
  def after_init(args)
9
9
  # overwritten by subclasses
@@ -17,6 +17,7 @@ module Centaman
17
17
  proc.call
18
18
  end
19
19
  rescue Timeout::Error
20
+ p "*** CENTAMAN GEM TIMEOUT ***"
20
21
  raise Exceptions::CentamanTimeout
21
22
  end
22
23
  resp
@@ -29,8 +30,8 @@ module Centaman
29
30
  end
30
31
  resp = wrap_request_in_case_of_timeout(req, timeout_time: 20)
31
32
 
32
- raise resp['Message'] if resp.is_a?(Hash)
33
- raise Exceptions::CentamanTimeout unless resp.success?
33
+ raise resp['Message'] if resp && resp.is_a?(Hash)
34
+ raise Exceptions::CentamanTimeout unless resp && resp.success?
34
35
  resp
35
36
  end
36
37
  end
@@ -18,7 +18,7 @@ module Centaman
18
18
 
19
19
  def self.find(membership_type_id, id)
20
20
  obj = new(membership_type_id: membership_type_id)
21
- obj.objects.detect {|obj| obj.id == id }
21
+ obj.objects.detect { |obj| obj.id == id }
22
22
  end
23
23
 
24
24
  def additional_hash_to_serialize_after_response
@@ -38,8 +38,6 @@ module Centaman
38
38
  private
39
39
 
40
40
  def auth_error(resp)
41
- p "error from #{self.class.name}"
42
-
43
41
  message = { error: resp.parsed_response || 'Authentication Failed. Invalid login credentials.' }
44
42
  raise message[:error]
45
43
  end
@@ -0,0 +1,28 @@
1
+ module Centaman
2
+ class Service::CreateUdf < Centaman::Service
3
+ attr_reader :udfs, :member_code
4
+
5
+ def after_init(args)
6
+ @udfs = args.fetch(:udfs, [])
7
+ @member_code = args[:member_code]
8
+ end
9
+
10
+ def endpoint
11
+ "/udf_services/UDFMember?memberCode=#{member_code}"
12
+ end
13
+
14
+ def build_udf_body(udf)
15
+ {
16
+ 'Value': udf.value,
17
+ 'FieldName': udf.field_name,
18
+ 'FieldType': udf.field_type,
19
+ 'FieldLength': udf.field_length,
20
+ 'TabName': udf.tab_name,
21
+ }
22
+ end
23
+
24
+ def options_hash
25
+ udfs.map { |udf| build_udf_body(udf) }.to_json
26
+ end
27
+ end
28
+ end
@@ -1,19 +1,21 @@
1
1
  module Centaman
2
2
  class Service::PurchaseMembership < Centaman::Service
3
- attr_reader :payment_reference, :order_info, :checkout_service,
3
+ attr_reader :payment_reference, :order_info, :checkout_service, :coupon_service,
4
4
  :members, :memberships, :add_ons, :membership_type_id,
5
- :is_new, :purchaser_renewal
5
+ :is_new, :purchaser_renewal, :coupon
6
6
 
7
7
  def after_init(args)
8
8
  @payment_reference = args[:payment_reference]
9
- @is_new = args.fetch(:is_new, true)
9
+ @is_new = true
10
10
  @order_info = args[:order_info]
11
11
  @purchaser_renewal = order_info.is_renewal
12
12
  @checkout_service = args[:checkout_service]
13
+ @coupon_service = args[:coupon_service]
13
14
  @membership_type_id = @order_info.membership_type_id
14
15
  @members = @order_info.members
15
16
  @add_ons = @checkout_service.add_ons
16
17
  @memberships = []
18
+ @coupon = @coupon_service.valid_coupon
17
19
  build_membership_request
18
20
  end
19
21
 
@@ -22,7 +24,7 @@ module Centaman
22
24
  end
23
25
 
24
26
  def membership_payload(member_id, add_on)
25
- {
27
+ payload = {
26
28
  'MemberCode': member_id,
27
29
  'TypeCode': add_on.id,
28
30
  'Cost': add_on.cost,
@@ -31,6 +33,28 @@ module Centaman
31
33
  'PackageID': membership_type_id,
32
34
  'PurchaserRenewal': purchaser_renewal
33
35
  }
36
+ coupon.present? ? payload.merge(coupon_args(add_on)) : payload
37
+ end
38
+
39
+ def coupon_args(add_on)
40
+ return empty_coupon_args unless coupon_service.coupon_applies(add_on)
41
+ {
42
+ 'Coupon': {
43
+ "CouponCode": coupon.code,
44
+ "DiscountAmount": coupon_service.amount_saved(add_on),
45
+ "StockID": coupon.stock_code
46
+ }
47
+ }
48
+ end
49
+
50
+ def empty_coupon_args
51
+ {
52
+ 'Coupon': {
53
+ "CouponCode": nil,
54
+ "DiscountAmount": 0,
55
+ "StockID": nil
56
+ }
57
+ }
34
58
  end
35
59
 
36
60
  def build_membership_request
@@ -1,3 +1,3 @@
1
1
  module Centaman
2
- VERSION = "3.0.0"
2
+ VERSION = "3.1.0"
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: 3.0.0
4
+ version: 3.1.0
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-03-06 00:00:00.000000000 Z
12
+ date: 2018-03-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -116,6 +116,7 @@ files:
116
116
  - lib/centaman/service/create_customer.rb
117
117
  - lib/centaman/service/create_primary_member.rb
118
118
  - lib/centaman/service/create_secondary_member.rb
119
+ - lib/centaman/service/create_udf.rb
119
120
  - lib/centaman/service/extra.rb
120
121
  - lib/centaman/service/general_admission_ticket.rb
121
122
  - lib/centaman/service/gift_ticket.rb