1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- class Transaction::SignatureDetection
- def initialize(item, params = {})
- @item = item
- @params = params
- end
- def perform
-
- return if Setting.get('import_mode')
- return if @item[:type] != 'create'
- return if @item[:object] != 'Ticket'
- ticket = Ticket.lookup(id: @item[:object_id])
- return if !ticket
- article = ticket.articles.first
- return if !article
-
- sender = Ticket::Article::Sender.lookup(id: article.sender_id)
- return if !sender
- return if sender['name'] != 'Customer'
-
- type = Ticket::Article::Type.lookup(id: article.type_id)
- return if type['name'] != 'email'
-
- ::SignatureDetection.rebuild_user(article.created_by_id)
-
- user = User.lookup(id: article.created_by_id)
- return if !user
- return if !user.preferences
- return if !user.preferences[:signature_detection]
- line = ::SignatureDetection.find_signature_line_by_article(
- user,
- article
- )
- article.preferences[:signature_detection] = line
- article.save
- end
- end
|