# Copyright (C) 2012-2014 Zammad Foundation, http://zammad-foundation.org/

require 'channel/driver/facebook'

class Observer::Ticket::Article::CommunicateFacebook < ActiveRecord::Observer
  observe 'ticket::_article'

  def after_create(record)

    # return if we run import mode
    return if Setting.get('import_mode')

    # if sender is customer, do not communication
    sender = Ticket::Article::Sender.lookup( id: record.sender_id )
    return 1 if sender.nil?
    return 1 if sender['name'] == 'Customer'

    # only apply for facebook
    type = Ticket::Article::Type.lookup( id: record.type_id )
    return if type['name'] !~ /\Afacebook/

    facebook = Channel::Driver::Facebook.new
    post     = facebook.send({
                               type:        type['name'],
                               to:          record.to,
                               body:        record.body,
                               in_reply_to: record.in_reply_to
                             })
    record.message_id = post['id']
    record.save
  end
end
