telegram.rb 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. # Copyright (C) 2012-2015 Zammad Foundation, http://zammad-foundation.org/
  2. class Channel::Driver::Telegram
  3. =begin
  4. instance = Channel::Driver::Telegram.new
  5. instance.send(
  6. {
  7. adapter: 'telegram',
  8. auth: {
  9. api_key: api_key
  10. },
  11. },
  12. telegram_attributes,
  13. notification
  14. )
  15. =end
  16. def send(options, article, _notification = false)
  17. # return if we run import mode
  18. return if Setting.get('import_mode')
  19. options = check_external_credential(options)
  20. @client = Telegram.new(options[:auth][:api_key])
  21. message = @client.from_article(article)
  22. message
  23. end
  24. =begin
  25. Channel::Driver::Telegram.streamable?
  26. returns
  27. true|false
  28. =end
  29. def self.streamable?
  30. false
  31. end
  32. private
  33. def check_external_credential(options)
  34. if options[:auth] && options[:auth][:external_credential_id]
  35. external_credential = ExternalCredential.find_by(id: options[:auth][:external_credential_id])
  36. raise "No such ExternalCredential.find(#{options[:auth][:external_credential_id]})" if !external_credential
  37. options[:auth][:api_key] = external_credential.credentials['api_key']
  38. end
  39. options
  40. end
  41. end