centaman 3.1.2 → 4.0.1
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 +4 -4
- data/lib/centaman/service.rb +1 -1
- data/lib/centaman/service/purchase_membership.rb +68 -15
- data/lib/centaman/service/update_member.rb +0 -1
- data/lib/centaman/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7311055cea87cef5bf2d6d28d2f8eb859f7a88bc8febfce4b6f6efe6a69a9a9d
|
4
|
+
data.tar.gz: f36658d112d887281f87e3922e57333007330c52373f3abd457a916f5e3a52d1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3dced37d4a7fe3f3c53f74052294f382c6ce317f97181d893bd2b7bf2d881995f9f2a6fa71dea112d06114e11bcf8072bb6466be2bdfbf09d04358df164edb1c
|
7
|
+
data.tar.gz: 4a17cd91245a53334dc044d9c583086984a3d64ad6112706f7c8258e47d2de6490107fe0c6e77512e4555791464e0a707c975e3ff865d44ac9218471ef3d87f9
|
data/lib/centaman/service.rb
CHANGED
@@ -1,43 +1,51 @@
|
|
1
1
|
module Centaman
|
2
2
|
class Service::PurchaseMembership < Centaman::Service
|
3
3
|
attr_reader :payment_reference, :order_info, :checkout_service, :coupon_service,
|
4
|
-
:members, :
|
5
|
-
:is_new, :
|
4
|
+
:members, :add_ons, :membership_type_id, :memberships,
|
5
|
+
:is_new, :coupon, :has_card_discount, :join_date, :expiry_date, :purchaser_renewal
|
6
6
|
|
7
|
-
def after_init(args)
|
7
|
+
def after_init(args={})
|
8
8
|
@payment_reference = args[:payment_reference]
|
9
|
-
@is_new = true
|
10
9
|
@order_info = args[:order_info]
|
11
|
-
@
|
10
|
+
@is_new = args.fetch(:is_new, false)
|
11
|
+
@has_card_discount = @order_info.fnbo_discount
|
12
12
|
@checkout_service = args[:checkout_service]
|
13
13
|
@coupon_service = args[:coupon_service]
|
14
14
|
@membership_type_id = @order_info.membership_type_id
|
15
|
-
@members =
|
15
|
+
@members = args.fetch(:members, [])
|
16
16
|
@add_ons = @checkout_service.add_ons
|
17
17
|
@memberships = []
|
18
18
|
@coupon = @coupon_service.valid_coupon
|
19
|
-
|
19
|
+
@join_date = args.fetch(:join_date, nil)
|
20
|
+
@expiry_date = args.fetch(:expiry_date, nil)
|
21
|
+
@purchaser_renewal = args.fetch(:purchaser_renewal, false)
|
20
22
|
end
|
21
23
|
|
22
24
|
def endpoint
|
23
25
|
"/member_services/Membership?isNew=#{is_new}"
|
24
26
|
end
|
25
27
|
|
26
|
-
def membership_payload(
|
28
|
+
def membership_payload(member, add_on)
|
29
|
+
p 'dates'
|
30
|
+
p join_date, expiry_date
|
27
31
|
payload = {
|
28
|
-
'MemberCode':
|
32
|
+
'MemberCode': member.id,
|
29
33
|
'TypeCode': add_on.id,
|
30
34
|
'Cost': add_on.cost,
|
31
|
-
'Tax':
|
35
|
+
'Tax': checkout_service.add_on_tax(add_on),
|
32
36
|
'Paid': add_on.pay_price,
|
33
37
|
'PackageID': membership_type_id,
|
34
|
-
'PurchaserRenewal': purchaser_renewal
|
35
|
-
|
36
|
-
|
38
|
+
'PurchaserRenewal': purchaser_renewal,
|
39
|
+
'PaymentGatewayReference': payment_reference,
|
40
|
+
'JoinDate': join_date,
|
41
|
+
'ExpiryDate': expiry_date
|
42
|
+
}.compact
|
43
|
+
payload = coupon.present? ? payload.merge(coupon_args(add_on)) : payload
|
44
|
+
payload = has_card_discount ? payload.merge(card_discount_args(add_on)) : payload
|
37
45
|
end
|
38
46
|
|
39
47
|
def coupon_args(add_on)
|
40
|
-
return
|
48
|
+
return {} unless coupon_service.coupon_applies(add_on)
|
41
49
|
{
|
42
50
|
'Coupon': {
|
43
51
|
"CouponCode": coupon.code,
|
@@ -47,6 +55,16 @@ module Centaman
|
|
47
55
|
}
|
48
56
|
end
|
49
57
|
|
58
|
+
def card_discount_args(add_on)
|
59
|
+
return {} unless add_on.add_on_type == 'primary'
|
60
|
+
{
|
61
|
+
'CardDiscount': {
|
62
|
+
'DiscountAmount': checkout_service.fnbo_amount,
|
63
|
+
'StockID': checkout_service.fnbo_stock_id
|
64
|
+
}
|
65
|
+
}
|
66
|
+
end
|
67
|
+
|
50
68
|
def empty_coupon_args
|
51
69
|
{
|
52
70
|
'Coupon': {
|
@@ -57,16 +75,51 @@ module Centaman
|
|
57
75
|
}
|
58
76
|
end
|
59
77
|
|
78
|
+
def empty_card_args
|
79
|
+
{
|
80
|
+
'CardDiscount': {
|
81
|
+
'DiscountAmount': 0,
|
82
|
+
'StockID': nil
|
83
|
+
}
|
84
|
+
}
|
85
|
+
end
|
86
|
+
|
87
|
+
# def renewal_request
|
88
|
+
# p "build renewal_request"
|
89
|
+
# renewal_members.map do |m|
|
90
|
+
# order_info.add_ons_for_member(add_ons, m.member_type).each do |ao|
|
91
|
+
# @renewal_memberships << membership_payload(m, ao)
|
92
|
+
# end
|
93
|
+
# end
|
94
|
+
# @renewal_memberships = @renewal_memberships.uniq
|
95
|
+
# end
|
96
|
+
|
97
|
+
# def new_membership_request
|
98
|
+
# p "building new_membership_request"
|
99
|
+
# new_members.map do |m|
|
100
|
+
# order_info.add_ons_for_member(add_ons, m.member_type).each do |ao|
|
101
|
+
# @new_memberships << membership_payload(m, ao)
|
102
|
+
# end
|
103
|
+
# end
|
104
|
+
# @new_memberships = @new_memberships.uniq
|
105
|
+
# end
|
106
|
+
|
60
107
|
def build_membership_request
|
108
|
+
p "build request"
|
61
109
|
members.map do |m|
|
62
110
|
order_info.add_ons_for_member(add_ons, m.member_type).each do |ao|
|
63
|
-
@memberships << membership_payload(m
|
111
|
+
@memberships << membership_payload(m, ao)
|
64
112
|
end
|
65
113
|
end
|
114
|
+
@memberships
|
66
115
|
end
|
67
116
|
|
68
117
|
def options_hash
|
118
|
+
p "*** PAYLOAD ***"
|
119
|
+
p build_membership_request
|
69
120
|
memberships.to_json
|
121
|
+
# p @new_memberships if is_new
|
122
|
+
# p @renewal_memberships if !is_new
|
70
123
|
end
|
71
124
|
end
|
72
125
|
end
|
data/lib/centaman/version.rb
CHANGED