Module: Socrates::Adapters::Adapter
Instance Method Summary collapse
- #channel_from(context: nil, user: nil) ⇒ Object
-
#client_id_from(context: nil, user: nil) ⇒ Object
Many of the methods in the Adapter module serve as an interface for Adapter implementations to implement.
- #flush_session(session, channel: nil) ⇒ Object
- #lookup_email ⇒ Object
- #lookup_user(email:) ⇒ Object
- #queue_direct_message(session, message, recipient) ⇒ Object
- #queue_message(session, message, send_now: false) ⇒ Object
- #send_message(channel, message) ⇒ Object
- #user_from(context:) ⇒ Object
- #users(include_deleted: false, include_bots: false) ⇒ Object
Instance Method Details
#channel_from(context: nil, user: nil) ⇒ Object
15 16 17 |
# File 'lib/socrates/adapters/adapter.rb', line 15 def channel_from(context: nil, user: nil) raise NotImplementedError end |
#client_id_from(context: nil, user: nil) ⇒ Object
Many of the methods in the Adapter module serve as an interface for Adapter implementations to implement. We want to serve as an example, even if we don’t provide implementations here. Therefor, we’re disabling this cop to avoid its warnings. rubocop:disable Lint/UnusedMethodArgument
11 12 13 |
# File 'lib/socrates/adapters/adapter.rb', line 11 def client_id_from(context: nil, user: nil) raise NotImplementedError end |
#flush_session(session, channel: nil) ⇒ Object
36 37 38 39 40 41 |
# File 'lib/socrates/adapters/adapter.rb', line 36 def flush_session(session, channel: nil) session..select { |c, _| channel.nil? || channel == c }.each do |c, | (c, .join("\n\n")) .clear end end |
#lookup_email ⇒ Object
59 60 61 |
# File 'lib/socrates/adapters/adapter.rb', line 59 def lookup_email(*) raise NotImplementedError end |
#lookup_user(email:) ⇒ Object
55 56 57 |
# File 'lib/socrates/adapters/adapter.rb', line 55 def lookup_user(email:) users.members.find { |user| email == user.profile&.email } end |
#queue_direct_message(session, message, recipient) ⇒ Object
27 28 29 30 31 32 33 34 |
# File 'lib/socrates/adapters/adapter.rb', line 27 def (session, , recipient) raise ArgumentError, "recipient is required" unless recipient.present? raise ArgumentError, "recipient.id is required" unless recipient.id.present? dm_channel = channel_from(user: recipient) session.[dm_channel] << end |
#queue_message(session, message, send_now: false) ⇒ Object
19 20 21 22 23 24 25 |
# File 'lib/socrates/adapters/adapter.rb', line 19 def (session, , send_now: false) raise ArgumentError, "session is required" unless session.present? raise ArgumentError, "session.channel is required" unless session.channel.present? session.[session.channel] << flush_session(session, channel: session.channel) if send_now end |
#send_message(channel, message) ⇒ Object
43 44 45 |
# File 'lib/socrates/adapters/adapter.rb', line 43 def (channel, ) raise NotImplementedError end |
#user_from(context:) ⇒ Object
51 52 53 |
# File 'lib/socrates/adapters/adapter.rb', line 51 def user_from(context:) raise NotImplementedError end |
#users(include_deleted: false, include_bots: false) ⇒ Object
47 48 49 |
# File 'lib/socrates/adapters/adapter.rb', line 47 def users(include_deleted: false, include_bots: false) raise NotImplementedError end |