class Centaman::Service::PurchaseMembership
Attributes
add_ons[R]
checkout_service[R]
coupon[R]
coupon_service[R]
expiry_date[R]
has_card_discount[R]
is_new[R]
join_date[R]
members[R]
membership_type_id[R]
memberships[R]
order_info[R]
payment_reference[R]
purchaser_renewal[R]
Public Instance Methods
after_init(args={})
click to toggle source
# File lib/centaman/service/purchase_membership.rb, line 7 def after_init(args={}) @payment_reference = args[:payment_reference] @order_info = args[:order_info] @is_new = args.fetch(:is_new, false) @has_card_discount = @order_info.fnbo_discount @checkout_service = args[:checkout_service] @coupon_service = args[:coupon_service] @membership_type_id = @order_info.membership_type_id @members = args.fetch(:members, []) @add_ons = @checkout_service.add_ons @memberships = [] @coupon = @coupon_service.valid_coupon @join_date = args.fetch(:join_date, nil) @expiry_date = args.fetch(:expiry_date, nil) @purchaser_renewal = args.fetch(:purchaser_renewal, false) end
build_membership_request()
click to toggle source
def new_membership_request
p "building new_membership_request" new_members.map do |m| order_info.add_ons_for_member(add_ons, m.member_type).each do |ao| @new_memberships << membership_payload(m, ao) end end @new_memberships = @new_memberships.uniq
end
# File lib/centaman/service/purchase_membership.rb, line 107 def build_membership_request p "build request" members.map do |m| order_info.add_ons_for_member(add_ons, m.member_type).each do |ao| @memberships << membership_payload(m, ao) end end @memberships end
card_discount_args(add_on)
click to toggle source
# File lib/centaman/service/purchase_membership.rb, line 58 def card_discount_args(add_on) return {} unless add_on.add_on_type == 'primary' { 'CardDiscount': { 'DiscountAmount': checkout_service.fnbo_amount, 'StockID': checkout_service.fnbo_stock_id } } end
coupon_args(add_on)
click to toggle source
# File lib/centaman/service/purchase_membership.rb, line 47 def coupon_args(add_on) return {} unless coupon_service.coupon_applies(add_on) { 'Coupon': { "CouponCode": coupon.coupon_code, "DiscountAmount": coupon_service.amount_saved(add_on), "StockID": coupon.coupon_stock_id } } end
empty_card_args()
click to toggle source
# File lib/centaman/service/purchase_membership.rb, line 78 def empty_card_args { 'CardDiscount': { 'DiscountAmount': 0, 'StockID': nil } } end
empty_coupon_args()
click to toggle source
# File lib/centaman/service/purchase_membership.rb, line 68 def empty_coupon_args { 'Coupon': { "CouponCode": nil, "DiscountAmount": 0, "StockID": nil } } end
endpoint()
click to toggle source
# File lib/centaman/service/purchase_membership.rb, line 24 def endpoint "/member_services/Membership?isNew=#{is_new}" end
membership_payload(member, add_on)
click to toggle source
# File lib/centaman/service/purchase_membership.rb, line 28 def membership_payload(member, add_on) p 'dates' p join_date, expiry_date payload = { 'MemberCode': member.id, 'TypeCode': add_on.id, 'Cost': add_on.cost, 'Tax': checkout_service.add_on_tax(add_on), 'Paid': add_on.pay_price, 'PackageID': membership_type_id, 'PurchaserRenewal': purchaser_renewal, 'PaymentGatewayReference': payment_reference, 'JoinDate': join_date, 'ExpiryDate': expiry_date }.compact payload = coupon.present? ? payload.merge(coupon_args(add_on)) : payload payload = has_card_discount ? payload.merge(card_discount_args(add_on)) : payload end
options_hash()
click to toggle source
# File lib/centaman/service/purchase_membership.rb, line 117 def options_hash p "*** PAYLOAD ***" p build_membership_request memberships.to_json # p @new_memberships if is_new # p @renewal_memberships if !is_new end