4351e8f2469dca22866c6428c841638a6d94d4aa
[motion2.git] / server / api / openchannelInteraction / openchannelInteraction.controller.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 _0x1394=['concat','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20>\x200','isArray','tag','filter','replace','isNumeric','i.id\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','i.from\x20LIKE\x20?','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','i.id','QueryTypes','SELECT','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','order','contactName','isEmpty','t.id\x20IN\x20?','i.OpenchannelAccountId\x20IS\x20NOT\x20NULL','user','role','getOpenchannelAccounts','sequelize','toString','keyBy','merge','OpenchannelInteraction','Account.key','Account.mandatoryDisposition','CASE\x20WHEN\x20i.from\x20IS\x20NOT\x20NULL\x20AND\x20i.from\x20<>\x20\x27\x27\x20THEN\x20i.from\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','c.firstName','c.lastName','Contact.lastName','c.email','Contact.email','c.mobile','Contact.mobile','c.fax','Contact.fax','Owner.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.OpenchannelInteractionId\x20IN\x20?','OpenchannelInteractionId','all','rows','catch','params','includeAll','include','options','create','describe','OpenchannelMessage','addMessage','ids','omit','getMessages','findOne','format','YYYY-MM-DD\x20HH:mm:ss','findAll','addTags','setTags','spread','color','emit','openchannelInteractionTags:save','removeTags','download','unix','join','server','files','tmp','root','attachments','transcript-%d-%s.zip','CmContact','firstName','lastName','Attachment','direction','secret','OpenchannelAccount','Owner','get','mkdirSync','Account','N.A.','closedAt','disposition','Public','Messages','basename','existsSync','createReadStream','pipe','createWriteStream','createdAt','System','out','views','downloadInteraction.ejs','transcript-','.pdf','unlinkSync','rimraf','moment','mustache','path','sox','ejs','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/export/pdf','../../config/logger','../../config/environment','redis','localhost','socket.io-emitter','./openchannelInteraction.socket','register','status','end','json','undefined','limit','offset','count','set','Content-Range','apply','update','then','destroy','sendStatus','error','stack','send','Users','map','fullname','TagIds','split','forEach','Tags','push','waiting','talking','unmanaged','total','UserId','closed','answered','rawAttributes','type','key','model','name','query','keys','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','pick','filters','select','field','from','tools_tags','u.fullname','ui.OpenchannelInteractionId','user_has_openchannel_interactions','left_join','users','u.id\x20=\x20ui.UserId','openchannel_interactions','o.id\x20=\x20i.UserId','a.id\x20=\x20i.OpenchannelAccountId','openchannel_messages','me.OpenchannelInteractionId\x20=\x20i.id','it.OpenchannelInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','conditions','unreadMessages','value','having','Contact','operator','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','find','ContactId','text','start','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','buildExpression','body','some','compact','OpenchannelAccountId','i.OpenchannelAccountId\x20IN\x20?'];(function(_0x4a5617,_0x53bac3){var _0x2d4e92=function(_0x4f4c91){while(--_0x4f4c91){_0x4a5617['push'](_0x4a5617['shift']());}};_0x2d4e92(++_0x53bac3);}(_0x1394,0x164));var _0x4139=function(_0x3457e4,_0x13dcfe){_0x3457e4=_0x3457e4-0x0;var _0x3072e0=_0x1394[_0x3457e4];return _0x3072e0;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x4139('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x4139('0x1'));var BPromise=require('bluebird');var Mustache=require(_0x4139('0x2'));var util=require('util');var path=require(_0x4139('0x3'));var sox=require(_0x4139('0x4'));var csv=require('to-csv');var ejs=require(_0x4139('0x5'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x4139('0x6'));var crypto=require(_0x4139('0x7'));var jsforce=require(_0x4139('0x8'));var deskjs=require(_0x4139('0x9'));var toCsv=require(_0x4139('0xa'));var querystring=require(_0x4139('0xb'));var Papa=require(_0x4139('0xc'));var Redis=require(_0x4139('0xd'));var authService=require(_0x4139('0xe'));var qs=require(_0x4139('0xf'));var as=require('../../components/parsers/advancedSearch');var pdf=require(_0x4139('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x4139('0x11'))('api');var utils=require('../../config/utils');var config=require(_0x4139('0x12'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0x4139('0x13')]=_['defaults'](config[_0x4139('0x13')],{'host':_0x4139('0x14'),'port':0x18eb});var socket=require(_0x4139('0x15'))(new Redis(config[_0x4139('0x13')]));require(_0x4139('0x16'))[_0x4139('0x17')](socket);function respondWithStatusCode(_0x5b3d26,_0x468cac){_0x468cac=_0x468cac||0xcc;return function(_0x44cae0){if(_0x44cae0){return _0x5b3d26['sendStatus'](_0x468cac);}return _0x5b3d26[_0x4139('0x18')](_0x468cac)[_0x4139('0x19')]();};}function respondWithResult(_0xd2db65,_0x39fc9d){_0x39fc9d=_0x39fc9d||0xc8;return function(_0x5500b9){if(_0x5500b9){return _0xd2db65['status'](_0x39fc9d)[_0x4139('0x1a')](_0x5500b9);}};}function respondWithFilteredResult(_0x4ac6ab,_0x3cda4d){return function(_0x41e4f2){if(_0x41e4f2){var _0x3aa798=typeof _0x3cda4d['offset']===_0x4139('0x1b')&&typeof _0x3cda4d[_0x4139('0x1c')]===_0x4139('0x1b');var _0x53554c=_0x41e4f2['count'];var _0x3f62fa=_0x3aa798?0x0:_0x3cda4d[_0x4139('0x1d')];var _0x2dcbaa=_0x3aa798?_0x41e4f2[_0x4139('0x1e')]:_0x3cda4d[_0x4139('0x1d')]+_0x3cda4d[_0x4139('0x1c')];var _0x46d94e;if(_0x2dcbaa>=_0x53554c){_0x2dcbaa=_0x53554c;_0x46d94e=0xc8;}else{_0x46d94e=0xce;}_0x4ac6ab[_0x4139('0x18')](_0x46d94e);return _0x4ac6ab[_0x4139('0x1f')](_0x4139('0x20'),_0x3f62fa+'-'+_0x2dcbaa+'/'+_0x53554c)[_0x4139('0x1a')](_0x41e4f2);}return null;};}function patchUpdates(_0xc35978){return function(_0x2f3705){try{jsonpatch[_0x4139('0x21')](_0x2f3705,_0xc35978,!![]);}catch(_0x3224b6){return BPromise['reject'](_0x3224b6);}return _0x2f3705['save']();};}function saveUpdates(_0x3942ee,_0x5a0bf3){return function(_0x3ed544){if(_0x3ed544){return _0x3ed544[_0x4139('0x22')](_0x3942ee)[_0x4139('0x23')](function(_0x11e6a3){return _0x11e6a3;});}return null;};}function removeEntity(_0xf796c8,_0x1b90a5){return function(_0x4d6e47){if(_0x4d6e47){return _0x4d6e47[_0x4139('0x24')]()[_0x4139('0x23')](function(){_0xf796c8[_0x4139('0x18')](0xcc)[_0x4139('0x19')]();});}};}function handleEntityNotFound(_0x36a824,_0x1d99c5){return function(_0x52340f){if(!_0x52340f){_0x36a824[_0x4139('0x25')](0x194);}return _0x52340f;};}function handleError(_0xb69b90,_0x20165b){_0x20165b=_0x20165b||0x1f4;return function(_0x140bc8){logger[_0x4139('0x26')](_0x140bc8[_0x4139('0x27')]);if(_0x140bc8['name']){delete _0x140bc8['name'];}_0xb69b90[_0x4139('0x18')](_0x20165b)[_0x4139('0x28')](_0x140bc8);};}function getInteractionUsers(_0x45d157,_0x293317){return new BPromise(function(_0x45be03,_0x2352f3){try{if(_0x293317[_0x45d157['id']]){_0x45d157[_0x4139('0x29')]=_[_0x4139('0x2a')](_0x293317[_0x45d157['id']],function(_0x5e5265){return{'id':_0x5e5265['id'],'fullname':_0x5e5265[_0x4139('0x2b')]};});}}catch(_0x5f01c4){_0x2352f3(_0x5f01c4);}_0x45be03(_0x45d157);});}function getInteractionTags(_0x296d50,_0x232d67){return new BPromise(function(_0x267a58,_0x2ab5db){try{if(_0x296d50[_0x4139('0x2c')]){_0x296d50['Tags']=[];_0x296d50['TagIds'][_0x4139('0x2d')](',')[_0x4139('0x2e')](function(_0x379af9){_0x296d50[_0x4139('0x2f')][_0x4139('0x30')](_0x232d67[_0x379af9]);});}delete _0x296d50[_0x4139('0x2c')];}catch(_0x4380ae){_0x2ab5db(_0x4380ae);}_0x267a58(_0x296d50);});}function updateOpenchannelInteraction(_0x1c1a55,_0x427cdb,_0x3c2f6f){return new BPromise(function(_0xe2e68a,_0x118f57){return getInteractionUsers(_0x1c1a55,_0x3c2f6f)[_0x4139('0x23')](function(_0x270a7a){return getInteractionTags(_0x270a7a,_0x427cdb);})['then'](function(_0x4fcfba){return getStateInteraction(_0x4fcfba);})['then'](function(_0x35fd7d){_0xe2e68a(_0x35fd7d);})['catch'](function(_0x1afbcb){_0x118f57(_0x1afbcb);});});}function getStateInteraction(_0x15e700){return new BPromise(function(_0x45c6f7){_0x15e700[_0x4139('0x31')]=0x0;_0x15e700[_0x4139('0x32')]=0x0;_0x15e700['answered']=0x0;_0x15e700[_0x4139('0x33')]=0x0;_0x15e700[_0x4139('0x34')]=0x0;if(!_0x15e700['closed']&&!_0x15e700[_0x4139('0x35')]){_0x15e700['waiting']+=0x1;}if(!_0x15e700['closed']&&_0x15e700[_0x4139('0x35')]){_0x15e700['talking']+=0x1;if(_0x15e700['waiting']){_0x15e700['waiting']-=0x1;}}if(_0x15e700[_0x4139('0x36')]&&_0x15e700[_0x4139('0x35')]){_0x15e700[_0x4139('0x37')]+=0x1;if(_0x15e700[_0x4139('0x32')]){_0x15e700[_0x4139('0x32')]-=0x1;}}if(_0x15e700[_0x4139('0x36')]&&!_0x15e700[_0x4139('0x35')]){_0x15e700[_0x4139('0x33')]+=0x1;if(_0x15e700[_0x4139('0x31')]){_0x15e700[_0x4139('0x31')]-=0x1;}}_0x15e700['total']+=0x1;_0x45c6f7(_0x15e700);});}exports['index']=function(_0x48bf73,_0x1ab99c){var _0x566c0f={},_0x5c0e7b={},_0x4bcb29={'count':0x0,'rows':[]};var _0x28459f=_[_0x4139('0x2a')](db['OpenchannelInteraction'][_0x4139('0x38')],function(_0x5e0919){return{'name':_0x5e0919['fieldName'],'type':_0x5e0919[_0x4139('0x39')][_0x4139('0x3a')]};});_0x5c0e7b[_0x4139('0x3b')]=_[_0x4139('0x2a')](_0x28459f,_0x4139('0x3c'));_0x5c0e7b[_0x4139('0x3d')]=_[_0x4139('0x3e')](_0x48bf73[_0x4139('0x3d')]);_0x5c0e7b['filters']=_['intersection'](_0x5c0e7b[_0x4139('0x3b')],_0x5c0e7b[_0x4139('0x3d')]);_0x566c0f['attributes']=_[_0x4139('0x3f')](_0x5c0e7b[_0x4139('0x3b')],qs['fields'](_0x48bf73['query'][_0x4139('0x40')]));_0x566c0f[_0x4139('0x41')]=_0x566c0f[_0x4139('0x41')][_0x4139('0x42')]?_0x566c0f[_0x4139('0x41')]:_0x5c0e7b[_0x4139('0x3b')];if(!_0x48bf73[_0x4139('0x3d')][_0x4139('0x43')](_0x4139('0x44'))){_0x566c0f['limit']=qs[_0x4139('0x1c')](_0x48bf73['query'][_0x4139('0x1c')]);_0x566c0f[_0x4139('0x1d')]=qs['offset'](_0x48bf73[_0x4139('0x3d')]['offset']);}_0x566c0f['order']=qs['sort'](_0x48bf73[_0x4139('0x3d')][_0x4139('0x45')]);_0x566c0f[_0x4139('0x46')]=qs['filters'](_[_0x4139('0x47')](_0x48bf73['query'],_0x5c0e7b[_0x4139('0x48')]),_0x28459f);var _0x266ad2=[];var _0x3a0613=squel[_0x4139('0x49')]()[_0x4139('0x4a')]('id')[_0x4139('0x4a')](_0x4139('0x3c'))[_0x4139('0x4a')]('color')[_0x4139('0x4b')](_0x4139('0x4c'));var _0x138551=squel[_0x4139('0x49')]()[_0x4139('0x4a')]('u.id')[_0x4139('0x4a')](_0x4139('0x4d'))['field'](_0x4139('0x4e'))[_0x4139('0x4b')](_0x4139('0x4f'),'ui')[_0x4139('0x50')](_0x4139('0x51'),'u',_0x4139('0x52'));var _0x232b64=squel[_0x4139('0x49')]()[_0x4139('0x4b')](_0x4139('0x53'),'i')['left_join']('cm_contacts','c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')[_0x4139('0x50')](_0x4139('0x51'),'o',_0x4139('0x54'))[_0x4139('0x50')]('openchannel_accounts','a',_0x4139('0x55'))['left_join'](_0x4139('0x56'),'me',_0x4139('0x57'))[_0x4139('0x50')]('openchannel_interaction_has_tags','it',_0x4139('0x58'))[_0x4139('0x50')](_0x4139('0x4c'),'t',_0x4139('0x59'));var _0x23cf69=squel[_0x4139('0x5a')]();var _0x199c79=[];var _0x151e26=squel[_0x4139('0x5a')]();var _0x1c924f;if(_0x48bf73[_0x4139('0x3d')][_0x4139('0x5b')]){_0x1c924f=as[_0x4139('0x5c')](_0x48bf73[_0x4139('0x3d')][_0x4139('0x5b')]);var _0xf7fc38=_0x1c924f[_0x4139('0x5d')];for(var _0x480347=0x0;_0x480347<_0x1c924f[_0x4139('0x5e')][_0x4139('0x42')];_0x480347++){var _0x1ca274=_0x1c924f[_0x4139('0x5e')][_0x480347];var _0x5d83d5='i';var _0xb64e0e=_['find'](_0x28459f,[_0x4139('0x3c'),_0x1ca274[_0x4139('0x4a')]]);if(!_0xb64e0e){switch(_0x1ca274[_0x4139('0x4a')]){case _0x4139('0x5f'):if(_0x1ca274[_0x4139('0x60')]==0x1){_0x232b64[_0x4139('0x61')]('`'+_0x1ca274[_0x4139('0x4a')]+'`\x20=\x200');}else{_0x232b64['having']('`'+_0x1ca274['field']+'`\x20>\x200');}break;case _0x4139('0x62'):if(_0x1ca274[_0x4139('0x63')]===_0x4139('0x64')){if(_0x1ca274[_0x4139('0x60')][_0x4139('0x2d')]('\x20')[_0x4139('0x42')]>0x1){_0x23cf69[_0xf7fc38](_0x4139('0x65'),qs[_0x4139('0x66')](_0x1ca274['value']),null);}else{var _0x19105e='%'+_0x1ca274['value']+'%';_0x23cf69[_0xf7fc38](_0x4139('0x67'),_0x19105e,_0x19105e,_0x19105e);}}else{_0xb64e0e=_[_0x4139('0x68')](_0x28459f,['name',_0x4139('0x69')]);_0x1ca274['field']='ContactId';_0x3e48b0=as['buildExpression'](_0x5d83d5,_0xb64e0e['type'],_0x1ca274);_0x23cf69[_0xf7fc38](_0x3e48b0[_0x4139('0x6a')],_0x3e48b0[_0x4139('0x60')][_0x4139('0x6b')],_0x3e48b0['value']['end']);}break;case _0x4139('0x6c'):var _0x250d58=_0x1ca274[_0x4139('0x60')]['split'](',')[_0x4139('0x2a')](function(_0x540c3f){return Number(_0x540c3f);});_0x250d58[_0x4139('0x2e')](function(_0x54522e){_0x151e26['or'](_0x4139('0x6d'),'%,'+_0x54522e+',%');});_0x199c79=_[_0x4139('0x6e')](_0x199c79,_0x250d58);break;case _0x4139('0x6f'):if(_0x1ca274[_0x4139('0x63')]===_0x4139('0x64')){_0x23cf69[_0xf7fc38]('CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','%'+_0x1ca274['value']+'%',null);}else{_0xb64e0e=_[_0x4139('0x68')](_0x28459f,[_0x4139('0x3c'),_0x4139('0x35')]);_0x1ca274[_0x4139('0x4a')]='UserId';_0x3e48b0=as[_0x4139('0x70')](_0x5d83d5,_0xb64e0e[_0x4139('0x39')],_0x1ca274);_0x23cf69[_0xf7fc38](_0x3e48b0[_0x4139('0x6a')],_0x3e48b0['value'][_0x4139('0x6b')],_0x3e48b0[_0x4139('0x60')][_0x4139('0x19')]);}break;case _0x4139('0x71'):_0x3e48b0=as[_0x4139('0x70')]('me',null,_0x1ca274);_0x23cf69[_0xf7fc38](_0x3e48b0[_0x4139('0x6a')],_0x3e48b0[_0x4139('0x60')][_0x4139('0x6b')],_0x3e48b0['value']['end']);break;}}else{var _0x3e48b0=as[_0x4139('0x70')](_0x5d83d5,_0xb64e0e[_0x4139('0x39')],_0x1ca274);_0x23cf69[_0xf7fc38](_0x3e48b0[_0x4139('0x6a')],_0x3e48b0['value'][_0x4139('0x6b')],_0x3e48b0['value']['end']);}}}else{var _0x5ca6c6=_(_0x48bf73[_0x4139('0x3d')])[_0x4139('0x3e')]()[_0x4139('0x2a')](function(_0x48729e){return _[_0x4139('0x72')](_0x28459f,[_0x4139('0x3c'),_0x48729e])?_0x48729e:undefined;})[_0x4139('0x73')]()['value']();if(!_['isEmpty'](_0x5ca6c6)){_0x5ca6c6['forEach'](function(_0x418097){if(_0x418097===_0x4139('0x74')){_0x232b64[_0x4139('0x46')](_0x4139('0x75'),[][_0x4139('0x76')](_0x48bf73['query'][_0x418097]));}else if(_0x418097==='createdAt'){var _0x34db9c=JSON[_0x4139('0x77')](_0x48bf73[_0x4139('0x3d')][_0x418097])[_0x4139('0x78')];var _0x1ca3ff=JSON[_0x4139('0x77')](_0x48bf73['query'][_0x418097])[_0x4139('0x79')];_0x232b64['where'](_0x4139('0x7a'),_0x34db9c,_0x1ca3ff);}else{if(_0x48bf73[_0x4139('0x3d')][_0x418097]===_0x4139('0x7b')){_0x232b64[_0x4139('0x46')]('i.'+_0x418097+_0x4139('0x7c'));}else{_0x232b64['where']('i.'+_0x418097+_0x4139('0x7d'),_0x48bf73['query'][_0x418097]);}}});}if(_0x48bf73[_0x4139('0x3d')]['read']){if(_0x48bf73['query'][_0x4139('0x7e')]==0x1){_0x232b64[_0x4139('0x61')]('`unreadMessages`\x20=\x200');}else{_0x232b64[_0x4139('0x61')](_0x4139('0x7f'));}}if(_0x48bf73[_0x4139('0x3d')]['tag']){_0x199c79=_[_0x4139('0x80')](_0x48bf73['query'][_0x4139('0x81')])?_0x48bf73[_0x4139('0x3d')][_0x4139('0x81')]:new Array(_0x48bf73[_0x4139('0x3d')][_0x4139('0x81')]);_0x199c79[_0x4139('0x2e')](function(_0x24340d){_0x151e26['or'](_0x4139('0x6d'),'%,'+_0x24340d+',%');});}if(_0x48bf73[_0x4139('0x3d')][_0x4139('0x82')]){var _0x22d26e=_0x48bf73[_0x4139('0x3d')][_0x4139('0x82')]['replace']('\x5c','\x5c\x5c')[_0x4139('0x83')](/'/g,'\x27\x27');if(qs[_0x4139('0x84')](_0x22d26e)){_0x23cf69['or'](_0x4139('0x85'),_0x22d26e+'%');}else{_0x23cf69['or'](_0x4139('0x86'),qs['getFullTextValue'](_0x22d26e))['or'](_0x4139('0x87'),_0x22d26e+'%')['or'](_0x4139('0x88'),_0x22d26e+'%');}}}_0x232b64[_0x4139('0x46')](_0x23cf69);_0x232b64[_0x4139('0x89')](_0x4139('0x8a'));var _0x5c50ef={'type':db['Sequelize'][_0x4139('0x8b')][_0x4139('0x8c')],'raw':!![]};var _0x2bf0d2=_0x232b64[_0x4139('0x8d')]();_0x2bf0d2['field']('i.id');_0x2bf0d2[_0x4139('0x4a')](_0x4139('0x8e'),_0x4139('0x5f'));if(_0x566c0f[_0x4139('0x8f')]){_0x566c0f[_0x4139('0x8f')][_0x4139('0x2e')](function(_0x38f7b7){var _0x1c128b=_0x38f7b7[0x0]===_0x4139('0x90')?_0x38f7b7[0x0]:'i.'+_0x38f7b7[0x0];_0x232b64['order'](_0x1c128b,_0x38f7b7[0x1]==='DESC'?![]:!![]);});}if(!_[_0x4139('0x91')](_0x199c79)){_0x232b64[_0x4139('0x61')](_0x151e26);_0x2bf0d2[_0x4139('0x46')](_0x4139('0x92'),_0x199c79);}BPromise['resolve']()[_0x4139('0x23')](function(){if(!_0x1c924f){if(_0x48bf73[_0x4139('0x3d')][_0x4139('0x74')])return;_0x2bf0d2['where'](_0x4139('0x93'));_0x232b64[_0x4139('0x46')]('i.OpenchannelAccountId\x20IS\x20NOT\x20NULL');return;}if(_0x48bf73[_0x4139('0x94')][_0x4139('0x95')]!=='agent')return;return _0x48bf73[_0x4139('0x94')][_0x4139('0x96')]({'attributes':['id'],'raw':!![]})[_0x4139('0x23')](function(_0x556ab6){if(_['isEmpty'](_0x556ab6)){_0x2bf0d2[_0x4139('0x46')]('i.OpenchannelAccountId\x20IS\x20NULL');_0x232b64['where']('i.OpenchannelAccountId\x20IS\x20NULL');}else{_0x2bf0d2[_0x4139('0x46')](_0x4139('0x75'),_[_0x4139('0x2a')](_0x556ab6,'id'));_0x232b64[_0x4139('0x46')]('i.OpenchannelAccountId\x20IN\x20?',_[_0x4139('0x2a')](_0x556ab6,'id'));}});})['then'](function(){if(_0x48bf73[_0x4139('0x94')][_0x4139('0x95')]==='agent'&&!_0x1c924f&&!_0x48bf73['query']['OpenchannelAccountId'])return[];return db[_0x4139('0x97')][_0x4139('0x3d')](_0x2bf0d2['toString'](),_0x5c50ef);})[_0x4139('0x23')](function(_0xe30bf1){_0x4bcb29[_0x4139('0x1e')]=_0xe30bf1['length'];if(_0x4bcb29[_0x4139('0x1e')]===0x0)return[];return db[_0x4139('0x97')][_0x4139('0x3d')](_0x3a0613[_0x4139('0x98')](),_0x5c50ef)['then'](function(_0x1ada2b){_0x266ad2=_[_0x4139('0x99')](_0x1ada2b,'id');_0x5c50ef=_[_0x4139('0x9a')](_0x5c50ef,{'model':db[_0x4139('0x9b')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x48bf73[_0x4139('0x3d')][_0x4139('0x40')]){_0x566c0f[_0x4139('0x41')][_0x4139('0x2e')](function(_0x2da260){_0x232b64[_0x4139('0x4a')]('i.'+_0x2da260);});}else{_0x232b64['field']('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0x4139('0x5f'));_0x232b64[_0x4139('0x4a')]('a.key',_0x4139('0x9c'));_0x232b64[_0x4139('0x4a')]('a.mandatoryDisposition',_0x4139('0x9d'));_0x232b64[_0x4139('0x4a')](_0x4139('0x9e'),_0x4139('0x90'));_0x232b64[_0x4139('0x4a')]('i.*');_0x232b64[_0x4139('0x4a')](_0x4139('0x9f'),'Contact.firstName');_0x232b64[_0x4139('0x4a')](_0x4139('0xa0'),_0x4139('0xa1'));_0x232b64[_0x4139('0x4a')](_0x4139('0xa2'),_0x4139('0xa3'));_0x232b64[_0x4139('0x4a')]('c.phone','Contact.phone');_0x232b64[_0x4139('0x4a')](_0x4139('0xa4'),_0x4139('0xa5'));_0x232b64[_0x4139('0x4a')](_0x4139('0xa6'),_0x4139('0xa7'));_0x232b64[_0x4139('0x4a')]('o.fullname',_0x4139('0xa8'));_0x232b64[_0x4139('0x4a')](_0x4139('0xa9'),_0x4139('0xaa'));_0x232b64[_0x4139('0x4a')](_0x4139('0xab'),_0x4139('0x2c'));}if(_0x566c0f[_0x4139('0x1c')])_0x232b64[_0x4139('0x1c')](_0x566c0f[_0x4139('0x1c')]);if(_0x566c0f[_0x4139('0x1d')])_0x232b64[_0x4139('0x1d')](_0x566c0f[_0x4139('0x1d')]);return db[_0x4139('0x97')][_0x4139('0x3d')](_0x232b64['toString'](),_0x5c50ef);})[_0x4139('0x23')](function(_0x52955f){if(_0x52955f[_0x4139('0x42')]>0x0)_0x138551[_0x4139('0x46')](_0x4139('0xac'),_[_0x4139('0x2a')](_0x52955f,'id'));return db[_0x4139('0x97')][_0x4139('0x3d')](_0x138551['toString'](),_0x5c50ef)[_0x4139('0x23')](function(_0xd48407){var _0x2699ee=_['groupBy'](_0xd48407,_0x4139('0xad'));var _0x4f3202=[];_0x52955f['forEach'](function(_0x606dd2){_0x4f3202[_0x4139('0x30')](updateOpenchannelInteraction(_0x606dd2,_0x266ad2,_0x2699ee));});return BPromise[_0x4139('0xae')](_0x4f3202);});});})[_0x4139('0x23')](function(_0x16cd0a){_0x4bcb29[_0x4139('0xaf')]=_0x16cd0a;return _0x4bcb29;})[_0x4139('0x23')](respondWithFilteredResult(_0x1ab99c,_0x566c0f))[_0x4139('0xb0')](handleError(_0x1ab99c,null));};exports['show']=function(_0xc812c1,_0x2b9a08){var _0x42e9f0={};if(_0xc812c1[_0x4139('0x3d')][_0x4139('0x39')]&&_0xc812c1['query'][_0x4139('0x39')]==='from'){_0x42e9f0[_0x4139('0x4b')]=_0xc812c1['params']['id'];}else{_0x42e9f0['id']=_0xc812c1[_0x4139('0xb1')]['id'];}var _0x4092ef={'raw':![],'where':_0x42e9f0},_0x59cc52={};_0x59cc52[_0x4139('0x3b')]=_['keys'](db['OpenchannelInteraction'][_0x4139('0x38')]);_0x59cc52['query']=_[_0x4139('0x3e')](_0xc812c1[_0x4139('0x3d')]);_0x59cc52[_0x4139('0x48')]=_[_0x4139('0x3f')](_0x59cc52['model'],_0x59cc52[_0x4139('0x3d')]);_0x4092ef[_0x4139('0x41')]=_[_0x4139('0x3f')](_0x59cc52[_0x4139('0x3b')],qs[_0x4139('0x40')](_0xc812c1[_0x4139('0x3d')][_0x4139('0x40')]));_0x4092ef[_0x4139('0x41')]=_0x4092ef['attributes'][_0x4139('0x42')]?_0x4092ef[_0x4139('0x41')]:_0x59cc52[_0x4139('0x3b')];if(_0xc812c1[_0x4139('0x3d')][_0x4139('0xb2')]){_0x4092ef[_0x4139('0xb3')]=[{'all':!![]}];}_0x4092ef=_[_0x4139('0x9a')]({},_0x4092ef,_0xc812c1[_0x4139('0xb4')]);return db[_0x4139('0x9b')][_0x4139('0x68')](_0x4092ef)[_0x4139('0x23')](handleEntityNotFound(_0x2b9a08,null))[_0x4139('0x23')](respondWithResult(_0x2b9a08,null))[_0x4139('0xb0')](handleError(_0x2b9a08,null));};exports['create']=function(_0x198497,_0x41c386){return db[_0x4139('0x9b')][_0x4139('0xb5')](_0x198497[_0x4139('0x71')],{})[_0x4139('0x23')](respondWithResult(_0x41c386,0xc9))['catch'](handleError(_0x41c386,null));};exports['update']=function(_0x1a0cb9,_0x160917){if(_0x1a0cb9[_0x4139('0x71')]['id']){delete _0x1a0cb9[_0x4139('0x71')]['id'];}return db[_0x4139('0x9b')][_0x4139('0x68')]({'where':{'id':_0x1a0cb9['params']['id']}})[_0x4139('0x23')](handleEntityNotFound(_0x160917,null))[_0x4139('0x23')](saveUpdates(_0x1a0cb9['body'],null))[_0x4139('0x23')](respondWithResult(_0x160917,null))[_0x4139('0xb0')](handleError(_0x160917,null));};exports[_0x4139('0x24')]=function(_0x3753b8,_0x3c011a){return db['OpenchannelInteraction'][_0x4139('0x68')]({'where':{'id':_0x3753b8[_0x4139('0xb1')]['id']}})[_0x4139('0x23')](handleEntityNotFound(_0x3c011a,null))['then'](removeEntity(_0x3c011a,null))[_0x4139('0xb0')](handleError(_0x3c011a,null));};exports[_0x4139('0xb6')]=function(_0x46471b,_0x361328){return db['OpenchannelInteraction'][_0x4139('0xb6')]()[_0x4139('0x23')](respondWithResult(_0x361328,null))[_0x4139('0xb0')](handleError(_0x361328,null));};exports['addMessage']=function(_0x1d29df,_0x3c15ac,_0x40d43f){return db[_0x4139('0xb7')][_0x4139('0x68')]({'where':{'id':_0x1d29df[_0x4139('0xb1')]['id']}})[_0x4139('0x23')](handleEntityNotFound(_0x3c15ac,null))[_0x4139('0x23')](function(_0x4125fb){if(_0x4125fb){return _0x4125fb[_0x4139('0xb8')](_0x1d29df[_0x4139('0x71')][_0x4139('0xb9')],_[_0x4139('0xba')](_0x1d29df[_0x4139('0x71')],[_0x4139('0xb9'),'id'])||{});}})['then'](respondWithResult(_0x3c15ac,null))['catch'](handleError(_0x3c15ac,null));};exports[_0x4139('0xbb')]=function(_0x34cc45,_0x44fd5e,_0x2682d1){var _0x34d621={'raw':![],'where':{}};var _0x4662fb={};var _0x443bb3={'count':0x0,'rows':[]};return db[_0x4139('0x9b')][_0x4139('0xbc')]({'where':{'id':_0x34cc45[_0x4139('0xb1')]['id']}})[_0x4139('0x23')](handleEntityNotFound(_0x44fd5e,null))[_0x4139('0x23')](function(_0x583324){if(_0x583324){_0x4662fb[_0x4139('0x3b')]=_[_0x4139('0x3e')](db[_0x4139('0xb7')]['rawAttributes']);_0x4662fb[_0x4139('0x3d')]=_[_0x4139('0x3e')](_0x34cc45[_0x4139('0x3d')]);_0x4662fb[_0x4139('0x48')]=_[_0x4139('0x3f')](_0x4662fb[_0x4139('0x3b')],_0x4662fb[_0x4139('0x3d')]);_0x34d621[_0x4139('0x41')]=_['intersection'](_0x4662fb[_0x4139('0x3b')],qs[_0x4139('0x40')](_0x34cc45[_0x4139('0x3d')][_0x4139('0x40')]));_0x34d621[_0x4139('0x41')]=_0x34d621[_0x4139('0x41')][_0x4139('0x42')]?_0x34d621['attributes']:_0x4662fb['model'];if(!_0x34cc45['query']['hasOwnProperty'](_0x4139('0x44'))){_0x34d621[_0x4139('0x1c')]=qs[_0x4139('0x1c')](_0x34cc45[_0x4139('0x3d')][_0x4139('0x1c')]);_0x34d621[_0x4139('0x1d')]=qs[_0x4139('0x1d')](_0x34cc45[_0x4139('0x3d')][_0x4139('0x1d')]);}_0x34d621['order']=qs['sort'](_0x34cc45['query'][_0x4139('0x45')]);_0x34d621[_0x4139('0x46')]=qs[_0x4139('0x48')](_[_0x4139('0x47')](_0x34cc45['query'],_0x4662fb[_0x4139('0x48')]));_0x34d621[_0x4139('0x46')][_0x4139('0xad')]=_0x583324['id'];if(_0x34cc45[_0x4139('0x3d')]['filter']){_0x34d621[_0x4139('0x46')]=_['merge'](_0x34d621[_0x4139('0x46')],{'$or':_['map'](_0x34d621[_0x4139('0x41')],function(_0x4feda4){var _0x4371ea={};_0x4371ea[_0x4feda4]={'$like':'%'+_0x34cc45[_0x4139('0x3d')][_0x4139('0x82')]+'%'};return _0x4371ea;})});}if(_0x34cc45[_0x4139('0x3d')][_0x4139('0x78')]){var _0x5b519b=_0x34cc45[_0x4139('0x3d')][_0x4139('0x78')][_0x4139('0x2d')](',');var _0x2510c8={};_0x2510c8[_0x5b519b[0x0]]={'$gte':moment(_0x5b519b[0x1])[_0x4139('0xbd')](_0x4139('0xbe'))};_0x34d621[_0x4139('0x46')]=_[_0x4139('0x9a')](_0x34d621['where'],_0x2510c8);}_0x34d621=_[_0x4139('0x9a')]({},_0x34d621,_0x34cc45[_0x4139('0xb4')]);return db[_0x4139('0xb7')][_0x4139('0x1e')]({'where':_0x34d621[_0x4139('0x46')]})['then'](function(_0x5aecd2){_0x443bb3[_0x4139('0x1e')]=_0x5aecd2;if(_0x34cc45[_0x4139('0x3d')][_0x4139('0xb2')]){_0x34d621[_0x4139('0xb3')]=[{'all':!![]}];}return db[_0x4139('0xb7')][_0x4139('0xbf')](_0x34d621);})[_0x4139('0x23')](function(_0x5a3833){_0x443bb3[_0x4139('0xaf')]=_0x5a3833;return _0x443bb3;});}})['then'](respondWithFilteredResult(_0x44fd5e,_0x34d621))[_0x4139('0xb0')](handleError(_0x44fd5e,null));};exports[_0x4139('0xc0')]=function(_0x2440b4,_0x294c7b,_0x12d82c){return db[_0x4139('0x9b')]['find']({'where':{'id':_0x2440b4[_0x4139('0xb1')]['id']}})[_0x4139('0x23')](handleEntityNotFound(_0x294c7b,null))['then'](function(_0x1a3ff5){if(_0x1a3ff5){return _0x1a3ff5[_0x4139('0xc1')](_0x2440b4[_0x4139('0x71')][_0x4139('0xb9')],_[_0x4139('0xba')](_0x2440b4[_0x4139('0x71')],[_0x4139('0xb9'),'id'])||{})[_0x4139('0xc2')](function(){return db['Tag'][_0x4139('0xbf')]({'attributes':['id',_0x4139('0x3c'),_0x4139('0xc3')],'where':{'id':_0x2440b4[_0x4139('0x71')][_0x4139('0xb9')]}});})[_0x4139('0x23')](function(_0x159ca1){socket[_0x4139('0xc4')](_0x4139('0xc5'),{'id':Number(_0x2440b4[_0x4139('0xb1')]['id']),'tags':_0x159ca1||[]});return{'id':Number(_0x2440b4['params']['id']),'tags':_0x159ca1||[]};});}})[_0x4139('0x23')](respondWithResult(_0x294c7b,null))['catch'](handleError(_0x294c7b,null));};exports[_0x4139('0xc6')]=function(_0x5f2a82,_0xb8509d,_0x53a9f5){return db[_0x4139('0x9b')]['find']({'where':{'id':_0x5f2a82[_0x4139('0xb1')]['id']}})['then'](handleEntityNotFound(_0xb8509d,null))['then'](function(_0x1d226b){if(_0x1d226b){return _0x1d226b[_0x4139('0xc6')](_0x5f2a82[_0x4139('0x3d')][_0x4139('0xb9')]);}})[_0x4139('0x23')](respondWithStatusCode(_0xb8509d,null))['catch'](handleError(_0xb8509d,null));};exports[_0x4139('0xc7')]=function(_0x3b60c4,_0x3a985b){var _0x40954e=moment()[_0x4139('0xc8')]()['toString']();var _0x5f243e=path[_0x4139('0xc9')](config['root'],_0x4139('0xca'),_0x4139('0xcb'),_0x4139('0xcc'));var _0x31d1ff=path[_0x4139('0xc9')](config[_0x4139('0xcd')],_0x4139('0xca'),'files',_0x4139('0xce'));var _0x3ed6f3=path[_0x4139('0xc9')](_0x5f243e,_0x40954e);var _0x52f272=util[_0x4139('0xbd')](_0x4139('0xcf'),_0x3b60c4[_0x4139('0xb1')]['id'],_0x40954e);var _0x5500d7=path['join'](_0x5f243e,_0x52f272);var _0x531d47=[];_0x531d47[_0x4139('0x30')]({'model':db['User'],'as':_0x4139('0x6f'),'attributes':['id',_0x4139('0x2b')],'raw':!![]});_0x531d47[_0x4139('0x30')]({'model':db[_0x4139('0xd0')],'as':'Contact','attributes':['id',_0x4139('0xd1'),_0x4139('0xd2')],'raw':!![]});if(_0x3b60c4[_0x4139('0x3d')]['attachments']){_0x531d47[_0x4139('0x30')]({'model':db[_0x4139('0xd3')],'as':'Attachment','raw':!![]});}var _0x55c23f=[{'model':db[_0x4139('0xb7')],'as':'Messages','attributes':['id','body','createdAt',_0x4139('0xd4'),_0x4139('0xd5'),_0x4139('0x7e')],'include':_0x531d47}];_0x55c23f[_0x4139('0x30')]({'model':db[_0x4139('0xd6')],'as':'Account','attributes':['id','name']});_0x55c23f[_0x4139('0x30')]({'model':db[_0x4139('0x6f')],'as':_0x4139('0xd7'),'attributes':['id',_0x4139('0x2b')]});return db[_0x4139('0x9b')][_0x4139('0x68')]({'where':{'id':_0x3b60c4[_0x4139('0xb1')]['id']},'include':_0x55c23f})[_0x4139('0x23')](handleEntityNotFound(_0x3a985b,null))[_0x4139('0x23')](function(_0x4bacf9){if(_0x4bacf9){var _0x4eecc3=_0x4bacf9[_0x4139('0xd8')]({'plain':!![]});fs[_0x4139('0xd9')](_0x3ed6f3);var _0x877423={'channel':'Openchannel','account':_0x4eecc3[_0x4139('0xda')][_0x4139('0x3c')],'agent':_0x4eecc3['Owner']?_0x4eecc3[_0x4139('0xd7')]['fullname']:_0x4139('0xdb'),'createdAt':moment(_0x4eecc3['createdAt'])[_0x4139('0xbd')]('YYYY-MM-DD\x20HH:mm:ss')['toString'](),'closedAt':_0x4eecc3[_0x4139('0x36')]?moment(_0x4eecc3[_0x4139('0xdc')])[_0x4139('0xbd')]('YYYY-MM-DD\x20HH:mm:ss')['toString']():'','disposition':_0x4eecc3[_0x4139('0xdd')],'visibility':_0x4eecc3['threadId']?_0x4139('0xde'):'Private','messages':_(_0x4eecc3[_0x4139('0xdf')])[_0x4139('0x82')]({'secret':![]})[_0x4139('0x2a')](function(_0x4696cb){if(_0x4696cb['Attachment']){var _0x335b60=path[_0x4139('0xc9')](_0x31d1ff,_0x4696cb['Attachment'][_0x4139('0xe0')]);if(fs[_0x4139('0xe1')](_0x335b60)){fs[_0x4139('0xe2')](_0x335b60)[_0x4139('0xe3')](fs[_0x4139('0xe4')](path[_0x4139('0xc9')](_0x3ed6f3,_0x4696cb[_0x4139('0xd3')][_0x4139('0xe0')])));}}return{'date':moment(_0x4696cb[_0x4139('0xe5')])['format']('YYYY-MM-DD\x20HH:mm:ss')[_0x4139('0x98')](),'sender':_0x4696cb[_0x4139('0xd4')]==='out'?_0x4696cb[_0x4139('0x6f')]?_0x4696cb[_0x4139('0x6f')][_0x4139('0x2b')]:_0x4139('0xe6'):_0x4696cb[_0x4139('0x62')]['firstName']+(_0x4696cb[_0x4139('0x62')]['lastName']?'\x20'+_0x4696cb['Contact'][_0x4139('0xd2')]:''),'body':_0x4696cb[_0x4139('0xd3')]?_0x4696cb[_0x4139('0xd3')][_0x4139('0xe0')]:_0x4696cb['body'],'direction':_0x4696cb[_0x4139('0xd4')]===_0x4139('0xe7')?'A':'C','secret':_0x4696cb['secret'],'read':_0x4696cb[_0x4139('0x7e')],'attachment':_0x4696cb['Attachment']};})['value']()};return ejs['renderFile'](path[_0x4139('0xc9')](config[_0x4139('0xcd')],'server',_0x4139('0xe8'),_0x4139('0xe9')),{'interaction':_0x877423})[_0x4139('0x23')](function(_0x52d056){var _0x574b93=path[_0x4139('0xc9')](_0x3ed6f3,_0x4139('0xea')+_0x4eecc3['id']+'-'+_0x40954e+_0x4139('0xeb'));var _0x25b142={'path':_0x574b93,'channel':'Openchannel','interactionId':_0x4eecc3['id']};return pdf['createPdfFromHTML'](_0x52d056,_0x25b142);})[_0x4139('0x23')](function(){return new BPromise(function(_0x54ec54,_0x1980db){zipdir(_0x3ed6f3,{'saveTo':_0x5500d7},function(_0xc8ebaa,_0x3407ee){if(_0xc8ebaa)return _0x1980db(_0xc8ebaa);return _0x54ec54(_0x3407ee);});})[_0x4139('0x23')](function(){return new BPromise(function(_0x40444a,_0x5dfdea){rimraf(_0x3ed6f3,function(_0x5c95ce){if(_0x5c95ce)_0x5dfdea(_0x5c95ce);return _0x40444a();});});})[_0x4139('0x23')](function(){return _0x3a985b['download'](_0x5500d7,_0x52f272,function(_0x1b95db){if(_0x1b95db){console['log']('err',_0x1b95db);}else{fs[_0x4139('0xec')](_0x5500d7);}});});});}else{return _0x3a985b[_0x4139('0x25')](0xc8);}})[_0x4139('0xb0')](handleError(_0x3a985b,null));};