communicate_twitter.rb 958 B

12345678910111213141516171819202122232425262728293031
  1. class Observer::Ticket::Article::CommunicateTwitter < ActiveRecord::Observer
  2. observe 'ticket::_article'
  3. def after_create(record)
  4. # return if we run import mode
  5. return if Setting.get('import_mode')
  6. # if sender is customer, do not communication
  7. sender = Ticket::Article::Sender.lookup( :id => record.ticket_article_sender_id )
  8. return 1 if sender == nil
  9. return 1 if sender['name'] == 'Customer'
  10. # only apply on tweets
  11. type = Ticket::Article::Type.lookup( :id => record.ticket_article_type_id )
  12. return if type['name'] != 'twitter direct-message' && type['name'] != 'twitter status'
  13. a = Channel::Twitter2.new
  14. message = a.send(
  15. {
  16. :type => type['name'],
  17. :to => record.to,
  18. :body => record.body,
  19. :in_reply_to => record.in_reply_to
  20. },
  21. Rails.application.config.channel_twitter
  22. )
  23. record.message_id = message.id
  24. record.save
  25. end
  26. end