Class: TicketService::Transaction::TicketTransactionAdapter
- Inherits:
-
Object
- Object
- TicketService::Transaction::TicketTransactionAdapter
- Defined in:
- app/services/ticket_service/transaction.rb
Overview
Adapter class to make TicketTransaction compatible with MyActiveMerchants::Gateway which expects reservation-like interface
Instance Attribute Summary collapse
-
#omise_token ⇒ Object
readonly
Returns the value of attribute omise_token.
-
#ticket_transaction ⇒ Object
readonly
Returns the value of attribute ticket_transaction.
Instance Method Summary collapse
- #cc_provider ⇒ Object
- #charges ⇒ Object
- #customer ⇒ Object
- #email ⇒ Object
- #errors ⇒ Object
-
#firebase_tracking_key ⇒ Object
Provide Firebase tracking key for consistency with update_firebase method.
-
#id ⇒ Object
Delegate methods that MyActiveMerchants::Gateway expects.
-
#initialize(ticket_transaction, omise_token) ⇒ TicketTransactionAdapter
constructor
A new instance of TicketTransactionAdapter.
- #paid_cc? ⇒ Boolean
- #payment_success_url ⇒ Object
- #restaurant ⇒ Object
-
#ticket_transaction_adapter? ⇒ Boolean
Helper method to indicate this is an adapter for ticket transactions.
- #user ⇒ Object
- #user_id ⇒ Object
- #username ⇒ Object
- #using_charge_directly_channel? ⇒ Boolean
- #using_on_hold_channel? ⇒ Boolean
Constructor Details
#initialize(ticket_transaction, omise_token) ⇒ TicketTransactionAdapter
Returns a new instance of TicketTransactionAdapter.
588 589 590 591 |
# File 'app/services/ticket_service/transaction.rb', line 588 def initialize(ticket_transaction, omise_token) @ticket_transaction = ticket_transaction @omise_token = omise_token end |
Instance Attribute Details
#omise_token ⇒ Object (readonly)
Returns the value of attribute omise_token.
586 587 588 |
# File 'app/services/ticket_service/transaction.rb', line 586 def omise_token @omise_token end |
#ticket_transaction ⇒ Object (readonly)
Returns the value of attribute ticket_transaction.
586 587 588 |
# File 'app/services/ticket_service/transaction.rb', line 586 def ticket_transaction @ticket_transaction end |
Instance Method Details
#cc_provider ⇒ Object
623 624 625 |
# File 'app/services/ticket_service/transaction.rb', line 623 def cc_provider ticket_transaction.cc_provider&.to_sym end |
#charges ⇒ Object
636 637 638 |
# File 'app/services/ticket_service/transaction.rb', line 636 def charges ticket_transaction.charges end |
#customer ⇒ Object
627 628 629 630 |
# File 'app/services/ticket_service/transaction.rb', line 627 def customer # For ticket transactions, we don't pre-create customers like reservations nil end |
#email ⇒ Object
598 599 600 |
# File 'app/services/ticket_service/transaction.rb', line 598 def email ticket_transaction.email end |
#errors ⇒ Object
632 633 634 |
# File 'app/services/ticket_service/transaction.rb', line 632 def errors ticket_transaction.errors end |
#firebase_tracking_key ⇒ Object
Provide Firebase tracking key for consistency with update_firebase method
664 665 666 |
# File 'app/services/ticket_service/transaction.rb', line 664 def firebase_tracking_key "ticket_transaction/#{ticket_transaction.id}" end |
#id ⇒ Object
Delegate methods that MyActiveMerchants::Gateway expects
594 595 596 |
# File 'app/services/ticket_service/transaction.rb', line 594 def id ticket_transaction.id end |
#paid_cc? ⇒ Boolean
654 655 656 |
# File 'app/services/ticket_service/transaction.rb', line 654 def paid_cc? false # New ticket transaction, not paid yet end |
#payment_success_url ⇒ Object
648 649 650 651 652 |
# File 'app/services/ticket_service/transaction.rb', line 648 def payment_success_url # Delegate to the actual TicketTransaction model method # This ensures consistency with the model's payment URLs ticket_transaction.payment_success_url end |
#restaurant ⇒ Object
619 620 621 |
# File 'app/services/ticket_service/transaction.rb', line 619 def restaurant ticket_transaction.restaurant end |
#ticket_transaction_adapter? ⇒ Boolean
Helper method to indicate this is an adapter for ticket transactions
659 660 661 |
# File 'app/services/ticket_service/transaction.rb', line 659 def ticket_transaction_adapter? true end |
#user ⇒ Object
615 616 617 |
# File 'app/services/ticket_service/transaction.rb', line 615 def user ticket_transaction.user end |
#user_id ⇒ Object
611 612 613 |
# File 'app/services/ticket_service/transaction.rb', line 611 def user_id ticket_transaction.user_id end |
#username ⇒ Object
602 603 604 605 606 607 608 609 |
# File 'app/services/ticket_service/transaction.rb', line 602 def username # Cache guest and user to avoid law of demeter violations guest = ticket_transaction.guest user = ticket_transaction.user guest_name = guest&.name if guest user_name = user&.name if user guest_name || user_name || 'Guest' end |
#using_charge_directly_channel? ⇒ Boolean
640 641 642 |
# File 'app/services/ticket_service/transaction.rb', line 640 def using_charge_directly_channel? true # Tickets are always charged immediately end |
#using_on_hold_channel? ⇒ Boolean
644 645 646 |
# File 'app/services/ticket_service/transaction.rb', line 644 def using_on_hold_channel? false # Tickets don't use on-hold pattern end |