centaman 3.1.2 → 4.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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