Built motion from commit 9d1906d1.|2.5.40
[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 _0x2b00=['./openchannelInteraction.socket','register','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','update','then','error','stack','name','send','Users','map','fullname','TagIds','split','forEach','Tags','push','talking','answered','unmanaged','total','closed','UserId','waiting','index','OpenchannelInteraction','rawAttributes','type','query','keys','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filters','pick','select','field','color','u.id','u.fullname','ui.OpenchannelInteractionId','from','user_has_openchannel_interactions','left_join','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','users','o.id\x20=\x20i.UserId','openchannel_accounts','a.id\x20=\x20i.OpenchannelAccountId','me.OpenchannelInteractionId\x20=\x20i.id','openchannel_interaction_has_tags','tools_tags','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','conditions','find','unreadMessages','value','`\x20=\x200','having','`\x20>\x200','Contact','operator','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','ContactId','buildExpression','text','start','union','User','$substring','body','some','compact','isEmpty','OpenchannelAccountId','i.OpenchannelAccountId\x20IN\x20?','concat','createdAt','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20=\x20?','read','`unreadMessages`\x20>\x200','tag','isArray','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','filter','replace','isNumeric','i.id\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','Sequelize','SELECT','i.id','order','DESC','t.id\x20IN\x20?','resolve','user','agent','getOpenchannelAccounts','i.OpenchannelAccountId\x20IS\x20NULL','role','sequelize','toString','keyBy','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','a.key','Account.key','a.mandatoryDisposition','contactName','i.*','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','Contact.phone','c.mobile','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.OpenchannelInteractionId\x20IN\x20?','groupBy','OpenchannelInteractionId','all','rows','show','params','includeAll','include','catch','create','destroy','describe','OpenchannelMessage','ids','omit','getMessages','findOne','merge','YYYY-MM-DD\x20HH:mm:ss','options','addTags','setTags','spread','Tag','findAll','removeTags','unix','server','tmp','join','root','files','attachments','format','transcript-%d-%s.zip','firstName','lastName','Attachment','Messages','secret','OpenchannelAccount','Account','Owner','get','mkdirSync','closedAt','disposition','basename','existsSync','createReadStream','pipe','createWriteStream','direction','out','System','renderFile','views','downloadInteraction.ejs','transcript-','.pdf','Openchannel','download','log','unlinkSync','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','sox','ejs','fs-extra','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter'];(function(_0x1cd7f1,_0x44236f){var _0x5adfde=function(_0x409537){while(--_0x409537){_0x1cd7f1['push'](_0x1cd7f1['shift']());}};_0x5adfde(++_0x44236f);}(_0x2b00,0xd6));var _0x02b0=function(_0x3b58e2,_0x4fbf5f){_0x3b58e2=_0x3b58e2-0x0;var _0x5a6677=_0x2b00[_0x3b58e2];return _0x5a6677;};'use strict';var emlformat=require(_0x02b0('0x0'));var rimraf=require(_0x02b0('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x02b0('0x2'));var rp=require(_0x02b0('0x3'));var moment=require('moment');var BPromise=require(_0x02b0('0x4'));var Mustache=require(_0x02b0('0x5'));var util=require(_0x02b0('0x6'));var path=require('path');var sox=require(_0x02b0('0x7'));var csv=require('to-csv');var ejs=require(_0x02b0('0x8'));var fs=require('fs');var fs_extra=require(_0x02b0('0x9'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x02b0('0xa'));var jsforce=require(_0x02b0('0xb'));var deskjs=require(_0x02b0('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x02b0('0xd'));var Redis=require(_0x02b0('0xe'));var authService=require(_0x02b0('0xf'));var qs=require(_0x02b0('0x10'));var as=require(_0x02b0('0x11'));var pdf=require(_0x02b0('0x12'));var hardwareService=require(_0x02b0('0x13'));var logger=require(_0x02b0('0x14'))(_0x02b0('0x15'));var utils=require('../../config/utils');var config=require(_0x02b0('0x16'));var licenseUtil=require(_0x02b0('0x17'));var db=require(_0x02b0('0x18'))['db'];config[_0x02b0('0x19')]=_[_0x02b0('0x1a')](config[_0x02b0('0x19')],{'host':'localhost','port':0x18eb});var socket=require(_0x02b0('0x1b'))(new Redis(config['redis']));require(_0x02b0('0x1c'))[_0x02b0('0x1d')](socket);function respondWithStatusCode(_0x37b3d1,_0x5a4c8d){_0x5a4c8d=_0x5a4c8d||0xcc;return function(_0x51c1a9){if(_0x51c1a9){return _0x37b3d1[_0x02b0('0x1e')](_0x5a4c8d);}return _0x37b3d1[_0x02b0('0x1f')](_0x5a4c8d)[_0x02b0('0x20')]();};}function respondWithResult(_0x1cf5f3,_0x168aef){_0x168aef=_0x168aef||0xc8;return function(_0x13a7ff){if(_0x13a7ff){return _0x1cf5f3[_0x02b0('0x1f')](_0x168aef)[_0x02b0('0x21')](_0x13a7ff);}};}function respondWithFilteredResult(_0x3114be,_0x4e1266){return function(_0x5cb71c){if(_0x5cb71c){var _0x533cc1=typeof _0x4e1266[_0x02b0('0x22')]===_0x02b0('0x23')&&typeof _0x4e1266[_0x02b0('0x24')]==='undefined';var _0x1edfa1=_0x5cb71c[_0x02b0('0x25')];var _0x534e62=_0x533cc1?0x0:_0x4e1266[_0x02b0('0x22')];var _0x392fe1=_0x533cc1?_0x5cb71c[_0x02b0('0x25')]:_0x4e1266[_0x02b0('0x22')]+_0x4e1266['limit'];var _0x4f0f49;if(_0x392fe1>=_0x1edfa1){_0x392fe1=_0x1edfa1;_0x4f0f49=0xc8;}else{_0x4f0f49=0xce;}_0x3114be[_0x02b0('0x1f')](_0x4f0f49);return _0x3114be[_0x02b0('0x26')](_0x02b0('0x27'),_0x534e62+'-'+_0x392fe1+'/'+_0x1edfa1)[_0x02b0('0x21')](_0x5cb71c);}return null;};}function patchUpdates(_0x33ef8b){return function(_0x50edb9){try{jsonpatch[_0x02b0('0x28')](_0x50edb9,_0x33ef8b,!![]);}catch(_0x4f9b19){return BPromise['reject'](_0x4f9b19);}return _0x50edb9['save']();};}function saveUpdates(_0x50ff9d,_0x44c4e4){return function(_0x31b5c1){if(_0x31b5c1){return _0x31b5c1[_0x02b0('0x29')](_0x50ff9d)[_0x02b0('0x2a')](function(_0x44a5f5){return _0x44a5f5;});}return null;};}function removeEntity(_0x17ea21,_0x7f97c1){return function(_0x57d321){if(_0x57d321){return _0x57d321['destroy']()[_0x02b0('0x2a')](function(){_0x17ea21[_0x02b0('0x1f')](0xcc)[_0x02b0('0x20')]();});}};}function handleEntityNotFound(_0x45e05c,_0xaa0205){return function(_0x338e35){if(!_0x338e35){_0x45e05c[_0x02b0('0x1e')](0x194);}return _0x338e35;};}function handleError(_0x49976e,_0x671b9a){_0x671b9a=_0x671b9a||0x1f4;return function(_0x46589e){logger[_0x02b0('0x2b')](_0x46589e[_0x02b0('0x2c')]);if(_0x46589e[_0x02b0('0x2d')]){delete _0x46589e['name'];}_0x49976e[_0x02b0('0x1f')](_0x671b9a)[_0x02b0('0x2e')](_0x46589e);};}function getInteractionUsers(_0xacf4fb,_0x2bb4a1){return new BPromise(function(_0x53ce51,_0x5b544d){try{if(_0x2bb4a1[_0xacf4fb['id']]){_0xacf4fb[_0x02b0('0x2f')]=_[_0x02b0('0x30')](_0x2bb4a1[_0xacf4fb['id']],function(_0x5cdbfd){return{'id':_0x5cdbfd['id'],'fullname':_0x5cdbfd[_0x02b0('0x31')]};});}}catch(_0x588be1){_0x5b544d(_0x588be1);}_0x53ce51(_0xacf4fb);});}function getInteractionTags(_0x413f88,_0x4f3d6d){return new BPromise(function(_0x5c47d9,_0xb543dc){try{if(_0x413f88[_0x02b0('0x32')]){_0x413f88['Tags']=[];_0x413f88[_0x02b0('0x32')][_0x02b0('0x33')](',')[_0x02b0('0x34')](function(_0x47a7d7){_0x413f88[_0x02b0('0x35')][_0x02b0('0x36')](_0x4f3d6d[_0x47a7d7]);});}delete _0x413f88['TagIds'];}catch(_0xf0a6c5){_0xb543dc(_0xf0a6c5);}_0x5c47d9(_0x413f88);});}function updateOpenchannelInteraction(_0x582d9c,_0x237f8a,_0x10bb4e){return new BPromise(function(_0x139b5e,_0x435401){return getInteractionUsers(_0x582d9c,_0x10bb4e)[_0x02b0('0x2a')](function(_0x40e315){return getInteractionTags(_0x40e315,_0x237f8a);})[_0x02b0('0x2a')](function(_0x3c484b){return getStateInteraction(_0x3c484b);})[_0x02b0('0x2a')](function(_0x6f05e6){_0x139b5e(_0x6f05e6);})['catch'](function(_0x21dc66){_0x435401(_0x21dc66);});});}function getStateInteraction(_0x576b81){return new BPromise(function(_0x3a962b){_0x576b81['waiting']=0x0;_0x576b81[_0x02b0('0x37')]=0x0;_0x576b81[_0x02b0('0x38')]=0x0;_0x576b81[_0x02b0('0x39')]=0x0;_0x576b81[_0x02b0('0x3a')]=0x0;if(!_0x576b81[_0x02b0('0x3b')]&&!_0x576b81[_0x02b0('0x3c')]){_0x576b81[_0x02b0('0x3d')]+=0x1;}if(!_0x576b81[_0x02b0('0x3b')]&&_0x576b81['UserId']){_0x576b81[_0x02b0('0x37')]+=0x1;if(_0x576b81['waiting']){_0x576b81['waiting']-=0x1;}}if(_0x576b81[_0x02b0('0x3b')]&&_0x576b81['UserId']){_0x576b81[_0x02b0('0x38')]+=0x1;if(_0x576b81[_0x02b0('0x37')]){_0x576b81['talking']-=0x1;}}if(_0x576b81['closed']&&!_0x576b81[_0x02b0('0x3c')]){_0x576b81[_0x02b0('0x39')]+=0x1;if(_0x576b81['waiting']){_0x576b81[_0x02b0('0x3d')]-=0x1;}}_0x576b81[_0x02b0('0x3a')]+=0x1;_0x3a962b(_0x576b81);});}exports[_0x02b0('0x3e')]=function(_0x37e1de,_0x52d018){var _0x5acef9={},_0x20e5fd={},_0x109b24={'count':0x0,'rows':[]};var _0x128088=_[_0x02b0('0x30')](db[_0x02b0('0x3f')][_0x02b0('0x40')],function(_0x2ca09e){return{'name':_0x2ca09e['fieldName'],'type':_0x2ca09e[_0x02b0('0x41')]['key']};});_0x20e5fd['model']=_[_0x02b0('0x30')](_0x128088,'name');_0x20e5fd[_0x02b0('0x42')]=_[_0x02b0('0x43')](_0x37e1de[_0x02b0('0x42')]);_0x20e5fd['filters']=_[_0x02b0('0x44')](_0x20e5fd[_0x02b0('0x45')],_0x20e5fd[_0x02b0('0x42')]);_0x5acef9[_0x02b0('0x46')]=_[_0x02b0('0x44')](_0x20e5fd[_0x02b0('0x45')],qs[_0x02b0('0x47')](_0x37e1de['query']['fields']));_0x5acef9[_0x02b0('0x46')]=_0x5acef9[_0x02b0('0x46')][_0x02b0('0x48')]?_0x5acef9['attributes']:_0x20e5fd['model'];if(!_0x37e1de[_0x02b0('0x42')][_0x02b0('0x49')](_0x02b0('0x4a'))){_0x5acef9[_0x02b0('0x24')]=qs[_0x02b0('0x24')](_0x37e1de[_0x02b0('0x42')]['limit']);_0x5acef9['offset']=qs[_0x02b0('0x22')](_0x37e1de[_0x02b0('0x42')][_0x02b0('0x22')]);}_0x5acef9['order']=qs[_0x02b0('0x4b')](_0x37e1de[_0x02b0('0x42')][_0x02b0('0x4b')]);_0x5acef9[_0x02b0('0x4c')]=qs[_0x02b0('0x4d')](_[_0x02b0('0x4e')](_0x37e1de[_0x02b0('0x42')],_0x20e5fd['filters']),_0x128088);var _0x2d7f9c=[];var _0x3d576d=squel[_0x02b0('0x4f')]()[_0x02b0('0x50')]('id')[_0x02b0('0x50')](_0x02b0('0x2d'))[_0x02b0('0x50')](_0x02b0('0x51'))['from']('tools_tags');var _0x557a60=squel['select']()['field'](_0x02b0('0x52'))[_0x02b0('0x50')](_0x02b0('0x53'))[_0x02b0('0x50')](_0x02b0('0x54'))[_0x02b0('0x55')](_0x02b0('0x56'),'ui')[_0x02b0('0x57')]('users','u','u.id\x20=\x20ui.UserId');var _0x554ec7=squel['select']()[_0x02b0('0x55')]('openchannel_interactions','i')[_0x02b0('0x57')](_0x02b0('0x58'),'c',_0x02b0('0x59'))[_0x02b0('0x57')](_0x02b0('0x5a'),'o',_0x02b0('0x5b'))['left_join'](_0x02b0('0x5c'),'a',_0x02b0('0x5d'))[_0x02b0('0x57')]('openchannel_messages','me',_0x02b0('0x5e'))[_0x02b0('0x57')](_0x02b0('0x5f'),'it','it.OpenchannelInteractionId\x20=\x20i.id')[_0x02b0('0x57')](_0x02b0('0x60'),'t',_0x02b0('0x61'));var _0x2b403c=squel[_0x02b0('0x62')]();var _0x3abfd4=[];var _0x2bc2b2=squel[_0x02b0('0x62')]();var _0x52ee1f;if(_0x37e1de[_0x02b0('0x42')][_0x02b0('0x63')]){_0x52ee1f=as[_0x02b0('0x64')](_0x37e1de[_0x02b0('0x42')]['search']);var _0x399d79=_0x52ee1f[_0x02b0('0x65')];for(var _0x4eabb3=0x0;_0x4eabb3<_0x52ee1f[_0x02b0('0x66')]['length'];_0x4eabb3++){var _0x3410ae=_0x52ee1f[_0x02b0('0x66')][_0x4eabb3];var _0x513aad='i';var _0x3e02ad=_[_0x02b0('0x67')](_0x128088,[_0x02b0('0x2d'),_0x3410ae[_0x02b0('0x50')]]);if(!_0x3e02ad){switch(_0x3410ae['field']){case _0x02b0('0x68'):if(_0x3410ae[_0x02b0('0x69')]==0x1){_0x554ec7['having']('`'+_0x3410ae[_0x02b0('0x50')]+_0x02b0('0x6a'));}else{_0x554ec7[_0x02b0('0x6b')]('`'+_0x3410ae['field']+_0x02b0('0x6c'));}break;case _0x02b0('0x6d'):if(_0x3410ae[_0x02b0('0x6e')]==='$substring'){if(_0x3410ae['value'][_0x02b0('0x33')]('\x20')['length']>0x1){_0x2b403c[_0x399d79](_0x02b0('0x6f'),qs[_0x02b0('0x70')](_0x3410ae['value']),null);}else{var _0x136ab6='%'+_0x3410ae[_0x02b0('0x69')]+'%';_0x2b403c[_0x399d79]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x136ab6,_0x136ab6,_0x136ab6);}}else{_0x3e02ad=_[_0x02b0('0x67')](_0x128088,[_0x02b0('0x2d'),_0x02b0('0x71')]);_0x3410ae[_0x02b0('0x50')]=_0x02b0('0x71');_0x74b8b6=as[_0x02b0('0x72')](_0x513aad,_0x3e02ad[_0x02b0('0x41')],_0x3410ae);_0x2b403c[_0x399d79](_0x74b8b6[_0x02b0('0x73')],_0x74b8b6[_0x02b0('0x69')][_0x02b0('0x74')],_0x74b8b6[_0x02b0('0x69')][_0x02b0('0x20')]);}break;case'Tag':var _0x157187=_0x3410ae[_0x02b0('0x69')][_0x02b0('0x33')](',')[_0x02b0('0x30')](function(_0x19e208){return Number(_0x19e208);});_0x157187[_0x02b0('0x34')](function(_0x4b5eac){_0x2bc2b2['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x4b5eac+',%');});_0x3abfd4=_[_0x02b0('0x75')](_0x3abfd4,_0x157187);break;case _0x02b0('0x76'):if(_0x3410ae[_0x02b0('0x6e')]===_0x02b0('0x77')){_0x2b403c[_0x399d79]('CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','%'+_0x3410ae[_0x02b0('0x69')]+'%',null);}else{_0x3e02ad=_[_0x02b0('0x67')](_0x128088,[_0x02b0('0x2d'),_0x02b0('0x3c')]);_0x3410ae[_0x02b0('0x50')]='UserId';_0x74b8b6=as[_0x02b0('0x72')](_0x513aad,_0x3e02ad['type'],_0x3410ae);_0x2b403c[_0x399d79](_0x74b8b6[_0x02b0('0x73')],_0x74b8b6[_0x02b0('0x69')][_0x02b0('0x74')],_0x74b8b6[_0x02b0('0x69')][_0x02b0('0x20')]);}break;case _0x02b0('0x78'):_0x74b8b6=as['buildExpression']('me',null,_0x3410ae);_0x2b403c[_0x399d79](_0x74b8b6[_0x02b0('0x73')],_0x74b8b6[_0x02b0('0x69')]['start'],_0x74b8b6[_0x02b0('0x69')][_0x02b0('0x20')]);break;}}else{var _0x74b8b6=as[_0x02b0('0x72')](_0x513aad,_0x3e02ad[_0x02b0('0x41')],_0x3410ae);_0x2b403c[_0x399d79](_0x74b8b6['text'],_0x74b8b6[_0x02b0('0x69')][_0x02b0('0x74')],_0x74b8b6[_0x02b0('0x69')]['end']);}}}else{var _0x2a1c1c=_(_0x37e1de['query'])[_0x02b0('0x43')]()[_0x02b0('0x30')](function(_0x31e6b9){return _[_0x02b0('0x79')](_0x128088,['name',_0x31e6b9])?_0x31e6b9:undefined;})[_0x02b0('0x7a')]()[_0x02b0('0x69')]();if(!_[_0x02b0('0x7b')](_0x2a1c1c)){_0x2a1c1c['forEach'](function(_0xfa8a51){if(_0xfa8a51===_0x02b0('0x7c')){_0x554ec7['where'](_0x02b0('0x7d'),[][_0x02b0('0x7e')](_0x37e1de[_0x02b0('0x42')][_0xfa8a51]));}else if(_0xfa8a51===_0x02b0('0x7f')){var _0x2bba0e=JSON[_0x02b0('0x80')](_0x37e1de[_0x02b0('0x42')][_0xfa8a51])[_0x02b0('0x81')];var _0x23c97c=JSON['parse'](_0x37e1de[_0x02b0('0x42')][_0xfa8a51])[_0x02b0('0x82')];_0x554ec7['where'](_0x02b0('0x83'),_0x2bba0e,_0x23c97c);}else{if(_0x37e1de['query'][_0xfa8a51]===_0x02b0('0x84')){_0x554ec7[_0x02b0('0x4c')]('i.'+_0xfa8a51+'\x20IS\x20NULL');}else{_0x554ec7[_0x02b0('0x4c')]('i.'+_0xfa8a51+_0x02b0('0x85'),_0x37e1de['query'][_0xfa8a51]);}}});}if(_0x37e1de[_0x02b0('0x42')][_0x02b0('0x86')]){if(_0x37e1de[_0x02b0('0x42')][_0x02b0('0x86')]==0x1){_0x554ec7['having']('`unreadMessages`\x20=\x200');}else{_0x554ec7[_0x02b0('0x6b')](_0x02b0('0x87'));}}if(_0x37e1de[_0x02b0('0x42')][_0x02b0('0x88')]){_0x3abfd4=_[_0x02b0('0x89')](_0x37e1de[_0x02b0('0x42')]['tag'])?_0x37e1de[_0x02b0('0x42')][_0x02b0('0x88')]:new Array(_0x37e1de[_0x02b0('0x42')][_0x02b0('0x88')]);_0x3abfd4[_0x02b0('0x34')](function(_0x454b8c){_0x2bc2b2['or'](_0x02b0('0x8a'),'%,'+_0x454b8c+',%');});}if(_0x37e1de[_0x02b0('0x42')][_0x02b0('0x8b')]){var _0x475c5c=_0x37e1de[_0x02b0('0x42')][_0x02b0('0x8b')][_0x02b0('0x8c')]('\x5c','\x5c\x5c')[_0x02b0('0x8c')](/'/g,'\x27\x27');if(qs[_0x02b0('0x8d')](_0x475c5c)){_0x2b403c['or'](_0x02b0('0x8e'),_0x475c5c+'%');}else{_0x2b403c['or'](_0x02b0('0x8f'),qs[_0x02b0('0x70')](_0x475c5c))['or']('i.from\x20LIKE\x20?',_0x475c5c+'%')['or'](_0x02b0('0x90'),_0x475c5c+'%');}}}_0x554ec7[_0x02b0('0x4c')](_0x2b403c);_0x554ec7[_0x02b0('0x91')]('i.id');var _0x226b1d={'type':db[_0x02b0('0x92')]['QueryTypes'][_0x02b0('0x93')],'raw':!![]};var _0x3d42ed=_0x554ec7['clone']();_0x3d42ed[_0x02b0('0x50')](_0x02b0('0x94'));_0x3d42ed['field']('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0x02b0('0x68'));if(_0x5acef9[_0x02b0('0x95')]){_0x5acef9['order'][_0x02b0('0x34')](function(_0x5ab273){var _0x460db1=_0x5ab273[0x0]==='contactName'?_0x5ab273[0x0]:'i.'+_0x5ab273[0x0];_0x554ec7[_0x02b0('0x95')](_0x460db1,_0x5ab273[0x1]===_0x02b0('0x96')?![]:!![]);});}if(!_['isEmpty'](_0x3abfd4)){_0x554ec7[_0x02b0('0x6b')](_0x2bc2b2);_0x3d42ed[_0x02b0('0x4c')](_0x02b0('0x97'),_0x3abfd4);}BPromise[_0x02b0('0x98')]()[_0x02b0('0x2a')](function(){if(!_0x52ee1f){if(_0x37e1de[_0x02b0('0x42')][_0x02b0('0x7c')])return;_0x3d42ed[_0x02b0('0x4c')]('i.OpenchannelAccountId\x20IS\x20NOT\x20NULL');_0x554ec7[_0x02b0('0x4c')]('i.OpenchannelAccountId\x20IS\x20NOT\x20NULL');return;}if(_0x37e1de[_0x02b0('0x99')]['role']!==_0x02b0('0x9a'))return;return _0x37e1de['user'][_0x02b0('0x9b')]({'attributes':['id'],'raw':!![]})[_0x02b0('0x2a')](function(_0x4f2df9){if(_[_0x02b0('0x7b')](_0x4f2df9)){_0x3d42ed[_0x02b0('0x4c')](_0x02b0('0x9c'));_0x554ec7[_0x02b0('0x4c')](_0x02b0('0x9c'));}else{_0x3d42ed[_0x02b0('0x4c')](_0x02b0('0x7d'),_['map'](_0x4f2df9,'id'));_0x554ec7['where'](_0x02b0('0x7d'),_[_0x02b0('0x30')](_0x4f2df9,'id'));}});})[_0x02b0('0x2a')](function(){if(_0x37e1de[_0x02b0('0x99')][_0x02b0('0x9d')]===_0x02b0('0x9a')&&!_0x52ee1f&&!_0x37e1de[_0x02b0('0x42')][_0x02b0('0x7c')])return[];return db[_0x02b0('0x9e')][_0x02b0('0x42')](_0x3d42ed[_0x02b0('0x9f')](),_0x226b1d);})['then'](function(_0x4f986f){_0x109b24[_0x02b0('0x25')]=_0x4f986f['length'];if(_0x109b24[_0x02b0('0x25')]===0x0)return[];return db[_0x02b0('0x9e')][_0x02b0('0x42')](_0x3d576d[_0x02b0('0x9f')](),_0x226b1d)[_0x02b0('0x2a')](function(_0x5e6e8c){_0x2d7f9c=_[_0x02b0('0xa0')](_0x5e6e8c,'id');_0x226b1d=_['merge'](_0x226b1d,{'model':db[_0x02b0('0x3f')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x37e1de[_0x02b0('0x42')][_0x02b0('0x47')]){_0x5acef9['attributes']['forEach'](function(_0x35cbb2){_0x554ec7[_0x02b0('0x50')]('i.'+_0x35cbb2);});}else{_0x554ec7[_0x02b0('0x50')](_0x02b0('0xa1'),'unreadMessages');_0x554ec7['field'](_0x02b0('0xa2'),_0x02b0('0xa3'));_0x554ec7['field'](_0x02b0('0xa4'),'Account.mandatoryDisposition');_0x554ec7[_0x02b0('0x50')]('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',_0x02b0('0xa5'));_0x554ec7[_0x02b0('0x50')](_0x02b0('0xa6'));_0x554ec7['field']('c.firstName','Contact.firstName');_0x554ec7[_0x02b0('0x50')](_0x02b0('0xa7'),_0x02b0('0xa8'));_0x554ec7['field'](_0x02b0('0xa9'),_0x02b0('0xaa'));_0x554ec7[_0x02b0('0x50')](_0x02b0('0xab'),_0x02b0('0xac'));_0x554ec7[_0x02b0('0x50')](_0x02b0('0xad'),'Contact.mobile');_0x554ec7[_0x02b0('0x50')]('c.fax','Contact.fax');_0x554ec7[_0x02b0('0x50')]('o.fullname','Owner.fullname');_0x554ec7[_0x02b0('0x50')](_0x02b0('0xae'),_0x02b0('0xaf'));_0x554ec7[_0x02b0('0x50')](_0x02b0('0xb0'),_0x02b0('0x32'));}if(_0x5acef9[_0x02b0('0x24')])_0x554ec7[_0x02b0('0x24')](_0x5acef9['limit']);if(_0x5acef9['offset'])_0x554ec7[_0x02b0('0x22')](_0x5acef9[_0x02b0('0x22')]);return db[_0x02b0('0x9e')][_0x02b0('0x42')](_0x554ec7[_0x02b0('0x9f')](),_0x226b1d);})[_0x02b0('0x2a')](function(_0x2f8f39){if(_0x2f8f39[_0x02b0('0x48')]>0x0)_0x557a60[_0x02b0('0x4c')](_0x02b0('0xb1'),_[_0x02b0('0x30')](_0x2f8f39,'id'));return db[_0x02b0('0x9e')][_0x02b0('0x42')](_0x557a60[_0x02b0('0x9f')](),_0x226b1d)[_0x02b0('0x2a')](function(_0x10b901){var _0x53de8e=_[_0x02b0('0xb2')](_0x10b901,_0x02b0('0xb3'));var _0x2324a9=[];_0x2f8f39[_0x02b0('0x34')](function(_0x36ebf4){_0x2324a9['push'](updateOpenchannelInteraction(_0x36ebf4,_0x2d7f9c,_0x53de8e));});return BPromise[_0x02b0('0xb4')](_0x2324a9);});});})[_0x02b0('0x2a')](function(_0x2278ac){_0x109b24[_0x02b0('0xb5')]=_0x2278ac;return _0x109b24;})['then'](respondWithFilteredResult(_0x52d018,_0x5acef9))['catch'](handleError(_0x52d018,null));};exports[_0x02b0('0xb6')]=function(_0x3b2cff,_0xdcd614){var _0x5617a0={};if(_0x3b2cff['query'][_0x02b0('0x41')]&&_0x3b2cff[_0x02b0('0x42')]['type']===_0x02b0('0x55')){_0x5617a0[_0x02b0('0x55')]=_0x3b2cff[_0x02b0('0xb7')]['id'];}else{_0x5617a0['id']=_0x3b2cff[_0x02b0('0xb7')]['id'];}var _0x5a395a={'raw':![],'where':_0x5617a0},_0x392af5={};_0x392af5[_0x02b0('0x45')]=_['keys'](db[_0x02b0('0x3f')][_0x02b0('0x40')]);_0x392af5['query']=_[_0x02b0('0x43')](_0x3b2cff[_0x02b0('0x42')]);_0x392af5[_0x02b0('0x4d')]=_[_0x02b0('0x44')](_0x392af5[_0x02b0('0x45')],_0x392af5[_0x02b0('0x42')]);_0x5a395a['attributes']=_['intersection'](_0x392af5[_0x02b0('0x45')],qs[_0x02b0('0x47')](_0x3b2cff[_0x02b0('0x42')][_0x02b0('0x47')]));_0x5a395a['attributes']=_0x5a395a[_0x02b0('0x46')][_0x02b0('0x48')]?_0x5a395a[_0x02b0('0x46')]:_0x392af5[_0x02b0('0x45')];if(_0x3b2cff[_0x02b0('0x42')][_0x02b0('0xb8')]){_0x5a395a[_0x02b0('0xb9')]=[{'all':!![]}];}_0x5a395a=_['merge']({},_0x5a395a,_0x3b2cff['options']);return db[_0x02b0('0x3f')][_0x02b0('0x67')](_0x5a395a)['then'](handleEntityNotFound(_0xdcd614,null))['then'](respondWithResult(_0xdcd614,null))[_0x02b0('0xba')](handleError(_0xdcd614,null));};exports[_0x02b0('0xbb')]=function(_0x314806,_0x5794ff){return db['OpenchannelInteraction'][_0x02b0('0xbb')](_0x314806[_0x02b0('0x78')],{})[_0x02b0('0x2a')](respondWithResult(_0x5794ff,0xc9))[_0x02b0('0xba')](handleError(_0x5794ff,null));};exports['update']=function(_0x380d03,_0xed6991){if(_0x380d03[_0x02b0('0x78')]['id']){delete _0x380d03[_0x02b0('0x78')]['id'];}return db[_0x02b0('0x3f')][_0x02b0('0x67')]({'where':{'id':_0x380d03['params']['id']}})['then'](handleEntityNotFound(_0xed6991,null))[_0x02b0('0x2a')](saveUpdates(_0x380d03[_0x02b0('0x78')],null))['then'](respondWithResult(_0xed6991,null))['catch'](handleError(_0xed6991,null));};exports[_0x02b0('0xbc')]=function(_0x1b4299,_0x3cefdd){return db['OpenchannelInteraction'][_0x02b0('0x67')]({'where':{'id':_0x1b4299[_0x02b0('0xb7')]['id']}})[_0x02b0('0x2a')](handleEntityNotFound(_0x3cefdd,null))[_0x02b0('0x2a')](removeEntity(_0x3cefdd,null))[_0x02b0('0xba')](handleError(_0x3cefdd,null));};exports[_0x02b0('0xbd')]=function(_0x2206a1,_0x2163df){return db[_0x02b0('0x3f')][_0x02b0('0xbd')]()[_0x02b0('0x2a')](respondWithResult(_0x2163df,null))[_0x02b0('0xba')](handleError(_0x2163df,null));};exports['addMessage']=function(_0x2526f3,_0x3aa845,_0x912d0c){return db[_0x02b0('0xbe')][_0x02b0('0x67')]({'where':{'id':_0x2526f3['params']['id']}})['then'](handleEntityNotFound(_0x3aa845,null))[_0x02b0('0x2a')](function(_0x37b6a9){if(_0x37b6a9){return _0x37b6a9['addMessage'](_0x2526f3[_0x02b0('0x78')][_0x02b0('0xbf')],_[_0x02b0('0xc0')](_0x2526f3[_0x02b0('0x78')],['ids','id'])||{});}})[_0x02b0('0x2a')](respondWithResult(_0x3aa845,null))[_0x02b0('0xba')](handleError(_0x3aa845,null));};exports[_0x02b0('0xc1')]=function(_0x4aed4b,_0x25a5cb,_0x25f810){var _0x291ba6={'raw':![],'where':{}};var _0x4bb0f0={};var _0xcec709={'count':0x0,'rows':[]};return db['OpenchannelInteraction'][_0x02b0('0xc2')]({'where':{'id':_0x4aed4b['params']['id']}})[_0x02b0('0x2a')](handleEntityNotFound(_0x25a5cb,null))[_0x02b0('0x2a')](function(_0x5716d4){if(_0x5716d4){_0x4bb0f0[_0x02b0('0x45')]=_['keys'](db[_0x02b0('0xbe')][_0x02b0('0x40')]);_0x4bb0f0[_0x02b0('0x42')]=_[_0x02b0('0x43')](_0x4aed4b[_0x02b0('0x42')]);_0x4bb0f0['filters']=_['intersection'](_0x4bb0f0[_0x02b0('0x45')],_0x4bb0f0[_0x02b0('0x42')]);_0x291ba6[_0x02b0('0x46')]=_[_0x02b0('0x44')](_0x4bb0f0[_0x02b0('0x45')],qs[_0x02b0('0x47')](_0x4aed4b['query'][_0x02b0('0x47')]));_0x291ba6[_0x02b0('0x46')]=_0x291ba6[_0x02b0('0x46')][_0x02b0('0x48')]?_0x291ba6[_0x02b0('0x46')]:_0x4bb0f0[_0x02b0('0x45')];if(!_0x4aed4b[_0x02b0('0x42')]['hasOwnProperty'](_0x02b0('0x4a'))){_0x291ba6[_0x02b0('0x24')]=qs[_0x02b0('0x24')](_0x4aed4b[_0x02b0('0x42')]['limit']);_0x291ba6[_0x02b0('0x22')]=qs[_0x02b0('0x22')](_0x4aed4b['query'][_0x02b0('0x22')]);}_0x291ba6['order']=qs[_0x02b0('0x4b')](_0x4aed4b[_0x02b0('0x42')][_0x02b0('0x4b')]);_0x291ba6['where']=qs[_0x02b0('0x4d')](_[_0x02b0('0x4e')](_0x4aed4b['query'],_0x4bb0f0[_0x02b0('0x4d')]));_0x291ba6['where'][_0x02b0('0xb3')]=_0x5716d4['id'];if(_0x4aed4b['query'][_0x02b0('0x8b')]){_0x291ba6['where']=_[_0x02b0('0xc3')](_0x291ba6[_0x02b0('0x4c')],{'$or':_['map'](_0x291ba6[_0x02b0('0x46')],function(_0x5879bf){var _0x360fd5={};_0x360fd5[_0x5879bf]={'$like':'%'+_0x4aed4b[_0x02b0('0x42')]['filter']+'%'};return _0x360fd5;})});}if(_0x4aed4b['query'][_0x02b0('0x81')]){var _0x20d423=_0x4aed4b[_0x02b0('0x42')][_0x02b0('0x81')][_0x02b0('0x33')](',');var _0x3b43b0={};_0x3b43b0[_0x20d423[0x0]]={'$gte':moment(_0x20d423[0x1])['format'](_0x02b0('0xc4'))};_0x291ba6[_0x02b0('0x4c')]=_[_0x02b0('0xc3')](_0x291ba6[_0x02b0('0x4c')],_0x3b43b0);}_0x291ba6=_[_0x02b0('0xc3')]({},_0x291ba6,_0x4aed4b[_0x02b0('0xc5')]);return db[_0x02b0('0xbe')]['count']({'where':_0x291ba6['where']})[_0x02b0('0x2a')](function(_0x1254b3){_0xcec709[_0x02b0('0x25')]=_0x1254b3;if(_0x4aed4b[_0x02b0('0x42')]['includeAll']){_0x291ba6[_0x02b0('0xb9')]=[{'all':!![]}];}return db[_0x02b0('0xbe')]['findAll'](_0x291ba6);})[_0x02b0('0x2a')](function(_0x6af2d1){_0xcec709[_0x02b0('0xb5')]=_0x6af2d1;return _0xcec709;});}})[_0x02b0('0x2a')](respondWithFilteredResult(_0x25a5cb,_0x291ba6))[_0x02b0('0xba')](handleError(_0x25a5cb,null));};exports[_0x02b0('0xc6')]=function(_0x2336f5,_0x3b40b4,_0x1e309c){return db[_0x02b0('0x3f')]['find']({'where':{'id':_0x2336f5[_0x02b0('0xb7')]['id']}})['then'](handleEntityNotFound(_0x3b40b4,null))[_0x02b0('0x2a')](function(_0x720025){if(_0x720025){return _0x720025[_0x02b0('0xc7')](_0x2336f5[_0x02b0('0x78')][_0x02b0('0xbf')],_[_0x02b0('0xc0')](_0x2336f5['body'],['ids','id'])||{})[_0x02b0('0xc8')](function(){return db[_0x02b0('0xc9')][_0x02b0('0xca')]({'attributes':['id',_0x02b0('0x2d'),'color'],'where':{'id':_0x2336f5['body'][_0x02b0('0xbf')]}});})[_0x02b0('0x2a')](function(_0xa9ffbd){socket['emit']('openchannelInteractionTags:save',{'id':Number(_0x2336f5['params']['id']),'tags':_0xa9ffbd||[]});return{'id':Number(_0x2336f5[_0x02b0('0xb7')]['id']),'tags':_0xa9ffbd||[]};});}})[_0x02b0('0x2a')](respondWithResult(_0x3b40b4,null))[_0x02b0('0xba')](handleError(_0x3b40b4,null));};exports['removeTags']=function(_0x1af402,_0x1ee0b6,_0x4c59ff){return db[_0x02b0('0x3f')][_0x02b0('0x67')]({'where':{'id':_0x1af402[_0x02b0('0xb7')]['id']}})['then'](handleEntityNotFound(_0x1ee0b6,null))[_0x02b0('0x2a')](function(_0x4d6710){if(_0x4d6710){return _0x4d6710[_0x02b0('0xcb')](_0x1af402[_0x02b0('0x42')][_0x02b0('0xbf')]);}})[_0x02b0('0x2a')](respondWithStatusCode(_0x1ee0b6,null))[_0x02b0('0xba')](handleError(_0x1ee0b6,null));};exports['download']=function(_0x4d4c6a,_0x105a83){var _0x277f20=moment()[_0x02b0('0xcc')]()['toString']();var _0x4b18be=path['join'](config['root'],_0x02b0('0xcd'),'files',_0x02b0('0xce'));var _0x31f4f3=path[_0x02b0('0xcf')](config[_0x02b0('0xd0')],_0x02b0('0xcd'),_0x02b0('0xd1'),_0x02b0('0xd2'));var _0x3b5eb2=path[_0x02b0('0xcf')](_0x4b18be,_0x277f20);var _0x805195=util[_0x02b0('0xd3')](_0x02b0('0xd4'),_0x4d4c6a[_0x02b0('0xb7')]['id'],_0x277f20);var _0x342f91=path[_0x02b0('0xcf')](_0x4b18be,_0x805195);var _0x43a5ba=[];_0x43a5ba['push']({'model':db[_0x02b0('0x76')],'as':'User','attributes':['id','fullname'],'raw':!![]});_0x43a5ba[_0x02b0('0x36')]({'model':db['CmContact'],'as':_0x02b0('0x6d'),'attributes':['id',_0x02b0('0xd5'),_0x02b0('0xd6')],'raw':!![]});if(_0x4d4c6a[_0x02b0('0x42')][_0x02b0('0xd2')]){_0x43a5ba[_0x02b0('0x36')]({'model':db[_0x02b0('0xd7')],'as':_0x02b0('0xd7'),'raw':!![]});}var _0x2dc94b=[{'model':db[_0x02b0('0xbe')],'as':_0x02b0('0xd8'),'attributes':['id',_0x02b0('0x78'),_0x02b0('0x7f'),'direction',_0x02b0('0xd9'),_0x02b0('0x86')],'include':_0x43a5ba}];_0x2dc94b['push']({'model':db[_0x02b0('0xda')],'as':_0x02b0('0xdb'),'attributes':['id',_0x02b0('0x2d')]});_0x2dc94b[_0x02b0('0x36')]({'model':db['User'],'as':_0x02b0('0xdc'),'attributes':['id',_0x02b0('0x31')]});return db[_0x02b0('0x3f')]['find']({'where':{'id':_0x4d4c6a['params']['id']},'include':_0x2dc94b})[_0x02b0('0x2a')](handleEntityNotFound(_0x105a83,null))[_0x02b0('0x2a')](function(_0x33a5f5){if(_0x33a5f5){var _0x2be76c=_0x33a5f5[_0x02b0('0xdd')]({'plain':!![]});fs[_0x02b0('0xde')](_0x3b5eb2);var _0x430834={'channel':'Openchannel','account':_0x2be76c['Account'][_0x02b0('0x2d')],'agent':_0x2be76c[_0x02b0('0xdc')]?_0x2be76c[_0x02b0('0xdc')][_0x02b0('0x31')]:'N.A.','createdAt':moment(_0x2be76c[_0x02b0('0x7f')])[_0x02b0('0xd3')](_0x02b0('0xc4'))[_0x02b0('0x9f')](),'closedAt':_0x2be76c[_0x02b0('0x3b')]?moment(_0x2be76c[_0x02b0('0xdf')])[_0x02b0('0xd3')]('YYYY-MM-DD\x20HH:mm:ss')[_0x02b0('0x9f')]():'','disposition':_0x2be76c[_0x02b0('0xe0')],'visibility':_0x2be76c['threadId']?'Public':'Private','messages':_(_0x2be76c[_0x02b0('0xd8')])[_0x02b0('0x8b')]({'secret':![]})[_0x02b0('0x30')](function(_0x251d6d){if(_0x251d6d['Attachment']){var _0x59171f=path[_0x02b0('0xcf')](_0x31f4f3,_0x251d6d['Attachment'][_0x02b0('0xe1')]);if(fs[_0x02b0('0xe2')](_0x59171f)){fs[_0x02b0('0xe3')](_0x59171f)[_0x02b0('0xe4')](fs[_0x02b0('0xe5')](path['join'](_0x3b5eb2,_0x251d6d[_0x02b0('0xd7')]['basename'])));}}return{'date':moment(_0x251d6d['createdAt'])[_0x02b0('0xd3')](_0x02b0('0xc4'))[_0x02b0('0x9f')](),'sender':_0x251d6d[_0x02b0('0xe6')]===_0x02b0('0xe7')?_0x251d6d[_0x02b0('0x76')]?_0x251d6d[_0x02b0('0x76')]['fullname']:_0x02b0('0xe8'):_0x251d6d['Contact']['firstName']+(_0x251d6d[_0x02b0('0x6d')][_0x02b0('0xd6')]?'\x20'+_0x251d6d[_0x02b0('0x6d')][_0x02b0('0xd6')]:''),'body':_0x251d6d[_0x02b0('0xd7')]?_0x251d6d[_0x02b0('0xd7')][_0x02b0('0xe1')]:_0x251d6d['body'],'direction':_0x251d6d[_0x02b0('0xe6')]===_0x02b0('0xe7')?'A':'C','secret':_0x251d6d['secret'],'read':_0x251d6d['read'],'attachment':_0x251d6d['Attachment']};})[_0x02b0('0x69')]()};return ejs[_0x02b0('0xe9')](path['join'](config[_0x02b0('0xd0')],_0x02b0('0xcd'),_0x02b0('0xea'),_0x02b0('0xeb')),{'interaction':_0x430834})[_0x02b0('0x2a')](function(_0x13bef0){var _0x12c2a0=path[_0x02b0('0xcf')](_0x3b5eb2,_0x02b0('0xec')+_0x2be76c['id']+'-'+_0x277f20+_0x02b0('0xed'));var _0x4f9153={'path':_0x12c2a0,'channel':_0x02b0('0xee'),'interactionId':_0x2be76c['id']};return pdf['createPdfFromHTML'](_0x13bef0,_0x4f9153);})[_0x02b0('0x2a')](function(){return new BPromise(function(_0x5bda10,_0x395f1f){zipdir(_0x3b5eb2,{'saveTo':_0x342f91},function(_0x46fec1,_0x57fb99){if(_0x46fec1)return _0x395f1f(_0x46fec1);return _0x5bda10(_0x57fb99);});})['then'](function(){return new BPromise(function(_0x4e51e3,_0x421241){rimraf(_0x3b5eb2,function(_0x2ca9c9){if(_0x2ca9c9)_0x421241(_0x2ca9c9);return _0x4e51e3();});});})['then'](function(){return _0x105a83[_0x02b0('0xef')](_0x342f91,_0x805195,function(_0x5de173){if(_0x5de173){console[_0x02b0('0xf0')]('err',_0x5de173);}else{fs[_0x02b0('0xf1')](_0x342f91);}});});});}else{return _0x105a83[_0x02b0('0x1e')](0xc8);}})[_0x02b0('0xba')](handleError(_0x105a83,null));};