Class: SpreeCmCommissioner::TelegramWebAppVendorUserChecker
- Inherits:
-
BaseInteractor
- Object
- BaseInteractor
- SpreeCmCommissioner::TelegramWebAppVendorUserChecker
- Defined in:
- app/interactors/spree_cm_commissioner/telegram_web_app_vendor_user_checker.rb
Instance Method Summary collapse
- #call ⇒ Object
- #check_vendors ⇒ Object
- #decode_telegram_user_id ⇒ Object
- #find_spree_user(telegram_user_id) ⇒ Object
Instance Method Details
#call ⇒ Object
5 6 7 8 9 10 |
# File 'app/interactors/spree_cm_commissioner/telegram_web_app_vendor_user_checker.rb', line 5 def call context.decoded_telegram_user_id = decode_telegram_user_id context.user = find_spree_user(context.decoded_telegram_user_id) check_vendors end |
#check_vendors ⇒ Object
29 30 31 32 33 |
# File 'app/interactors/spree_cm_commissioner/telegram_web_app_vendor_user_checker.rb', line 29 def check_vendors return unless context.user.vendors.empty? context.fail!(message: "You're not a vendor user") end |
#decode_telegram_user_id ⇒ Object
12 13 14 15 16 17 18 19 |
# File 'app/interactors/spree_cm_commissioner/telegram_web_app_vendor_user_checker.rb', line 12 def decode_telegram_user_id decode_telegram_user = ActiveSupport::JSON.decode(decoded_telegram_init_data['user']) telegram_user_id = decode_telegram_user['id'] return telegram_user_id if telegram_user_id.present? context.fail!(message: 'Telegram user is not provided') end |
#find_spree_user(telegram_user_id) ⇒ Object
21 22 23 24 25 26 27 |
# File 'app/interactors/spree_cm_commissioner/telegram_web_app_vendor_user_checker.rb', line 21 def find_spree_user(telegram_user_id) user_identity_provider = SpreeCmCommissioner::UserIdentityProvider.find_by(identity_type: :telegram, sub: telegram_user_id) return user_identity_provider.user if user_identity_provider&.user.present? context.fail!(message: 'Could not find connected user') end |