9a192ef9616139a4961af2315f3cd2eb48e5bb19
[motion2.git] / server / api / chatInteraction / chatInteraction.events.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x1faf=['then','emit','hasOwnProperty','events','../../mysqldb','ChatInteraction','ChatMessage','setMaxListeners','save','update','remove','setDataValue','Users'];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0x1faf,0x1f1));var _0xf1fa=function(_0x39b63c,_0x22eedd){_0x39b63c=_0x39b63c-0x0;var _0x25c645=_0x1faf[_0x39b63c];return _0x25c645;};'use strict';var EventEmitter=require(_0xf1fa('0x0'));var ChatInteraction=require(_0xf1fa('0x1'))['db'][_0xf1fa('0x2')];var ChatMessage=require('../../mysqldb')['db'][_0xf1fa('0x3')];var ChatInteractionEvents=new EventEmitter();ChatInteractionEvents[_0xf1fa('0x4')](0x0);var events={'afterCreate':_0xf1fa('0x5'),'afterUpdate':_0xf1fa('0x6'),'afterDestroy':_0xf1fa('0x7')};function emitEvent(_0x359496){return function(_0x2888f5,_0x56f7cb,_0x5131b9){_0x2888f5['getUsers']({'attributes':['id'],'raw':!![]})['then'](function(_0x59fea9){_0x2888f5[_0xf1fa('0x8')](_0xf1fa('0x9'),_0x59fea9['map'](function(_0x258dba){return{'id':_0x258dba['id']};}));return ChatMessage['findAll']({'where':{'ChatInteractionId':_0x2888f5['id'],'direction':'in','read':![]},'raw':!![]});})[_0xf1fa('0xa')](function(_0x27212d){_0x2888f5[_0xf1fa('0x8')]('unreadMessages',_0x27212d['length']);ChatInteractionEvents['emit'](_0x359496+':'+_0x2888f5['id'],_0x2888f5);ChatInteractionEvents[_0xf1fa('0xb')](_0x359496,_0x2888f5);_0x5131b9(null);})['catch'](_0x5131b9(null));};}for(var e in events){if(events[_0xf1fa('0xc')](e)){var event=events[e];ChatInteraction['hook'](e,emitEvent(event));}}module['exports']=ChatInteractionEvents;