9d28995c29331e70cf08d3e9aa23528644012c78
[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 _0x87b1=['buildExpression','start','map','forEach','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','text','body','some','isEmpty','OpenchannelAccountId','concat','createdAt','parse','$gte','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','filter','replace','isNumeric','i.id\x20LIKE\x20?','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','Sequelize','QueryTypes','SELECT','clone','i.id','DESC','t.id\x20IN\x20?','resolve','i.OpenchannelAccountId\x20IS\x20NOT\x20NULL','role','agent','getOpenchannelAccounts','i.OpenchannelAccountId\x20IS\x20NULL','i.OpenchannelAccountId\x20IN\x20?','user','sequelize','keyBy','merge','fields','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','a.mandatoryDisposition','Account.mandatoryDisposition','contactName','i.*','c.lastName','Contact.lastName','Contact.phone','c.mobile','c.fax','Contact.fax','o.fullname','Owner.fullname','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','toString','ui.OpenchannelInteractionId\x20IN\x20?','groupBy','OpenchannelInteractionId','all','rows','catch','params','OpenchannelInteraction','rawAttributes','includeAll','include','options','describe','addMessage','OpenchannelMessage','ids','omit','getMessages','pick','format','YYYY-MM-DD\x20HH:mm:ss','findAll','addTags','setTags','Tag','emit','openchannelInteractionTags:save','removeTags','download','unix','join','root','server','files','attachments','transcript-%d-%s.zip','push','CmContact','Contact','firstName','lastName','Attachment','Messages','secret','OpenchannelAccount','Account','Owner','get','mkdirSync','Openchannel','N.A.','disposition','threadId','Public','Private','basename','existsSync','createReadStream','pipe','createWriteStream','direction','out','renderFile','views','downloadInteraction.ejs','.pdf','createPdfFromHTML','log','err','eml-format','zip-dir','request-promise','moment','mustache','util','path','to-csv','ejs','fs-extra','squel','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','defaults','redis','localhost','./openchannelInteraction.socket','register','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','apply','save','update','then','destroy','error','stack','name','send','Users','fullname','TagIds','Tags','split','talking','answered','UserId','closed','fieldName','type','key','model','query','keys','filters','intersection','attributes','hasOwnProperty','nolimit','order','sort','where','select','field','color','from','u.fullname','user_has_openchannel_interactions','left_join','users','u.id\x20=\x20ui.UserId','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','openchannel_accounts','a.id\x20=\x20i.OpenchannelAccountId','me.OpenchannelInteractionId\x20=\x20i.id','it.OpenchannelInteractionId\x20=\x20i.id','tools_tags','t.id\x20=\x20it.TagId','expr','search','parseSearch','conditions','length','unreadMessages','having','`\x20=\x200','`\x20>\x200','operator','$substring','value','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'];(function(_0x413feb,_0x10477f){var _0x40ee88=function(_0x32a3f6){while(--_0x32a3f6){_0x413feb['push'](_0x413feb['shift']());}};_0x40ee88(++_0x10477f);}(_0x87b1,0x84));var _0x187b=function(_0x39e05a,_0x13aac6){_0x39e05a=_0x39e05a-0x0;var _0x51a836=_0x87b1[_0x39e05a];return _0x51a836;};'use strict';var emlformat=require(_0x187b('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x187b('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x187b('0x2'));var moment=require(_0x187b('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x187b('0x4'));var util=require(_0x187b('0x5'));var path=require(_0x187b('0x6'));var sox=require('sox');var csv=require(_0x187b('0x7'));var ejs=require(_0x187b('0x8'));var fs=require('fs');var fs_extra=require(_0x187b('0x9'));var _=require('lodash');var squel=require(_0x187b('0xa'));var crypto=require('crypto');var jsforce=require(_0x187b('0xb'));var deskjs=require(_0x187b('0xc'));var toCsv=require(_0x187b('0x7'));var querystring=require(_0x187b('0xd'));var Papa=require(_0x187b('0xe'));var Redis=require('ioredis');var authService=require(_0x187b('0xf'));var qs=require(_0x187b('0x10'));var as=require(_0x187b('0x11'));var pdf=require(_0x187b('0x12'));var hardwareService=require(_0x187b('0x13'));var logger=require(_0x187b('0x14'))(_0x187b('0x15'));var utils=require(_0x187b('0x16'));var config=require(_0x187b('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x187b('0x18'))['db'];config['redis']=_[_0x187b('0x19')](config[_0x187b('0x1a')],{'host':_0x187b('0x1b'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x187b('0x1a')]));require(_0x187b('0x1c'))[_0x187b('0x1d')](socket);function respondWithStatusCode(_0x5cb4a2,_0x3f2c01){_0x3f2c01=_0x3f2c01||0xcc;return function(_0x465394){if(_0x465394){return _0x5cb4a2[_0x187b('0x1e')](_0x3f2c01);}return _0x5cb4a2[_0x187b('0x1f')](_0x3f2c01)[_0x187b('0x20')]();};}function respondWithResult(_0x43ba91,_0x4ea66b){_0x4ea66b=_0x4ea66b||0xc8;return function(_0x19f055){if(_0x19f055){return _0x43ba91[_0x187b('0x1f')](_0x4ea66b)['json'](_0x19f055);}};}function respondWithFilteredResult(_0x413e1a,_0x1fff1b){return function(_0x366be0){if(_0x366be0){var _0x3a2bfe=typeof _0x1fff1b[_0x187b('0x21')]===_0x187b('0x22')&&typeof _0x1fff1b[_0x187b('0x23')]===_0x187b('0x22');var _0x16c8c7=_0x366be0[_0x187b('0x24')];var _0x1ccec2=_0x3a2bfe?0x0:_0x1fff1b[_0x187b('0x21')];var _0x56a6a3=_0x3a2bfe?_0x366be0[_0x187b('0x24')]:_0x1fff1b[_0x187b('0x21')]+_0x1fff1b[_0x187b('0x23')];var _0x2c2c5b;if(_0x56a6a3>=_0x16c8c7){_0x56a6a3=_0x16c8c7;_0x2c2c5b=0xc8;}else{_0x2c2c5b=0xce;}_0x413e1a[_0x187b('0x1f')](_0x2c2c5b);return _0x413e1a[_0x187b('0x25')](_0x187b('0x26'),_0x1ccec2+'-'+_0x56a6a3+'/'+_0x16c8c7)['json'](_0x366be0);}return null;};}function patchUpdates(_0x23dcf1){return function(_0x2d7377){try{jsonpatch[_0x187b('0x27')](_0x2d7377,_0x23dcf1,!![]);}catch(_0x432ff2){return BPromise['reject'](_0x432ff2);}return _0x2d7377[_0x187b('0x28')]();};}function saveUpdates(_0x4b3386,_0x5972fb){return function(_0x40af4d){if(_0x40af4d){return _0x40af4d[_0x187b('0x29')](_0x4b3386)[_0x187b('0x2a')](function(_0x119514){return _0x119514;});}return null;};}function removeEntity(_0x4f0979,_0x1a0c87){return function(_0x1a59b1){if(_0x1a59b1){return _0x1a59b1[_0x187b('0x2b')]()[_0x187b('0x2a')](function(){_0x4f0979['status'](0xcc)[_0x187b('0x20')]();});}};}function handleEntityNotFound(_0x304e7d,_0x383784){return function(_0x2b1d61){if(!_0x2b1d61){_0x304e7d[_0x187b('0x1e')](0x194);}return _0x2b1d61;};}function handleError(_0x2036dd,_0x3629ef){_0x3629ef=_0x3629ef||0x1f4;return function(_0x44ca97){logger[_0x187b('0x2c')](_0x44ca97[_0x187b('0x2d')]);if(_0x44ca97[_0x187b('0x2e')]){delete _0x44ca97[_0x187b('0x2e')];}_0x2036dd[_0x187b('0x1f')](_0x3629ef)[_0x187b('0x2f')](_0x44ca97);};}function getInteractionUsers(_0x3be79b,_0x72de9a){return new BPromise(function(_0x7d4987,_0x825362){try{if(_0x72de9a[_0x3be79b['id']]){_0x3be79b[_0x187b('0x30')]=_['map'](_0x72de9a[_0x3be79b['id']],function(_0x4ee7a6){return{'id':_0x4ee7a6['id'],'fullname':_0x4ee7a6[_0x187b('0x31')]};});}}catch(_0x4dd90f){_0x825362(_0x4dd90f);}_0x7d4987(_0x3be79b);});}function getInteractionTags(_0x27a78a,_0x42c55f){return new BPromise(function(_0x521469,_0x1d2459){try{if(_0x27a78a[_0x187b('0x32')]){_0x27a78a[_0x187b('0x33')]=[];_0x27a78a[_0x187b('0x32')][_0x187b('0x34')](',')['forEach'](function(_0x15df46){_0x27a78a[_0x187b('0x33')]['push'](_0x42c55f[_0x15df46]);});}delete _0x27a78a[_0x187b('0x32')];}catch(_0x183a3b){_0x1d2459(_0x183a3b);}_0x521469(_0x27a78a);});}function updateOpenchannelInteraction(_0x4533b7,_0x2795e3,_0x26e0d5){return new BPromise(function(_0x462490,_0x1183b4){return getInteractionUsers(_0x4533b7,_0x26e0d5)[_0x187b('0x2a')](function(_0xcf7133){return getInteractionTags(_0xcf7133,_0x2795e3);})[_0x187b('0x2a')](function(_0x3e424c){return getStateInteraction(_0x3e424c);})[_0x187b('0x2a')](function(_0x3bb2a6){_0x462490(_0x3bb2a6);})['catch'](function(_0x21acf1){_0x1183b4(_0x21acf1);});});}function getStateInteraction(_0x525c55){return new BPromise(function(_0x255eb2){_0x525c55['waiting']=0x0;_0x525c55[_0x187b('0x35')]=0x0;_0x525c55[_0x187b('0x36')]=0x0;_0x525c55['unmanaged']=0x0;_0x525c55['total']=0x0;if(!_0x525c55['closed']&&!_0x525c55[_0x187b('0x37')]){_0x525c55['waiting']+=0x1;}if(!_0x525c55[_0x187b('0x38')]&&_0x525c55['UserId']){_0x525c55[_0x187b('0x35')]+=0x1;if(_0x525c55['waiting']){_0x525c55['waiting']-=0x1;}}if(_0x525c55[_0x187b('0x38')]&&_0x525c55[_0x187b('0x37')]){_0x525c55[_0x187b('0x36')]+=0x1;if(_0x525c55[_0x187b('0x35')]){_0x525c55[_0x187b('0x35')]-=0x1;}}if(_0x525c55[_0x187b('0x38')]&&!_0x525c55['UserId']){_0x525c55['unmanaged']+=0x1;if(_0x525c55['waiting']){_0x525c55['waiting']-=0x1;}}_0x525c55['total']+=0x1;_0x255eb2(_0x525c55);});}exports['index']=function(_0x5a5685,_0x3dd638){var _0x1a6787={},_0x191b86={},_0x17f545={'count':0x0,'rows':[]};var _0x2c105a=_['map'](db['OpenchannelInteraction']['rawAttributes'],function(_0x177b0c){return{'name':_0x177b0c[_0x187b('0x39')],'type':_0x177b0c[_0x187b('0x3a')][_0x187b('0x3b')]};});_0x191b86[_0x187b('0x3c')]=_['map'](_0x2c105a,_0x187b('0x2e'));_0x191b86[_0x187b('0x3d')]=_[_0x187b('0x3e')](_0x5a5685['query']);_0x191b86[_0x187b('0x3f')]=_[_0x187b('0x40')](_0x191b86[_0x187b('0x3c')],_0x191b86['query']);_0x1a6787[_0x187b('0x41')]=_[_0x187b('0x40')](_0x191b86['model'],qs['fields'](_0x5a5685[_0x187b('0x3d')]['fields']));_0x1a6787[_0x187b('0x41')]=_0x1a6787[_0x187b('0x41')]['length']?_0x1a6787[_0x187b('0x41')]:_0x191b86[_0x187b('0x3c')];if(!_0x5a5685[_0x187b('0x3d')][_0x187b('0x42')](_0x187b('0x43'))){_0x1a6787['limit']=qs['limit'](_0x5a5685['query'][_0x187b('0x23')]);_0x1a6787['offset']=qs[_0x187b('0x21')](_0x5a5685[_0x187b('0x3d')][_0x187b('0x21')]);}_0x1a6787[_0x187b('0x44')]=qs[_0x187b('0x45')](_0x5a5685[_0x187b('0x3d')][_0x187b('0x45')]);_0x1a6787[_0x187b('0x46')]=qs[_0x187b('0x3f')](_['pick'](_0x5a5685[_0x187b('0x3d')],_0x191b86[_0x187b('0x3f')]),_0x2c105a);var _0x54ccb3=[];var _0x1ac5ea=squel[_0x187b('0x47')]()[_0x187b('0x48')]('id')[_0x187b('0x48')](_0x187b('0x2e'))[_0x187b('0x48')](_0x187b('0x49'))[_0x187b('0x4a')]('tools_tags');var _0x523dbd=squel[_0x187b('0x47')]()[_0x187b('0x48')]('u.id')['field'](_0x187b('0x4b'))[_0x187b('0x48')]('ui.OpenchannelInteractionId')[_0x187b('0x4a')](_0x187b('0x4c'),'ui')[_0x187b('0x4d')](_0x187b('0x4e'),'u',_0x187b('0x4f'));var _0x3c9aa6=squel[_0x187b('0x47')]()[_0x187b('0x4a')]('openchannel_interactions','i')[_0x187b('0x4d')](_0x187b('0x50'),'c',_0x187b('0x51'))[_0x187b('0x4d')](_0x187b('0x4e'),'o',_0x187b('0x52'))[_0x187b('0x4d')](_0x187b('0x53'),'a',_0x187b('0x54'))[_0x187b('0x4d')]('openchannel_messages','me',_0x187b('0x55'))['left_join']('openchannel_interaction_has_tags','it',_0x187b('0x56'))[_0x187b('0x4d')](_0x187b('0x57'),'t',_0x187b('0x58'));var _0x539f75=squel['expr']();var _0x2442be=[];var _0x17a38d=squel[_0x187b('0x59')]();var _0x2b1a18;if(_0x5a5685[_0x187b('0x3d')][_0x187b('0x5a')]){_0x2b1a18=as[_0x187b('0x5b')](_0x5a5685[_0x187b('0x3d')][_0x187b('0x5a')]);var _0x3a8bb7=_0x2b1a18['sqlOperator'];for(var _0x4e22a4=0x0;_0x4e22a4<_0x2b1a18[_0x187b('0x5c')][_0x187b('0x5d')];_0x4e22a4++){var _0x7a99fd=_0x2b1a18[_0x187b('0x5c')][_0x4e22a4];var _0x2968f8='i';var _0x48fe16=_['find'](_0x2c105a,[_0x187b('0x2e'),_0x7a99fd[_0x187b('0x48')]]);if(!_0x48fe16){switch(_0x7a99fd[_0x187b('0x48')]){case _0x187b('0x5e'):if(_0x7a99fd['value']==0x1){_0x3c9aa6[_0x187b('0x5f')]('`'+_0x7a99fd[_0x187b('0x48')]+_0x187b('0x60'));}else{_0x3c9aa6[_0x187b('0x5f')]('`'+_0x7a99fd[_0x187b('0x48')]+_0x187b('0x61'));}break;case'Contact':if(_0x7a99fd[_0x187b('0x62')]===_0x187b('0x63')){if(_0x7a99fd[_0x187b('0x64')][_0x187b('0x34')]('\x20')['length']>0x1){_0x539f75[_0x3a8bb7](_0x187b('0x65'),qs[_0x187b('0x66')](_0x7a99fd[_0x187b('0x64')]),null);}else{var _0x1514d5='%'+_0x7a99fd[_0x187b('0x64')]+'%';_0x539f75[_0x3a8bb7](_0x187b('0x67'),_0x1514d5,_0x1514d5,_0x1514d5);}}else{_0x48fe16=_[_0x187b('0x68')](_0x2c105a,[_0x187b('0x2e'),_0x187b('0x69')]);_0x7a99fd[_0x187b('0x48')]='ContactId';_0x4a29e6=as[_0x187b('0x6a')](_0x2968f8,_0x48fe16[_0x187b('0x3a')],_0x7a99fd);_0x539f75[_0x3a8bb7](_0x4a29e6['text'],_0x4a29e6[_0x187b('0x64')][_0x187b('0x6b')],_0x4a29e6['value']['end']);}break;case'Tag':var _0x404cd0=_0x7a99fd[_0x187b('0x64')][_0x187b('0x34')](',')[_0x187b('0x6c')](function(_0x4f3ab7){return Number(_0x4f3ab7);});_0x404cd0[_0x187b('0x6d')](function(_0x57292e){_0x17a38d['or'](_0x187b('0x6e'),'%,'+_0x57292e+',%');});_0x2442be=_[_0x187b('0x6f')](_0x2442be,_0x404cd0);break;case _0x187b('0x70'):if(_0x7a99fd['operator']===_0x187b('0x63')){_0x539f75[_0x3a8bb7](_0x187b('0x71'),'%'+_0x7a99fd['value']+'%',null);}else{_0x48fe16=_[_0x187b('0x68')](_0x2c105a,[_0x187b('0x2e'),_0x187b('0x37')]);_0x7a99fd['field']=_0x187b('0x37');_0x4a29e6=as['buildExpression'](_0x2968f8,_0x48fe16[_0x187b('0x3a')],_0x7a99fd);_0x539f75[_0x3a8bb7](_0x4a29e6[_0x187b('0x72')],_0x4a29e6['value'][_0x187b('0x6b')],_0x4a29e6[_0x187b('0x64')][_0x187b('0x20')]);}break;case _0x187b('0x73'):_0x4a29e6=as['buildExpression']('me',null,_0x7a99fd);_0x539f75[_0x3a8bb7](_0x4a29e6[_0x187b('0x72')],_0x4a29e6['value']['start'],_0x4a29e6['value'][_0x187b('0x20')]);break;}}else{var _0x4a29e6=as['buildExpression'](_0x2968f8,_0x48fe16['type'],_0x7a99fd);_0x539f75[_0x3a8bb7](_0x4a29e6[_0x187b('0x72')],_0x4a29e6[_0x187b('0x64')][_0x187b('0x6b')],_0x4a29e6[_0x187b('0x64')][_0x187b('0x20')]);}}}else{var _0x23205e=_(_0x5a5685[_0x187b('0x3d')])[_0x187b('0x3e')]()[_0x187b('0x6c')](function(_0x2e55e0){return _[_0x187b('0x74')](_0x2c105a,[_0x187b('0x2e'),_0x2e55e0])?_0x2e55e0:undefined;})['compact']()[_0x187b('0x64')]();if(!_[_0x187b('0x75')](_0x23205e)){_0x23205e[_0x187b('0x6d')](function(_0x2351a0){if(_0x2351a0===_0x187b('0x76')){_0x3c9aa6[_0x187b('0x46')]('i.OpenchannelAccountId\x20IN\x20?',[][_0x187b('0x77')](_0x5a5685[_0x187b('0x3d')][_0x2351a0]));}else if(_0x2351a0===_0x187b('0x78')){var _0x41b681=JSON[_0x187b('0x79')](_0x5a5685[_0x187b('0x3d')][_0x2351a0])[_0x187b('0x7a')];var _0x4e3462=JSON['parse'](_0x5a5685[_0x187b('0x3d')][_0x2351a0])['$lte'];_0x3c9aa6[_0x187b('0x46')]('i.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x41b681,_0x4e3462);}else{if(_0x5a5685[_0x187b('0x3d')][_0x2351a0]==='null'){_0x3c9aa6['where']('i.'+_0x2351a0+'\x20IS\x20NULL');}else{_0x3c9aa6[_0x187b('0x46')]('i.'+_0x2351a0+'\x20=\x20?',_0x5a5685[_0x187b('0x3d')][_0x2351a0]);}}});}if(_0x5a5685[_0x187b('0x3d')][_0x187b('0x7b')]){if(_0x5a5685['query'][_0x187b('0x7b')]==0x1){_0x3c9aa6[_0x187b('0x5f')](_0x187b('0x7c'));}else{_0x3c9aa6[_0x187b('0x5f')](_0x187b('0x7d'));}}if(_0x5a5685[_0x187b('0x3d')][_0x187b('0x7e')]){_0x2442be=_[_0x187b('0x7f')](_0x5a5685[_0x187b('0x3d')]['tag'])?_0x5a5685[_0x187b('0x3d')][_0x187b('0x7e')]:new Array(_0x5a5685[_0x187b('0x3d')][_0x187b('0x7e')]);_0x2442be[_0x187b('0x6d')](function(_0x461202){_0x17a38d['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x461202+',%');});}if(_0x5a5685[_0x187b('0x3d')]['filter']){var _0x11cedb=_0x5a5685[_0x187b('0x3d')][_0x187b('0x80')][_0x187b('0x81')]('\x5c','\x5c\x5c')[_0x187b('0x81')](/'/g,'\x27\x27');if(qs[_0x187b('0x82')](_0x11cedb)){_0x539f75['or'](_0x187b('0x83'),_0x11cedb+'%');}else{_0x539f75['or']('MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x187b('0x66')](_0x11cedb))['or']('i.from\x20LIKE\x20?',_0x11cedb+'%')['or'](_0x187b('0x84'),_0x11cedb+'%');}}}_0x3c9aa6[_0x187b('0x46')](_0x539f75);_0x3c9aa6[_0x187b('0x85')]('i.id');var _0x2ee8b3={'type':db[_0x187b('0x86')][_0x187b('0x87')][_0x187b('0x88')],'raw':!![]};var _0x2c0cf8=_0x3c9aa6[_0x187b('0x89')]();_0x2c0cf8['field'](_0x187b('0x8a'));_0x2c0cf8[_0x187b('0x48')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0x187b('0x5e'));if(_0x1a6787[_0x187b('0x44')]){_0x1a6787[_0x187b('0x44')][_0x187b('0x6d')](function(_0x448927){var _0x35c9ac=_0x448927[0x0]==='contactName'?_0x448927[0x0]:'i.'+_0x448927[0x0];_0x3c9aa6['order'](_0x35c9ac,_0x448927[0x1]===_0x187b('0x8b')?![]:!![]);});}if(!_['isEmpty'](_0x2442be)){_0x3c9aa6['having'](_0x17a38d);_0x2c0cf8[_0x187b('0x46')](_0x187b('0x8c'),_0x2442be);}BPromise[_0x187b('0x8d')]()[_0x187b('0x2a')](function(){if(!_0x2b1a18){if(_0x5a5685[_0x187b('0x3d')][_0x187b('0x76')])return;_0x2c0cf8['where'](_0x187b('0x8e'));_0x3c9aa6[_0x187b('0x46')](_0x187b('0x8e'));return;}if(_0x5a5685['user'][_0x187b('0x8f')]!==_0x187b('0x90'))return;return _0x5a5685['user'][_0x187b('0x91')]({'attributes':['id'],'raw':!![]})[_0x187b('0x2a')](function(_0x1cf5c2){if(_['isEmpty'](_0x1cf5c2)){_0x2c0cf8[_0x187b('0x46')](_0x187b('0x92'));_0x3c9aa6[_0x187b('0x46')](_0x187b('0x92'));}else{_0x2c0cf8[_0x187b('0x46')](_0x187b('0x93'),_['map'](_0x1cf5c2,'id'));_0x3c9aa6[_0x187b('0x46')]('i.OpenchannelAccountId\x20IN\x20?',_[_0x187b('0x6c')](_0x1cf5c2,'id'));}});})[_0x187b('0x2a')](function(){if(_0x5a5685[_0x187b('0x94')][_0x187b('0x8f')]===_0x187b('0x90')&&!_0x2b1a18&&!_0x5a5685[_0x187b('0x3d')]['OpenchannelAccountId'])return[];return db[_0x187b('0x95')][_0x187b('0x3d')](_0x2c0cf8['toString'](),_0x2ee8b3);})[_0x187b('0x2a')](function(_0x4426db){_0x17f545['count']=_0x4426db[_0x187b('0x5d')];if(_0x17f545[_0x187b('0x24')]===0x0)return[];return db[_0x187b('0x95')][_0x187b('0x3d')](_0x1ac5ea['toString'](),_0x2ee8b3)[_0x187b('0x2a')](function(_0x59e582){_0x54ccb3=_[_0x187b('0x96')](_0x59e582,'id');_0x2ee8b3=_[_0x187b('0x97')](_0x2ee8b3,{'model':db['OpenchannelInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x5a5685[_0x187b('0x3d')][_0x187b('0x98')]){_0x1a6787[_0x187b('0x41')]['forEach'](function(_0x3b5dc8){_0x3c9aa6[_0x187b('0x48')]('i.'+_0x3b5dc8);});}else{_0x3c9aa6[_0x187b('0x48')](_0x187b('0x99'),_0x187b('0x5e'));_0x3c9aa6[_0x187b('0x48')]('a.key','Account.key');_0x3c9aa6[_0x187b('0x48')](_0x187b('0x9a'),_0x187b('0x9b'));_0x3c9aa6[_0x187b('0x48')]('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',_0x187b('0x9c'));_0x3c9aa6[_0x187b('0x48')](_0x187b('0x9d'));_0x3c9aa6['field']('c.firstName','Contact.firstName');_0x3c9aa6[_0x187b('0x48')](_0x187b('0x9e'),_0x187b('0x9f'));_0x3c9aa6[_0x187b('0x48')]('c.email','Contact.email');_0x3c9aa6[_0x187b('0x48')]('c.phone',_0x187b('0xa0'));_0x3c9aa6[_0x187b('0x48')](_0x187b('0xa1'),'Contact.mobile');_0x3c9aa6['field'](_0x187b('0xa2'),_0x187b('0xa3'));_0x3c9aa6['field'](_0x187b('0xa4'),_0x187b('0xa5'));_0x3c9aa6[_0x187b('0x48')]('o.internal',_0x187b('0xa6'));_0x3c9aa6['field'](_0x187b('0xa7'),_0x187b('0x32'));}if(_0x1a6787[_0x187b('0x23')])_0x3c9aa6[_0x187b('0x23')](_0x1a6787['limit']);if(_0x1a6787[_0x187b('0x21')])_0x3c9aa6[_0x187b('0x21')](_0x1a6787[_0x187b('0x21')]);return db[_0x187b('0x95')][_0x187b('0x3d')](_0x3c9aa6[_0x187b('0xa8')](),_0x2ee8b3);})[_0x187b('0x2a')](function(_0x1cca6e){if(_0x1cca6e[_0x187b('0x5d')]>0x0)_0x523dbd['where'](_0x187b('0xa9'),_[_0x187b('0x6c')](_0x1cca6e,'id'));return db[_0x187b('0x95')][_0x187b('0x3d')](_0x523dbd[_0x187b('0xa8')](),_0x2ee8b3)[_0x187b('0x2a')](function(_0x1a295e){var _0x352f08=_[_0x187b('0xaa')](_0x1a295e,_0x187b('0xab'));var _0x14e206=[];_0x1cca6e[_0x187b('0x6d')](function(_0x589754){_0x14e206['push'](updateOpenchannelInteraction(_0x589754,_0x54ccb3,_0x352f08));});return BPromise[_0x187b('0xac')](_0x14e206);});});})[_0x187b('0x2a')](function(_0x5854b9){_0x17f545[_0x187b('0xad')]=_0x5854b9;return _0x17f545;})['then'](respondWithFilteredResult(_0x3dd638,_0x1a6787))[_0x187b('0xae')](handleError(_0x3dd638,null));};exports['show']=function(_0x55acd5,_0x3c3c43){var _0x219c45={};if(_0x55acd5['query'][_0x187b('0x3a')]&&_0x55acd5[_0x187b('0x3d')]['type']===_0x187b('0x4a')){_0x219c45['from']=_0x55acd5[_0x187b('0xaf')]['id'];}else{_0x219c45['id']=_0x55acd5['params']['id'];}var _0x106fc2={'raw':![],'where':_0x219c45},_0x4b84e1={};_0x4b84e1[_0x187b('0x3c')]=_[_0x187b('0x3e')](db[_0x187b('0xb0')][_0x187b('0xb1')]);_0x4b84e1[_0x187b('0x3d')]=_[_0x187b('0x3e')](_0x55acd5['query']);_0x4b84e1[_0x187b('0x3f')]=_[_0x187b('0x40')](_0x4b84e1[_0x187b('0x3c')],_0x4b84e1['query']);_0x106fc2['attributes']=_['intersection'](_0x4b84e1[_0x187b('0x3c')],qs[_0x187b('0x98')](_0x55acd5[_0x187b('0x3d')][_0x187b('0x98')]));_0x106fc2['attributes']=_0x106fc2[_0x187b('0x41')][_0x187b('0x5d')]?_0x106fc2[_0x187b('0x41')]:_0x4b84e1[_0x187b('0x3c')];if(_0x55acd5[_0x187b('0x3d')][_0x187b('0xb2')]){_0x106fc2[_0x187b('0xb3')]=[{'all':!![]}];}_0x106fc2=_['merge']({},_0x106fc2,_0x55acd5[_0x187b('0xb4')]);return db[_0x187b('0xb0')][_0x187b('0x68')](_0x106fc2)[_0x187b('0x2a')](handleEntityNotFound(_0x3c3c43,null))['then'](respondWithResult(_0x3c3c43,null))['catch'](handleError(_0x3c3c43,null));};exports['create']=function(_0x447b1b,_0x443ee9){return db[_0x187b('0xb0')]['create'](_0x447b1b[_0x187b('0x73')],{})[_0x187b('0x2a')](respondWithResult(_0x443ee9,0xc9))[_0x187b('0xae')](handleError(_0x443ee9,null));};exports[_0x187b('0x29')]=function(_0x4b819f,_0xf648fd){if(_0x4b819f[_0x187b('0x73')]['id']){delete _0x4b819f[_0x187b('0x73')]['id'];}return db[_0x187b('0xb0')][_0x187b('0x68')]({'where':{'id':_0x4b819f[_0x187b('0xaf')]['id']}})['then'](handleEntityNotFound(_0xf648fd,null))[_0x187b('0x2a')](saveUpdates(_0x4b819f[_0x187b('0x73')],null))[_0x187b('0x2a')](respondWithResult(_0xf648fd,null))[_0x187b('0xae')](handleError(_0xf648fd,null));};exports['destroy']=function(_0xa71cd5,_0x4c8a7c){return db['OpenchannelInteraction'][_0x187b('0x68')]({'where':{'id':_0xa71cd5['params']['id']}})[_0x187b('0x2a')](handleEntityNotFound(_0x4c8a7c,null))[_0x187b('0x2a')](removeEntity(_0x4c8a7c,null))[_0x187b('0xae')](handleError(_0x4c8a7c,null));};exports[_0x187b('0xb5')]=function(_0x193220,_0x502432){return db['OpenchannelInteraction']['describe']()[_0x187b('0x2a')](respondWithResult(_0x502432,null))['catch'](handleError(_0x502432,null));};exports[_0x187b('0xb6')]=function(_0xbdf936,_0x16832d,_0x581f82){return db[_0x187b('0xb7')][_0x187b('0x68')]({'where':{'id':_0xbdf936[_0x187b('0xaf')]['id']}})[_0x187b('0x2a')](handleEntityNotFound(_0x16832d,null))['then'](function(_0x337ac0){if(_0x337ac0){return _0x337ac0[_0x187b('0xb6')](_0xbdf936['body'][_0x187b('0xb8')],_[_0x187b('0xb9')](_0xbdf936[_0x187b('0x73')],['ids','id'])||{});}})[_0x187b('0x2a')](respondWithResult(_0x16832d,null))[_0x187b('0xae')](handleError(_0x16832d,null));};exports[_0x187b('0xba')]=function(_0x13f835,_0x41857a,_0x49539c){var _0x5c2244={'raw':![],'where':{}};var _0x450c01={};var _0x518176={'count':0x0,'rows':[]};return db['OpenchannelInteraction']['findOne']({'where':{'id':_0x13f835[_0x187b('0xaf')]['id']}})[_0x187b('0x2a')](handleEntityNotFound(_0x41857a,null))['then'](function(_0x1a5c33){if(_0x1a5c33){_0x450c01['model']=_[_0x187b('0x3e')](db[_0x187b('0xb7')][_0x187b('0xb1')]);_0x450c01[_0x187b('0x3d')]=_[_0x187b('0x3e')](_0x13f835[_0x187b('0x3d')]);_0x450c01[_0x187b('0x3f')]=_[_0x187b('0x40')](_0x450c01[_0x187b('0x3c')],_0x450c01[_0x187b('0x3d')]);_0x5c2244[_0x187b('0x41')]=_['intersection'](_0x450c01['model'],qs[_0x187b('0x98')](_0x13f835['query']['fields']));_0x5c2244[_0x187b('0x41')]=_0x5c2244[_0x187b('0x41')][_0x187b('0x5d')]?_0x5c2244['attributes']:_0x450c01[_0x187b('0x3c')];if(!_0x13f835['query']['hasOwnProperty']('nolimit')){_0x5c2244[_0x187b('0x23')]=qs[_0x187b('0x23')](_0x13f835[_0x187b('0x3d')]['limit']);_0x5c2244[_0x187b('0x21')]=qs['offset'](_0x13f835[_0x187b('0x3d')][_0x187b('0x21')]);}_0x5c2244[_0x187b('0x44')]=qs['sort'](_0x13f835['query'][_0x187b('0x45')]);_0x5c2244[_0x187b('0x46')]=qs[_0x187b('0x3f')](_[_0x187b('0xbb')](_0x13f835[_0x187b('0x3d')],_0x450c01[_0x187b('0x3f')]));_0x5c2244[_0x187b('0x46')][_0x187b('0xab')]=_0x1a5c33['id'];if(_0x13f835[_0x187b('0x3d')][_0x187b('0x80')]){_0x5c2244[_0x187b('0x46')]=_[_0x187b('0x97')](_0x5c2244['where'],{'$or':_[_0x187b('0x6c')](_0x5c2244[_0x187b('0x41')],function(_0x5c20ef){var _0x3d9aa6={};_0x3d9aa6[_0x5c20ef]={'$like':'%'+_0x13f835[_0x187b('0x3d')][_0x187b('0x80')]+'%'};return _0x3d9aa6;})});}if(_0x13f835['query'][_0x187b('0x7a')]){var _0xd39c72=_0x13f835[_0x187b('0x3d')]['$gte'][_0x187b('0x34')](',');var _0x455f58={};_0x455f58[_0xd39c72[0x0]]={'$gte':moment(_0xd39c72[0x1])[_0x187b('0xbc')](_0x187b('0xbd'))};_0x5c2244[_0x187b('0x46')]=_[_0x187b('0x97')](_0x5c2244['where'],_0x455f58);}_0x5c2244=_[_0x187b('0x97')]({},_0x5c2244,_0x13f835['options']);return db[_0x187b('0xb7')][_0x187b('0x24')]({'where':_0x5c2244['where']})[_0x187b('0x2a')](function(_0x1c77d8){_0x518176[_0x187b('0x24')]=_0x1c77d8;if(_0x13f835[_0x187b('0x3d')]['includeAll']){_0x5c2244['include']=[{'all':!![]}];}return db[_0x187b('0xb7')][_0x187b('0xbe')](_0x5c2244);})[_0x187b('0x2a')](function(_0xbcb0f1){_0x518176['rows']=_0xbcb0f1;return _0x518176;});}})[_0x187b('0x2a')](respondWithFilteredResult(_0x41857a,_0x5c2244))[_0x187b('0xae')](handleError(_0x41857a,null));};exports[_0x187b('0xbf')]=function(_0x33002e,_0x8de7b3,_0x129aec){return db[_0x187b('0xb0')][_0x187b('0x68')]({'where':{'id':_0x33002e[_0x187b('0xaf')]['id']}})['then'](handleEntityNotFound(_0x8de7b3,null))['then'](function(_0x2d788e){if(_0x2d788e){return _0x2d788e[_0x187b('0xc0')](_0x33002e[_0x187b('0x73')][_0x187b('0xb8')],_['omit'](_0x33002e[_0x187b('0x73')],[_0x187b('0xb8'),'id'])||{})['spread'](function(){return db[_0x187b('0xc1')]['findAll']({'attributes':['id',_0x187b('0x2e'),'color'],'where':{'id':_0x33002e[_0x187b('0x73')]['ids']}});})[_0x187b('0x2a')](function(_0x35d1b2){socket[_0x187b('0xc2')](_0x187b('0xc3'),{'id':Number(_0x33002e[_0x187b('0xaf')]['id']),'tags':_0x35d1b2||[]});return{'id':Number(_0x33002e[_0x187b('0xaf')]['id']),'tags':_0x35d1b2||[]};});}})['then'](respondWithResult(_0x8de7b3,null))[_0x187b('0xae')](handleError(_0x8de7b3,null));};exports[_0x187b('0xc4')]=function(_0x2464e0,_0x3edfc6,_0x49489e){return db['OpenchannelInteraction']['find']({'where':{'id':_0x2464e0[_0x187b('0xaf')]['id']}})[_0x187b('0x2a')](handleEntityNotFound(_0x3edfc6,null))['then'](function(_0x37a991){if(_0x37a991){return _0x37a991['removeTags'](_0x2464e0[_0x187b('0x3d')][_0x187b('0xb8')]);}})[_0x187b('0x2a')](respondWithStatusCode(_0x3edfc6,null))[_0x187b('0xae')](handleError(_0x3edfc6,null));};exports[_0x187b('0xc5')]=function(_0x4ddfee,_0x5ece00){var _0x182951=moment()[_0x187b('0xc6')]()[_0x187b('0xa8')]();var _0xdf39c8=path[_0x187b('0xc7')](config[_0x187b('0xc8')],_0x187b('0xc9'),_0x187b('0xca'),'tmp');var _0x3ff2ea=path['join'](config[_0x187b('0xc8')],'server',_0x187b('0xca'),_0x187b('0xcb'));var _0x5d84b7=path[_0x187b('0xc7')](_0xdf39c8,_0x182951);var _0x200eee=util[_0x187b('0xbc')](_0x187b('0xcc'),_0x4ddfee['params']['id'],_0x182951);var _0x36512b=path['join'](_0xdf39c8,_0x200eee);var _0x142d17=[];_0x142d17[_0x187b('0xcd')]({'model':db[_0x187b('0x70')],'as':_0x187b('0x70'),'attributes':['id',_0x187b('0x31')],'raw':!![]});_0x142d17[_0x187b('0xcd')]({'model':db[_0x187b('0xce')],'as':_0x187b('0xcf'),'attributes':['id',_0x187b('0xd0'),_0x187b('0xd1')],'raw':!![]});if(_0x4ddfee[_0x187b('0x3d')][_0x187b('0xcb')]){_0x142d17[_0x187b('0xcd')]({'model':db['Attachment'],'as':_0x187b('0xd2'),'raw':!![]});}var _0x2eb98b=[{'model':db[_0x187b('0xb7')],'as':_0x187b('0xd3'),'attributes':['id',_0x187b('0x73'),'createdAt','direction',_0x187b('0xd4'),_0x187b('0x7b')],'include':_0x142d17}];_0x2eb98b[_0x187b('0xcd')]({'model':db[_0x187b('0xd5')],'as':_0x187b('0xd6'),'attributes':['id','name']});_0x2eb98b[_0x187b('0xcd')]({'model':db[_0x187b('0x70')],'as':_0x187b('0xd7'),'attributes':['id',_0x187b('0x31')]});return db[_0x187b('0xb0')]['find']({'where':{'id':_0x4ddfee[_0x187b('0xaf')]['id']},'include':_0x2eb98b})[_0x187b('0x2a')](handleEntityNotFound(_0x5ece00,null))[_0x187b('0x2a')](function(_0x2085b2){if(_0x2085b2){var _0x17a373=_0x2085b2[_0x187b('0xd8')]({'plain':!![]});fs[_0x187b('0xd9')](_0x5d84b7);var _0x5ccadf={'channel':_0x187b('0xda'),'account':_0x17a373[_0x187b('0xd6')]['name'],'agent':_0x17a373[_0x187b('0xd7')]?_0x17a373[_0x187b('0xd7')][_0x187b('0x31')]:_0x187b('0xdb'),'createdAt':moment(_0x17a373[_0x187b('0x78')])[_0x187b('0xbc')]('YYYY-MM-DD\x20HH:mm:ss')[_0x187b('0xa8')](),'closedAt':_0x17a373['closed']?moment(_0x17a373['closedAt'])['format'](_0x187b('0xbd'))['toString']():'','disposition':_0x17a373[_0x187b('0xdc')],'visibility':_0x17a373[_0x187b('0xdd')]?_0x187b('0xde'):_0x187b('0xdf'),'messages':_(_0x17a373[_0x187b('0xd3')])[_0x187b('0x80')]({'secret':![]})[_0x187b('0x6c')](function(_0x5bbeb4){if(_0x5bbeb4[_0x187b('0xd2')]){var _0x45fdc0=path[_0x187b('0xc7')](_0x3ff2ea,_0x5bbeb4[_0x187b('0xd2')][_0x187b('0xe0')]);if(fs[_0x187b('0xe1')](_0x45fdc0)){fs[_0x187b('0xe2')](_0x45fdc0)[_0x187b('0xe3')](fs[_0x187b('0xe4')](path[_0x187b('0xc7')](_0x5d84b7,_0x5bbeb4[_0x187b('0xd2')][_0x187b('0xe0')])));}}return{'date':moment(_0x5bbeb4['createdAt'])[_0x187b('0xbc')]('YYYY-MM-DD\x20HH:mm:ss')[_0x187b('0xa8')](),'sender':_0x5bbeb4[_0x187b('0xe5')]===_0x187b('0xe6')?_0x5bbeb4['User']?_0x5bbeb4[_0x187b('0x70')]['fullname']:'System':_0x5bbeb4[_0x187b('0xcf')][_0x187b('0xd0')]+(_0x5bbeb4[_0x187b('0xcf')][_0x187b('0xd1')]?'\x20'+_0x5bbeb4[_0x187b('0xcf')][_0x187b('0xd1')]:''),'body':_0x5bbeb4[_0x187b('0xd2')]?_0x5bbeb4[_0x187b('0xd2')][_0x187b('0xe0')]:_0x5bbeb4['body'],'direction':_0x5bbeb4[_0x187b('0xe5')]==='out'?'A':'C','secret':_0x5bbeb4['secret'],'read':_0x5bbeb4[_0x187b('0x7b')],'attachment':_0x5bbeb4[_0x187b('0xd2')]};})[_0x187b('0x64')]()};return ejs[_0x187b('0xe7')](path[_0x187b('0xc7')](config[_0x187b('0xc8')],_0x187b('0xc9'),_0x187b('0xe8'),_0x187b('0xe9')),{'interaction':_0x5ccadf})[_0x187b('0x2a')](function(_0x3ce879){var _0x5d20cd=path['join'](_0x5d84b7,'transcript-'+_0x17a373['id']+'-'+_0x182951+_0x187b('0xea'));var _0x5ab6ee={'path':_0x5d20cd,'channel':'Openchannel','interactionId':_0x17a373['id']};return pdf[_0x187b('0xeb')](_0x3ce879,_0x5ab6ee);})[_0x187b('0x2a')](function(){return new BPromise(function(_0x5cf39f,_0x246218){zipdir(_0x5d84b7,{'saveTo':_0x36512b},function(_0x3d49fe,_0x1fa9dd){if(_0x3d49fe)return _0x246218(_0x3d49fe);return _0x5cf39f(_0x1fa9dd);});})['then'](function(){return new BPromise(function(_0x2f4b71,_0x5f2f75){rimraf(_0x5d84b7,function(_0x2cdcaa){if(_0x2cdcaa)_0x5f2f75(_0x2cdcaa);return _0x2f4b71();});});})[_0x187b('0x2a')](function(){return _0x5ece00[_0x187b('0xc5')](_0x36512b,_0x200eee,function(_0x2d4c91){if(_0x2d4c91){console[_0x187b('0xec')](_0x187b('0xed'),_0x2d4c91);}else{fs['unlinkSync'](_0x36512b);}});});});}else{return _0x5ece00[_0x187b('0x1e')](0xc8);}})[_0x187b('0xae')](handleError(_0x5ece00,null));};