Module: SpreeCmCommissioner::FirestoreConnection
- Extended by:
- ActiveSupport::Concern
- Included in:
- Events::PublishStockStatusesToFirestore, QueueDraftOrders::PublishStatus, VotingSessions::PublishToFirestore, WaitingRoom::Admission::CallGuests, WaitingRoom::Admission::CallGuestsChunk, WaitingRoom::AdvanceQueue, WaitingRoom::Guests::Find, WaitingRoom::Guests::List, WaitingRoom::Heartbeat::Sweep, WaitingRoom::Positions::Stamp, WaitingRoom::Sessions::Issue, WaitingRoomLobbyMetadataFetcher
- Defined in:
- app/models/concerns/spree_cm_commissioner/firestore_connection.rb
Overview
Shared Cloud Firestore client construction, used across the waiting-room services (see WaitingRoom::Admission::CallGuests, WaitingRoom::Positions::Stamp, WaitingRoom::Sessions::Issue) plus a #firestore_available? guard so environments without the credential (dev, test, CI) no-op instead of raising on connect.
Instance Method Summary collapse
Instance Method Details
#firestore ⇒ Object
15 16 17 18 19 20 |
# File 'app/models/concerns/spree_cm_commissioner/firestore_connection.rb', line 15 def firestore @firestore ||= Google::Cloud::Firestore.new( project_id: service_account[:project_id], credentials: service_account ) end |
#firestore_available? ⇒ Boolean
11 12 13 |
# File 'app/models/concerns/spree_cm_commissioner/firestore_connection.rb', line 11 def firestore_available? service_account.present? end |
#service_account ⇒ Object
22 23 24 |
# File 'app/models/concerns/spree_cm_commissioner/firestore_connection.rb', line 22 def service_account @service_account ||= Rails.application.credentials.cloud_firestore_service_account end |