Built motion from commit f3da74b7.|2.5.36
[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 _0xdd36=['operator','$substring','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','find','UserId','buildExpression','compact','isEmpty','OpenchannelAccountId','concat','createdAt','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','read','`unreadMessages`\x20=\x200','tag','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','i.id','QueryTypes','SELECT','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','order','t.id\x20IN\x20?','resolve','i.OpenchannelAccountId\x20IS\x20NOT\x20NULL','user','role','agent','getOpenchannelAccounts','i.OpenchannelAccountId\x20IN\x20?','sequelize','merge','unreadMessages','a.key','Account.key','a.mandatoryDisposition','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','contactName','Contact.firstName','Contact.lastName','Contact.email','c.phone','Contact.mobile','Contact.fax','o.fullname','Owner.fullname','o.internal','Owner.internal','ui.OpenchannelInteractionId\x20IN\x20?','toString','groupBy','OpenchannelInteractionId','push','all','rows','catch','params','includeAll','options','body','describe','addMessage','OpenchannelMessage','ids','omit','getMessages','findOne','hasOwnProperty','pick','include','setTags','spread','findAll','color','openchannelInteractionTags:save','removeTags','unix','join','root','server','files','tmp','attachments','format','transcript-%d-%s.zip','CmContact','firstName','secret','OpenchannelAccount','Account','get','mkdirSync','Openchannel','Owner','N.A.','closed','closedAt','YYYY-MM-DD\x20HH:mm:ss','disposition','threadId','Public','Private','Messages','Attachment','basename','existsSync','pipe','direction','out','lastName','renderFile','views','downloadInteraction.ejs','.pdf','createPdfFromHTML','download','err','unlinkSync','eml-format','rimraf','fast-json-patch','moment','bluebird','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/export/pdf','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./openchannelInteraction.socket','register','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','destroy','then','error','stack','name','Users','map','fullname','TagIds','Tags','index','OpenchannelInteraction','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','nolimit','sort','where','select','field','from','tools_tags','u.fullname','user_has_openchannel_interactions','left_join','users','openchannel_interactions','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','a.id\x20=\x20i.OpenchannelAccountId','openchannel_messages','openchannel_interaction_has_tags','it.OpenchannelInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','length','conditions','value','having','`\x20=\x200','`\x20>\x200','Contact','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?','ContactId','text','start','end','Tag','split','forEach','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User'];(function(_0x2ba4d0,_0x5d1ecc){var _0x35e3af=function(_0xd42a64){while(--_0xd42a64){_0x2ba4d0['push'](_0x2ba4d0['shift']());}};_0x35e3af(++_0x5d1ecc);}(_0xdd36,0x16e));var _0x6dd3=function(_0x3d8a3b,_0xfd036a){_0x3d8a3b=_0x3d8a3b-0x0;var _0x599e5c=_0xdd36[_0x3d8a3b];return _0x599e5c;};'use strict';var emlformat=require(_0x6dd3('0x0'));var rimraf=require(_0x6dd3('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x6dd3('0x2'));var rp=require('request-promise');var moment=require(_0x6dd3('0x3'));var BPromise=require(_0x6dd3('0x4'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0x6dd3('0x5'));var csv=require(_0x6dd3('0x6'));var ejs=require(_0x6dd3('0x7'));var fs=require('fs');var fs_extra=require(_0x6dd3('0x8'));var _=require(_0x6dd3('0x9'));var squel=require('squel');var crypto=require(_0x6dd3('0xa'));var jsforce=require(_0x6dd3('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x6dd3('0x6'));var querystring=require(_0x6dd3('0xc'));var Papa=require(_0x6dd3('0xd'));var Redis=require('ioredis');var authService=require(_0x6dd3('0xe'));var qs=require(_0x6dd3('0xf'));var as=require('../../components/parsers/advancedSearch');var pdf=require(_0x6dd3('0x10'));var hardwareService=require(_0x6dd3('0x11'));var logger=require(_0x6dd3('0x12'))(_0x6dd3('0x13'));var utils=require(_0x6dd3('0x14'));var config=require(_0x6dd3('0x15'));var licenseUtil=require(_0x6dd3('0x16'));var db=require(_0x6dd3('0x17'))['db'];config[_0x6dd3('0x18')]=_['defaults'](config[_0x6dd3('0x18')],{'host':_0x6dd3('0x19'),'port':0x18eb});var socket=require(_0x6dd3('0x1a'))(new Redis(config['redis']));require(_0x6dd3('0x1b'))[_0x6dd3('0x1c')](socket);function respondWithStatusCode(_0x7d6d8d,_0x59e531){_0x59e531=_0x59e531||0xcc;return function(_0x363df8){if(_0x363df8){return _0x7d6d8d[_0x6dd3('0x1d')](_0x59e531);}return _0x7d6d8d[_0x6dd3('0x1e')](_0x59e531)['end']();};}function respondWithResult(_0x4810ee,_0x1ab7f9){_0x1ab7f9=_0x1ab7f9||0xc8;return function(_0x2623b4){if(_0x2623b4){return _0x4810ee[_0x6dd3('0x1e')](_0x1ab7f9)[_0x6dd3('0x1f')](_0x2623b4);}};}function respondWithFilteredResult(_0x39de6b,_0x33a1c3){return function(_0x293092){if(_0x293092){var _0x59b8c0=typeof _0x33a1c3[_0x6dd3('0x20')]===_0x6dd3('0x21')&&typeof _0x33a1c3['limit']===_0x6dd3('0x21');var _0x3254b5=_0x293092['count'];var _0x4caacd=_0x59b8c0?0x0:_0x33a1c3['offset'];var _0x230fcf=_0x59b8c0?_0x293092[_0x6dd3('0x22')]:_0x33a1c3[_0x6dd3('0x20')]+_0x33a1c3[_0x6dd3('0x23')];var _0x28ede1;if(_0x230fcf>=_0x3254b5){_0x230fcf=_0x3254b5;_0x28ede1=0xc8;}else{_0x28ede1=0xce;}_0x39de6b['status'](_0x28ede1);return _0x39de6b[_0x6dd3('0x24')](_0x6dd3('0x25'),_0x4caacd+'-'+_0x230fcf+'/'+_0x3254b5)['json'](_0x293092);}return null;};}function patchUpdates(_0x2401b6){return function(_0x5800a2){try{jsonpatch[_0x6dd3('0x26')](_0x5800a2,_0x2401b6,!![]);}catch(_0x6cd663){return BPromise[_0x6dd3('0x27')](_0x6cd663);}return _0x5800a2[_0x6dd3('0x28')]();};}function saveUpdates(_0x2f0dc1,_0x4d69ca){return function(_0x2c9bf1){if(_0x2c9bf1){return _0x2c9bf1[_0x6dd3('0x29')](_0x2f0dc1)['then'](function(_0x1839a7){return _0x1839a7;});}return null;};}function removeEntity(_0xf022cf,_0x181fa6){return function(_0x390591){if(_0x390591){return _0x390591[_0x6dd3('0x2a')]()[_0x6dd3('0x2b')](function(){_0xf022cf[_0x6dd3('0x1e')](0xcc)['end']();});}};}function handleEntityNotFound(_0x222bd9,_0x3dd0c5){return function(_0x3aef24){if(!_0x3aef24){_0x222bd9[_0x6dd3('0x1d')](0x194);}return _0x3aef24;};}function handleError(_0x444567,_0x5c00d1){_0x5c00d1=_0x5c00d1||0x1f4;return function(_0x35898f){logger[_0x6dd3('0x2c')](_0x35898f[_0x6dd3('0x2d')]);if(_0x35898f[_0x6dd3('0x2e')]){delete _0x35898f[_0x6dd3('0x2e')];}_0x444567['status'](_0x5c00d1)['send'](_0x35898f);};}function getInteractionUsers(_0x489286,_0x1ac6aa){return new BPromise(function(_0xed3c36,_0xbf74cd){try{if(_0x1ac6aa[_0x489286['id']]){_0x489286[_0x6dd3('0x2f')]=_[_0x6dd3('0x30')](_0x1ac6aa[_0x489286['id']],function(_0x6e172a){return{'id':_0x6e172a['id'],'fullname':_0x6e172a[_0x6dd3('0x31')]};});}}catch(_0x2d2ecc){_0xbf74cd(_0x2d2ecc);}_0xed3c36(_0x489286);});}function getInteractionTags(_0x2d8ff2,_0x56a851){return new BPromise(function(_0x3ed7aa,_0x204511){try{if(_0x2d8ff2[_0x6dd3('0x32')]){_0x2d8ff2[_0x6dd3('0x33')]=[];_0x2d8ff2[_0x6dd3('0x32')]['split'](',')['forEach'](function(_0x40263d){_0x2d8ff2['Tags']['push'](_0x56a851[_0x40263d]);});}delete _0x2d8ff2['TagIds'];}catch(_0x3ae320){_0x204511(_0x3ae320);}_0x3ed7aa(_0x2d8ff2);});}function updateOpenchannelInteraction(_0x2adc82,_0x5f0b5e,_0x5323ee){return new BPromise(function(_0x249dfc,_0x39b783){return getInteractionUsers(_0x2adc82,_0x5323ee)[_0x6dd3('0x2b')](function(_0x5cac7a){return getInteractionTags(_0x5cac7a,_0x5f0b5e);})[_0x6dd3('0x2b')](function(_0xa9e535){_0x249dfc(_0xa9e535);})['catch'](function(_0x48b556){_0x39b783(_0x48b556);});});}exports[_0x6dd3('0x34')]=function(_0x41359f,_0x973ea9){var _0x30e4c3={},_0x579ef1={},_0x27850a={'count':0x0,'rows':[]};var _0xb73dfa=_[_0x6dd3('0x30')](db[_0x6dd3('0x35')][_0x6dd3('0x36')],function(_0x1a67c1){return{'name':_0x1a67c1[_0x6dd3('0x37')],'type':_0x1a67c1[_0x6dd3('0x38')][_0x6dd3('0x39')]};});_0x579ef1['model']=_[_0x6dd3('0x30')](_0xb73dfa,_0x6dd3('0x2e'));_0x579ef1[_0x6dd3('0x3a')]=_[_0x6dd3('0x3b')](_0x41359f[_0x6dd3('0x3a')]);_0x579ef1[_0x6dd3('0x3c')]=_[_0x6dd3('0x3d')](_0x579ef1[_0x6dd3('0x3e')],_0x579ef1[_0x6dd3('0x3a')]);_0x30e4c3[_0x6dd3('0x3f')]=_[_0x6dd3('0x3d')](_0x579ef1[_0x6dd3('0x3e')],qs['fields'](_0x41359f[_0x6dd3('0x3a')][_0x6dd3('0x40')]));_0x30e4c3[_0x6dd3('0x3f')]=_0x30e4c3[_0x6dd3('0x3f')]['length']?_0x30e4c3[_0x6dd3('0x3f')]:_0x579ef1[_0x6dd3('0x3e')];if(!_0x41359f[_0x6dd3('0x3a')]['hasOwnProperty'](_0x6dd3('0x41'))){_0x30e4c3[_0x6dd3('0x23')]=qs[_0x6dd3('0x23')](_0x41359f[_0x6dd3('0x3a')][_0x6dd3('0x23')]);_0x30e4c3[_0x6dd3('0x20')]=qs[_0x6dd3('0x20')](_0x41359f[_0x6dd3('0x3a')][_0x6dd3('0x20')]);}_0x30e4c3['order']=qs[_0x6dd3('0x42')](_0x41359f[_0x6dd3('0x3a')][_0x6dd3('0x42')]);_0x30e4c3[_0x6dd3('0x43')]=qs[_0x6dd3('0x3c')](_['pick'](_0x41359f[_0x6dd3('0x3a')],_0x579ef1[_0x6dd3('0x3c')]),_0xb73dfa);var _0x5eb4af=[];var _0x45f5fd=squel[_0x6dd3('0x44')]()['field']('id')['field']('name')[_0x6dd3('0x45')]('color')[_0x6dd3('0x46')](_0x6dd3('0x47'));var _0x2315ac=squel[_0x6dd3('0x44')]()[_0x6dd3('0x45')]('u.id')[_0x6dd3('0x45')](_0x6dd3('0x48'))[_0x6dd3('0x45')]('ui.OpenchannelInteractionId')[_0x6dd3('0x46')](_0x6dd3('0x49'),'ui')[_0x6dd3('0x4a')](_0x6dd3('0x4b'),'u','u.id\x20=\x20ui.UserId');var _0x3c868f=squel[_0x6dd3('0x44')]()[_0x6dd3('0x46')](_0x6dd3('0x4c'),'i')[_0x6dd3('0x4a')]('cm_contacts','c',_0x6dd3('0x4d'))[_0x6dd3('0x4a')](_0x6dd3('0x4b'),'o',_0x6dd3('0x4e'))[_0x6dd3('0x4a')]('openchannel_accounts','a',_0x6dd3('0x4f'))[_0x6dd3('0x4a')](_0x6dd3('0x50'),'me','me.OpenchannelInteractionId\x20=\x20i.id')[_0x6dd3('0x4a')](_0x6dd3('0x51'),'it',_0x6dd3('0x52'))[_0x6dd3('0x4a')](_0x6dd3('0x47'),'t',_0x6dd3('0x53'));var _0x282383=squel[_0x6dd3('0x54')]();var _0xa35f5a=[];var _0x5ed89e=squel[_0x6dd3('0x54')]();var _0x4f2af5;if(_0x41359f['query'][_0x6dd3('0x55')]){_0x4f2af5=as[_0x6dd3('0x56')](_0x41359f[_0x6dd3('0x3a')][_0x6dd3('0x55')]);var _0x1e69e7=_0x4f2af5[_0x6dd3('0x57')];for(var _0x10bfd5=0x0;_0x10bfd5<_0x4f2af5['conditions'][_0x6dd3('0x58')];_0x10bfd5++){var _0x4c9fb7=_0x4f2af5[_0x6dd3('0x59')][_0x10bfd5];var _0x11211b='i';var _0xcde468=_['find'](_0xb73dfa,[_0x6dd3('0x2e'),_0x4c9fb7[_0x6dd3('0x45')]]);if(!_0xcde468){switch(_0x4c9fb7[_0x6dd3('0x45')]){case'unreadMessages':if(_0x4c9fb7[_0x6dd3('0x5a')]==0x1){_0x3c868f[_0x6dd3('0x5b')]('`'+_0x4c9fb7[_0x6dd3('0x45')]+_0x6dd3('0x5c'));}else{_0x3c868f['having']('`'+_0x4c9fb7[_0x6dd3('0x45')]+_0x6dd3('0x5d'));}break;case _0x6dd3('0x5e'):if(_0x4c9fb7['operator']==='$substring'){if(_0x4c9fb7[_0x6dd3('0x5a')]['split']('\x20')['length']>0x1){_0x282383[_0x1e69e7](_0x6dd3('0x5f'),qs[_0x6dd3('0x60')](_0x4c9fb7['value']),null);}else{var _0xf392c1='%'+_0x4c9fb7['value']+'%';_0x282383[_0x1e69e7](_0x6dd3('0x61'),_0xf392c1,_0xf392c1,_0xf392c1);}}else{_0xcde468=_['find'](_0xb73dfa,[_0x6dd3('0x2e'),_0x6dd3('0x62')]);_0x4c9fb7[_0x6dd3('0x45')]='ContactId';_0x423dd2=as['buildExpression'](_0x11211b,_0xcde468[_0x6dd3('0x38')],_0x4c9fb7);_0x282383[_0x1e69e7](_0x423dd2[_0x6dd3('0x63')],_0x423dd2[_0x6dd3('0x5a')][_0x6dd3('0x64')],_0x423dd2['value'][_0x6dd3('0x65')]);}break;case _0x6dd3('0x66'):var _0x4430fb=_0x4c9fb7[_0x6dd3('0x5a')][_0x6dd3('0x67')](',')[_0x6dd3('0x30')](function(_0x15c6a2){return Number(_0x15c6a2);});_0x4430fb[_0x6dd3('0x68')](function(_0x575dc8){_0x5ed89e['or'](_0x6dd3('0x69'),'%,'+_0x575dc8+',%');});_0xa35f5a=_[_0x6dd3('0x6a')](_0xa35f5a,_0x4430fb);break;case _0x6dd3('0x6b'):if(_0x4c9fb7[_0x6dd3('0x6c')]===_0x6dd3('0x6d')){_0x282383[_0x1e69e7](_0x6dd3('0x6e'),'%'+_0x4c9fb7[_0x6dd3('0x5a')]+'%',null);}else{_0xcde468=_[_0x6dd3('0x6f')](_0xb73dfa,[_0x6dd3('0x2e'),_0x6dd3('0x70')]);_0x4c9fb7['field']='UserId';_0x423dd2=as['buildExpression'](_0x11211b,_0xcde468['type'],_0x4c9fb7);_0x282383[_0x1e69e7](_0x423dd2['text'],_0x423dd2[_0x6dd3('0x5a')][_0x6dd3('0x64')],_0x423dd2['value'][_0x6dd3('0x65')]);}break;case'body':_0x423dd2=as['buildExpression']('me',null,_0x4c9fb7);_0x282383[_0x1e69e7](_0x423dd2[_0x6dd3('0x63')],_0x423dd2[_0x6dd3('0x5a')]['start'],_0x423dd2[_0x6dd3('0x5a')]['end']);break;}}else{var _0x423dd2=as[_0x6dd3('0x71')](_0x11211b,_0xcde468[_0x6dd3('0x38')],_0x4c9fb7);_0x282383[_0x1e69e7](_0x423dd2[_0x6dd3('0x63')],_0x423dd2[_0x6dd3('0x5a')][_0x6dd3('0x64')],_0x423dd2[_0x6dd3('0x5a')][_0x6dd3('0x65')]);}}}else{var _0x57b7b8=_(_0x41359f[_0x6dd3('0x3a')])['keys']()['map'](function(_0x103cef){return _['some'](_0xb73dfa,[_0x6dd3('0x2e'),_0x103cef])?_0x103cef:undefined;})[_0x6dd3('0x72')]()[_0x6dd3('0x5a')]();if(!_[_0x6dd3('0x73')](_0x57b7b8)){_0x57b7b8[_0x6dd3('0x68')](function(_0x32a361){if(_0x32a361===_0x6dd3('0x74')){_0x3c868f['where']('i.OpenchannelAccountId\x20IN\x20?',[][_0x6dd3('0x75')](_0x41359f['query'][_0x32a361]));}else if(_0x32a361===_0x6dd3('0x76')){var _0x591e6e=JSON[_0x6dd3('0x77')](_0x41359f[_0x6dd3('0x3a')][_0x32a361])[_0x6dd3('0x78')];var _0x5b93f8=JSON['parse'](_0x41359f[_0x6dd3('0x3a')][_0x32a361])[_0x6dd3('0x79')];_0x3c868f[_0x6dd3('0x43')](_0x6dd3('0x7a'),_0x591e6e,_0x5b93f8);}else{if(_0x41359f[_0x6dd3('0x3a')][_0x32a361]===_0x6dd3('0x7b')){_0x3c868f['where']('i.'+_0x32a361+'\x20IS\x20NULL');}else{_0x3c868f[_0x6dd3('0x43')]('i.'+_0x32a361+'\x20=\x20?',_0x41359f['query'][_0x32a361]);}}});}if(_0x41359f[_0x6dd3('0x3a')][_0x6dd3('0x7c')]){if(_0x41359f[_0x6dd3('0x3a')][_0x6dd3('0x7c')]==0x1){_0x3c868f['having'](_0x6dd3('0x7d'));}else{_0x3c868f[_0x6dd3('0x5b')]('`unreadMessages`\x20>\x200');}}if(_0x41359f[_0x6dd3('0x3a')]['tag']){_0xa35f5a=_['isArray'](_0x41359f['query'][_0x6dd3('0x7e')])?_0x41359f[_0x6dd3('0x3a')][_0x6dd3('0x7e')]:new Array(_0x41359f[_0x6dd3('0x3a')][_0x6dd3('0x7e')]);_0xa35f5a[_0x6dd3('0x68')](function(_0x302a90){_0x5ed89e['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x302a90+',%');});}if(_0x41359f['query'][_0x6dd3('0x7f')]){var _0x597dbf=_0x41359f[_0x6dd3('0x3a')][_0x6dd3('0x7f')]['replace']('\x5c','\x5c\x5c')[_0x6dd3('0x80')](/'/g,'\x27\x27');if(qs[_0x6dd3('0x81')](_0x597dbf)){_0x282383['or'](_0x6dd3('0x82'),_0x597dbf+'%');}else{_0x282383['or'](_0x6dd3('0x83'),qs['getFullTextValue'](_0x597dbf))['or']('i.from\x20LIKE\x20?',_0x597dbf+'%')['or'](_0x6dd3('0x84'),_0x597dbf+'%');}}}_0x3c868f['where'](_0x282383);_0x3c868f[_0x6dd3('0x85')](_0x6dd3('0x86'));var _0x3cc4be={'type':db['Sequelize'][_0x6dd3('0x87')][_0x6dd3('0x88')],'raw':!![]};var _0x4faa39=_0x3c868f[_0x6dd3('0x89')]();_0x4faa39[_0x6dd3('0x45')](_0x6dd3('0x86'));_0x4faa39['field'](_0x6dd3('0x8a'),'unreadMessages');if(_0x30e4c3['order']){_0x30e4c3[_0x6dd3('0x8b')][_0x6dd3('0x68')](function(_0x3d53da){var _0x38d26d=_0x3d53da[0x0]==='contactName'?_0x3d53da[0x0]:'i.'+_0x3d53da[0x0];_0x3c868f['order'](_0x38d26d,_0x3d53da[0x1]==='DESC'?![]:!![]);});}if(!_[_0x6dd3('0x73')](_0xa35f5a)){_0x3c868f['having'](_0x5ed89e);_0x4faa39[_0x6dd3('0x43')](_0x6dd3('0x8c'),_0xa35f5a);}BPromise[_0x6dd3('0x8d')]()[_0x6dd3('0x2b')](function(){if(!_0x4f2af5){if(_0x41359f[_0x6dd3('0x3a')][_0x6dd3('0x74')])return;_0x4faa39[_0x6dd3('0x43')](_0x6dd3('0x8e'));_0x3c868f['where'](_0x6dd3('0x8e'));return;}if(_0x41359f[_0x6dd3('0x8f')][_0x6dd3('0x90')]!==_0x6dd3('0x91'))return;return _0x41359f[_0x6dd3('0x8f')][_0x6dd3('0x92')]({'attributes':['id'],'raw':!![]})[_0x6dd3('0x2b')](function(_0x7beeff){if(_['isEmpty'](_0x7beeff)){_0x4faa39['where']('i.OpenchannelAccountId\x20IS\x20NULL');_0x3c868f[_0x6dd3('0x43')]('i.OpenchannelAccountId\x20IS\x20NULL');}else{_0x4faa39[_0x6dd3('0x43')](_0x6dd3('0x93'),_[_0x6dd3('0x30')](_0x7beeff,'id'));_0x3c868f[_0x6dd3('0x43')](_0x6dd3('0x93'),_[_0x6dd3('0x30')](_0x7beeff,'id'));}});})[_0x6dd3('0x2b')](function(){if(_0x41359f[_0x6dd3('0x8f')][_0x6dd3('0x90')]===_0x6dd3('0x91')&&!_0x4f2af5&&!_0x41359f[_0x6dd3('0x3a')][_0x6dd3('0x74')])return[];return db[_0x6dd3('0x94')][_0x6dd3('0x3a')](_0x4faa39['toString'](),_0x3cc4be);})[_0x6dd3('0x2b')](function(_0x223aed){_0x27850a[_0x6dd3('0x22')]=_0x223aed['length'];if(_0x27850a[_0x6dd3('0x22')]===0x0)return[];return db[_0x6dd3('0x94')][_0x6dd3('0x3a')](_0x45f5fd['toString'](),_0x3cc4be)[_0x6dd3('0x2b')](function(_0x2c00a0){_0x5eb4af=_['keyBy'](_0x2c00a0,'id');_0x3cc4be=_[_0x6dd3('0x95')](_0x3cc4be,{'model':db[_0x6dd3('0x35')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x41359f[_0x6dd3('0x3a')]['fields']){_0x30e4c3[_0x6dd3('0x3f')][_0x6dd3('0x68')](function(_0x26650d){_0x3c868f[_0x6dd3('0x45')]('i.'+_0x26650d);});}else{_0x3c868f[_0x6dd3('0x45')](_0x6dd3('0x8a'),_0x6dd3('0x96'));_0x3c868f[_0x6dd3('0x45')](_0x6dd3('0x97'),_0x6dd3('0x98'));_0x3c868f[_0x6dd3('0x45')](_0x6dd3('0x99'),_0x6dd3('0x9a'));_0x3c868f[_0x6dd3('0x45')](_0x6dd3('0x9b'),_0x6dd3('0x9c'));_0x3c868f[_0x6dd3('0x45')]('i.*');_0x3c868f[_0x6dd3('0x45')]('c.firstName',_0x6dd3('0x9d'));_0x3c868f[_0x6dd3('0x45')]('c.lastName',_0x6dd3('0x9e'));_0x3c868f[_0x6dd3('0x45')]('c.email',_0x6dd3('0x9f'));_0x3c868f['field'](_0x6dd3('0xa0'),'Contact.phone');_0x3c868f[_0x6dd3('0x45')]('c.mobile',_0x6dd3('0xa1'));_0x3c868f[_0x6dd3('0x45')]('c.fax',_0x6dd3('0xa2'));_0x3c868f[_0x6dd3('0x45')](_0x6dd3('0xa3'),_0x6dd3('0xa4'));_0x3c868f['field'](_0x6dd3('0xa5'),_0x6dd3('0xa6'));_0x3c868f['field']('GROUP_CONCAT(DISTINCT\x20t.id)',_0x6dd3('0x32'));}if(_0x30e4c3[_0x6dd3('0x23')])_0x3c868f['limit'](_0x30e4c3['limit']);if(_0x30e4c3[_0x6dd3('0x20')])_0x3c868f[_0x6dd3('0x20')](_0x30e4c3['offset']);return db[_0x6dd3('0x94')][_0x6dd3('0x3a')](_0x3c868f['toString'](),_0x3cc4be);})[_0x6dd3('0x2b')](function(_0x939029){if(_0x939029[_0x6dd3('0x58')]>0x0)_0x2315ac['where'](_0x6dd3('0xa7'),_[_0x6dd3('0x30')](_0x939029,'id'));return db[_0x6dd3('0x94')][_0x6dd3('0x3a')](_0x2315ac[_0x6dd3('0xa8')](),_0x3cc4be)[_0x6dd3('0x2b')](function(_0x4b9c2b){var _0x1563e2=_[_0x6dd3('0xa9')](_0x4b9c2b,_0x6dd3('0xaa'));var _0x52dd8d=[];_0x939029['forEach'](function(_0x22be7e){_0x52dd8d[_0x6dd3('0xab')](updateOpenchannelInteraction(_0x22be7e,_0x5eb4af,_0x1563e2));});return BPromise[_0x6dd3('0xac')](_0x52dd8d);});});})[_0x6dd3('0x2b')](function(_0x103824){_0x27850a[_0x6dd3('0xad')]=_0x103824;return _0x27850a;})[_0x6dd3('0x2b')](respondWithFilteredResult(_0x973ea9,_0x30e4c3))[_0x6dd3('0xae')](handleError(_0x973ea9,null));};exports['show']=function(_0x1cf451,_0x4b48d0){var _0x104c4d={};if(_0x1cf451['query'][_0x6dd3('0x38')]&&_0x1cf451[_0x6dd3('0x3a')]['type']===_0x6dd3('0x46')){_0x104c4d[_0x6dd3('0x46')]=_0x1cf451[_0x6dd3('0xaf')]['id'];}else{_0x104c4d['id']=_0x1cf451['params']['id'];}var _0x33fb20={'raw':![],'where':_0x104c4d},_0x5958e9={};_0x5958e9[_0x6dd3('0x3e')]=_['keys'](db[_0x6dd3('0x35')][_0x6dd3('0x36')]);_0x5958e9[_0x6dd3('0x3a')]=_['keys'](_0x1cf451[_0x6dd3('0x3a')]);_0x5958e9['filters']=_[_0x6dd3('0x3d')](_0x5958e9[_0x6dd3('0x3e')],_0x5958e9[_0x6dd3('0x3a')]);_0x33fb20['attributes']=_[_0x6dd3('0x3d')](_0x5958e9[_0x6dd3('0x3e')],qs[_0x6dd3('0x40')](_0x1cf451[_0x6dd3('0x3a')][_0x6dd3('0x40')]));_0x33fb20[_0x6dd3('0x3f')]=_0x33fb20[_0x6dd3('0x3f')][_0x6dd3('0x58')]?_0x33fb20[_0x6dd3('0x3f')]:_0x5958e9['model'];if(_0x1cf451['query'][_0x6dd3('0xb0')]){_0x33fb20['include']=[{'all':!![]}];}_0x33fb20=_[_0x6dd3('0x95')]({},_0x33fb20,_0x1cf451[_0x6dd3('0xb1')]);return db['OpenchannelInteraction']['find'](_0x33fb20)[_0x6dd3('0x2b')](handleEntityNotFound(_0x4b48d0,null))['then'](respondWithResult(_0x4b48d0,null))[_0x6dd3('0xae')](handleError(_0x4b48d0,null));};exports['create']=function(_0x5543ed,_0x426a9a){return db[_0x6dd3('0x35')]['create'](_0x5543ed[_0x6dd3('0xb2')],{})[_0x6dd3('0x2b')](respondWithResult(_0x426a9a,0xc9))[_0x6dd3('0xae')](handleError(_0x426a9a,null));};exports[_0x6dd3('0x29')]=function(_0x49257d,_0x10b1da){if(_0x49257d['body']['id']){delete _0x49257d['body']['id'];}return db[_0x6dd3('0x35')][_0x6dd3('0x6f')]({'where':{'id':_0x49257d[_0x6dd3('0xaf')]['id']}})['then'](handleEntityNotFound(_0x10b1da,null))[_0x6dd3('0x2b')](saveUpdates(_0x49257d[_0x6dd3('0xb2')],null))[_0x6dd3('0x2b')](respondWithResult(_0x10b1da,null))['catch'](handleError(_0x10b1da,null));};exports[_0x6dd3('0x2a')]=function(_0x2dc117,_0x56e98a){return db[_0x6dd3('0x35')][_0x6dd3('0x6f')]({'where':{'id':_0x2dc117['params']['id']}})[_0x6dd3('0x2b')](handleEntityNotFound(_0x56e98a,null))[_0x6dd3('0x2b')](removeEntity(_0x56e98a,null))[_0x6dd3('0xae')](handleError(_0x56e98a,null));};exports[_0x6dd3('0xb3')]=function(_0x3bcd63,_0x38fdbf){return db[_0x6dd3('0x35')][_0x6dd3('0xb3')]()['then'](respondWithResult(_0x38fdbf,null))[_0x6dd3('0xae')](handleError(_0x38fdbf,null));};exports[_0x6dd3('0xb4')]=function(_0x4fa0d0,_0x3f7734,_0x8e3971){return db[_0x6dd3('0xb5')][_0x6dd3('0x6f')]({'where':{'id':_0x4fa0d0[_0x6dd3('0xaf')]['id']}})[_0x6dd3('0x2b')](handleEntityNotFound(_0x3f7734,null))[_0x6dd3('0x2b')](function(_0x137445){if(_0x137445){return _0x137445[_0x6dd3('0xb4')](_0x4fa0d0['body'][_0x6dd3('0xb6')],_[_0x6dd3('0xb7')](_0x4fa0d0[_0x6dd3('0xb2')],[_0x6dd3('0xb6'),'id'])||{});}})[_0x6dd3('0x2b')](respondWithResult(_0x3f7734,null))[_0x6dd3('0xae')](handleError(_0x3f7734,null));};exports[_0x6dd3('0xb8')]=function(_0xed89b6,_0x4b67da,_0x225e7e){var _0xbb5694={'raw':![],'where':{}};var _0x9c99d={};var _0x369d3e={'count':0x0,'rows':[]};return db[_0x6dd3('0x35')][_0x6dd3('0xb9')]({'where':{'id':_0xed89b6['params']['id']}})[_0x6dd3('0x2b')](handleEntityNotFound(_0x4b67da,null))[_0x6dd3('0x2b')](function(_0x543856){if(_0x543856){_0x9c99d['model']=_[_0x6dd3('0x3b')](db[_0x6dd3('0xb5')][_0x6dd3('0x36')]);_0x9c99d[_0x6dd3('0x3a')]=_[_0x6dd3('0x3b')](_0xed89b6[_0x6dd3('0x3a')]);_0x9c99d[_0x6dd3('0x3c')]=_[_0x6dd3('0x3d')](_0x9c99d[_0x6dd3('0x3e')],_0x9c99d['query']);_0xbb5694['attributes']=_[_0x6dd3('0x3d')](_0x9c99d[_0x6dd3('0x3e')],qs['fields'](_0xed89b6[_0x6dd3('0x3a')]['fields']));_0xbb5694['attributes']=_0xbb5694['attributes'][_0x6dd3('0x58')]?_0xbb5694[_0x6dd3('0x3f')]:_0x9c99d[_0x6dd3('0x3e')];if(!_0xed89b6[_0x6dd3('0x3a')][_0x6dd3('0xba')](_0x6dd3('0x41'))){_0xbb5694[_0x6dd3('0x23')]=qs['limit'](_0xed89b6[_0x6dd3('0x3a')][_0x6dd3('0x23')]);_0xbb5694[_0x6dd3('0x20')]=qs[_0x6dd3('0x20')](_0xed89b6[_0x6dd3('0x3a')]['offset']);}_0xbb5694[_0x6dd3('0x8b')]=qs[_0x6dd3('0x42')](_0xed89b6['query'][_0x6dd3('0x42')]);_0xbb5694[_0x6dd3('0x43')]=qs[_0x6dd3('0x3c')](_[_0x6dd3('0xbb')](_0xed89b6[_0x6dd3('0x3a')],_0x9c99d[_0x6dd3('0x3c')]));_0xbb5694[_0x6dd3('0x43')][_0x6dd3('0xaa')]=_0x543856['id'];if(_0xed89b6[_0x6dd3('0x3a')][_0x6dd3('0x7f')]){_0xbb5694['where']=_[_0x6dd3('0x95')](_0xbb5694['where'],{'$or':_['map'](_0xbb5694['attributes'],function(_0x3cfa3e){var _0x4a68f5={};_0x4a68f5[_0x3cfa3e]={'$like':'%'+_0xed89b6['query'][_0x6dd3('0x7f')]+'%'};return _0x4a68f5;})});}if(_0xed89b6['query'][_0x6dd3('0x78')]){var _0x7c4c27=_0xed89b6[_0x6dd3('0x3a')][_0x6dd3('0x78')][_0x6dd3('0x67')](',');var _0x91760c={};_0x91760c[_0x7c4c27[0x0]]={'$gte':moment(_0x7c4c27[0x1])['format']('YYYY-MM-DD\x20HH:mm:ss')};_0xbb5694[_0x6dd3('0x43')]=_[_0x6dd3('0x95')](_0xbb5694[_0x6dd3('0x43')],_0x91760c);}_0xbb5694=_[_0x6dd3('0x95')]({},_0xbb5694,_0xed89b6[_0x6dd3('0xb1')]);return db[_0x6dd3('0xb5')][_0x6dd3('0x22')]({'where':_0xbb5694[_0x6dd3('0x43')]})[_0x6dd3('0x2b')](function(_0x9bae58){_0x369d3e[_0x6dd3('0x22')]=_0x9bae58;if(_0xed89b6[_0x6dd3('0x3a')][_0x6dd3('0xb0')]){_0xbb5694[_0x6dd3('0xbc')]=[{'all':!![]}];}return db[_0x6dd3('0xb5')]['findAll'](_0xbb5694);})[_0x6dd3('0x2b')](function(_0x488755){_0x369d3e[_0x6dd3('0xad')]=_0x488755;return _0x369d3e;});}})[_0x6dd3('0x2b')](respondWithFilteredResult(_0x4b67da,_0xbb5694))[_0x6dd3('0xae')](handleError(_0x4b67da,null));};exports['addTags']=function(_0x2c8de6,_0x9efe9c,_0x42447e){return db[_0x6dd3('0x35')][_0x6dd3('0x6f')]({'where':{'id':_0x2c8de6['params']['id']}})[_0x6dd3('0x2b')](handleEntityNotFound(_0x9efe9c,null))[_0x6dd3('0x2b')](function(_0x2b4b82){if(_0x2b4b82){return _0x2b4b82[_0x6dd3('0xbd')](_0x2c8de6[_0x6dd3('0xb2')]['ids'],_[_0x6dd3('0xb7')](_0x2c8de6['body'],[_0x6dd3('0xb6'),'id'])||{})[_0x6dd3('0xbe')](function(){return db[_0x6dd3('0x66')][_0x6dd3('0xbf')]({'attributes':['id','name',_0x6dd3('0xc0')],'where':{'id':_0x2c8de6[_0x6dd3('0xb2')][_0x6dd3('0xb6')]}});})['then'](function(_0x4cc568){socket['emit'](_0x6dd3('0xc1'),{'id':Number(_0x2c8de6[_0x6dd3('0xaf')]['id']),'tags':_0x4cc568||[]});return{'id':Number(_0x2c8de6[_0x6dd3('0xaf')]['id']),'tags':_0x4cc568||[]};});}})[_0x6dd3('0x2b')](respondWithResult(_0x9efe9c,null))['catch'](handleError(_0x9efe9c,null));};exports[_0x6dd3('0xc2')]=function(_0x4f3690,_0x45be32,_0x97bdbf){return db[_0x6dd3('0x35')][_0x6dd3('0x6f')]({'where':{'id':_0x4f3690[_0x6dd3('0xaf')]['id']}})[_0x6dd3('0x2b')](handleEntityNotFound(_0x45be32,null))[_0x6dd3('0x2b')](function(_0x48700a){if(_0x48700a){return _0x48700a['removeTags'](_0x4f3690[_0x6dd3('0x3a')]['ids']);}})[_0x6dd3('0x2b')](respondWithStatusCode(_0x45be32,null))[_0x6dd3('0xae')](handleError(_0x45be32,null));};exports['download']=function(_0x8bf979,_0x4423ca){var _0x3762d9=moment()[_0x6dd3('0xc3')]()['toString']();var _0x1edc69=path[_0x6dd3('0xc4')](config[_0x6dd3('0xc5')],_0x6dd3('0xc6'),_0x6dd3('0xc7'),_0x6dd3('0xc8'));var _0x5f54b1=path[_0x6dd3('0xc4')](config[_0x6dd3('0xc5')],_0x6dd3('0xc6'),_0x6dd3('0xc7'),_0x6dd3('0xc9'));var _0x8f0ea4=path[_0x6dd3('0xc4')](_0x1edc69,_0x3762d9);var _0x166062=util[_0x6dd3('0xca')](_0x6dd3('0xcb'),_0x8bf979['params']['id'],_0x3762d9);var _0x26ce3c=path[_0x6dd3('0xc4')](_0x1edc69,_0x166062);var _0x277fe5=[];_0x277fe5[_0x6dd3('0xab')]({'model':db['User'],'as':_0x6dd3('0x6b'),'attributes':['id',_0x6dd3('0x31')],'raw':!![]});_0x277fe5[_0x6dd3('0xab')]({'model':db[_0x6dd3('0xcc')],'as':_0x6dd3('0x5e'),'attributes':['id',_0x6dd3('0xcd'),'lastName'],'raw':!![]});if(_0x8bf979['query'][_0x6dd3('0xc9')]){_0x277fe5[_0x6dd3('0xab')]({'model':db['Attachment'],'as':'Attachment','raw':!![]});}var _0x3ca423=[{'model':db[_0x6dd3('0xb5')],'as':'Messages','attributes':['id',_0x6dd3('0xb2'),'createdAt','direction',_0x6dd3('0xce'),_0x6dd3('0x7c')],'include':_0x277fe5}];_0x3ca423[_0x6dd3('0xab')]({'model':db[_0x6dd3('0xcf')],'as':_0x6dd3('0xd0'),'attributes':['id','name']});_0x3ca423[_0x6dd3('0xab')]({'model':db[_0x6dd3('0x6b')],'as':'Owner','attributes':['id','fullname']});return db[_0x6dd3('0x35')][_0x6dd3('0x6f')]({'where':{'id':_0x8bf979['params']['id']},'include':_0x3ca423})[_0x6dd3('0x2b')](handleEntityNotFound(_0x4423ca,null))[_0x6dd3('0x2b')](function(_0x56fb23){if(_0x56fb23){var _0x2fa1bd=_0x56fb23[_0x6dd3('0xd1')]({'plain':!![]});fs[_0x6dd3('0xd2')](_0x8f0ea4);var _0x1f5a9d={'channel':_0x6dd3('0xd3'),'account':_0x2fa1bd[_0x6dd3('0xd0')][_0x6dd3('0x2e')],'agent':_0x2fa1bd[_0x6dd3('0xd4')]?_0x2fa1bd[_0x6dd3('0xd4')][_0x6dd3('0x31')]:_0x6dd3('0xd5'),'createdAt':moment(_0x2fa1bd['createdAt'])[_0x6dd3('0xca')]('YYYY-MM-DD\x20HH:mm:ss')['toString'](),'closedAt':_0x2fa1bd[_0x6dd3('0xd6')]?moment(_0x2fa1bd[_0x6dd3('0xd7')])[_0x6dd3('0xca')](_0x6dd3('0xd8'))[_0x6dd3('0xa8')]():'','disposition':_0x2fa1bd[_0x6dd3('0xd9')],'visibility':_0x2fa1bd[_0x6dd3('0xda')]?_0x6dd3('0xdb'):_0x6dd3('0xdc'),'messages':_(_0x2fa1bd[_0x6dd3('0xdd')])[_0x6dd3('0x7f')]({'secret':![]})[_0x6dd3('0x30')](function(_0x23063d){if(_0x23063d[_0x6dd3('0xde')]){var _0x3e78ed=path[_0x6dd3('0xc4')](_0x5f54b1,_0x23063d['Attachment'][_0x6dd3('0xdf')]);if(fs[_0x6dd3('0xe0')](_0x3e78ed)){fs['createReadStream'](_0x3e78ed)[_0x6dd3('0xe1')](fs['createWriteStream'](path[_0x6dd3('0xc4')](_0x8f0ea4,_0x23063d[_0x6dd3('0xde')][_0x6dd3('0xdf')])));}}return{'date':moment(_0x23063d[_0x6dd3('0x76')])[_0x6dd3('0xca')]('YYYY-MM-DD\x20HH:mm:ss')[_0x6dd3('0xa8')](),'sender':_0x23063d[_0x6dd3('0xe2')]===_0x6dd3('0xe3')?_0x23063d['User']?_0x23063d['User'][_0x6dd3('0x31')]:'System':_0x23063d[_0x6dd3('0x5e')][_0x6dd3('0xcd')]+(_0x23063d[_0x6dd3('0x5e')][_0x6dd3('0xe4')]?'\x20'+_0x23063d['Contact']['lastName']:''),'body':_0x23063d[_0x6dd3('0xde')]?_0x23063d['Attachment'][_0x6dd3('0xdf')]:_0x23063d[_0x6dd3('0xb2')],'direction':_0x23063d[_0x6dd3('0xe2')]==='out'?'A':'C','secret':_0x23063d['secret'],'read':_0x23063d[_0x6dd3('0x7c')],'attachment':_0x23063d[_0x6dd3('0xde')]};})[_0x6dd3('0x5a')]()};return ejs[_0x6dd3('0xe5')](path[_0x6dd3('0xc4')](config['root'],'server',_0x6dd3('0xe6'),_0x6dd3('0xe7')),{'interaction':_0x1f5a9d})['then'](function(_0x5b5d63){var _0x27c74a=path['join'](_0x8f0ea4,'transcript-'+_0x2fa1bd['id']+'-'+_0x3762d9+_0x6dd3('0xe8'));var _0xf4342a={'path':_0x27c74a,'channel':'Openchannel','interactionId':_0x2fa1bd['id']};return pdf[_0x6dd3('0xe9')](_0x5b5d63,_0xf4342a);})[_0x6dd3('0x2b')](function(){return new BPromise(function(_0xec98c1,_0x61b51b){zipdir(_0x8f0ea4,{'saveTo':_0x26ce3c},function(_0x2caf26,_0x5958f5){if(_0x2caf26)return _0x61b51b(_0x2caf26);return _0xec98c1(_0x5958f5);});})[_0x6dd3('0x2b')](function(){return new BPromise(function(_0x5eadf2,_0x2c7502){rimraf(_0x8f0ea4,function(_0x457042){if(_0x457042)_0x2c7502(_0x457042);return _0x5eadf2();});});})[_0x6dd3('0x2b')](function(){return _0x4423ca[_0x6dd3('0xea')](_0x26ce3c,_0x166062,function(_0x42389f){if(_0x42389f){console['log'](_0x6dd3('0xeb'),_0x42389f);}else{fs[_0x6dd3('0xec')](_0x26ce3c);}});});});}else{return _0x4423ca[_0x6dd3('0x1d')](0xc8);}})['catch'](handleError(_0x4423ca,null));};