a76a704385cf4d212630944d45596a6b300f7e0b
[motion2.git] / server / api / chatInteraction / chatInteraction.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 _0x3e5d=['CmContact','Contact','abandon','entity\x20not\x20found','UserId','Interaction\x20already\x20assigned','closed','disposition','AbandonInteraction','file','originalname','filename','type','attachmentDownload','Unauthorized','Attachment','ChatOfflineMessageId','join','root','server/files/attachments/','offline-chat/','basename','download','mailTranscript','server/files/chat/upload/','format','transcript-%s.txt','now','pathTranscript','Messages','User','ChatWebsite','ChatWebsiteId','ContactId','agentAlias','customer','%s%d','Visitor','agentIdentifier','website_alias','agent_alias','alias','fullname','System','agent_fullname','[%s]\x20%s:\x20%s\x0a','createdAt','MM/DD/YYYY\x20HH:mm:ss','secret','appendFileSync','MailAccount','MailServerOut','Smtp','CloudProvider','SendMail','\x22%s\x22\x20<%s>','Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a','ids','omit','getMessages','filters','hasOwnProperty','nolimit','order','sort','where','pick','ChatInteractionId','filter','$gte','YYYY-MM-DD\x20HH:mm:ss','rows','includeAgent','addTags','spread','color','emit','chatInteractionTags:save','removeTags','unix','toString','server','files','tmp','attachments','push','firstName','lastName','direction','Account','Owner','get','mkdirSync','Chat','N.A.','closedAt','browserName','referer','customerIp','customerPort','tail','existsSync','createReadStream','pipe','createWriteStream','out','read','renderFile','views','downloadInteraction.ejs','transcript-','.pdf','createPdfFromHTML','unlinkSync','zip-dir','request-promise','bluebird','util','ejs','ioredis','../../components/interaction/service','../../components/parsers/qs','../../components/export/pdf','../../config/logger','api','../../config/environment','redis','defaults','localhost','socket.io-emitter','register','jayson/promise','client','http','then','ChatInteraction,\x20%s,\x20%s','request\x20sent','ChatInteraction,\x20%s,\x20%s,\x20%s','error','code','message','info','result','catch','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','update','destroy','stack','name','send','render','merge','contact','agent','interaction','account','index','map','ChatInteraction','rawAttributes','getOptions','findAll','chat','query','user','show','params','keys','intersection','model','attributes','fields','length','includeAll','include','options','find','create','body','describe','createVidaooSession','findOne','vidaooEscalation','vidaooNote','vidaooMetadata','email','POST','https://api-vidaoo.xcally.com/api/v1/meetings','vidaooApiKey','isNull','metadata','ValidationError','Error\x20in\x20conversion\x20vidaooMetadata','Sequelize','Error\x20in\x20Vidaoo\x20configuration','ChatMessage','updateAttributes'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0x3e5d,0x140));var _0xd3e5=function(_0x1c337e,_0x916bfd){_0x1c337e=_0x1c337e-0x0;var _0x2d147d=_0x3e5d[_0x1c337e];return _0x2d147d;};'use strict';var rimraf=require('rimraf');var zipdir=require(_0xd3e5('0x0'));var rp=require(_0xd3e5('0x1'));var moment=require('moment');var BPromise=require(_0xd3e5('0x2'));var Mustache=require('mustache');var util=require(_0xd3e5('0x3'));var path=require('path');var ejs=require(_0xd3e5('0x4'));var fs=require('fs');var _=require('lodash');var Redis=require(_0xd3e5('0x5'));var interaction=require(_0xd3e5('0x6'));var qs=require(_0xd3e5('0x7'));var pdf=require(_0xd3e5('0x8'));var logger=require(_0xd3e5('0x9'))(_0xd3e5('0xa'));var config=require(_0xd3e5('0xb'));var db=require('../../mysqldb')['db'];config[_0xd3e5('0xc')]=_[_0xd3e5('0xd')](config[_0xd3e5('0xc')],{'host':_0xd3e5('0xe'),'port':0x18eb});var socket=require(_0xd3e5('0xf'))(new Redis(config[_0xd3e5('0xc')]));require('./chatInteraction.socket')[_0xd3e5('0x10')](socket);var jayson=require(_0xd3e5('0x11'));var client=jayson[_0xd3e5('0x12')][_0xd3e5('0x13')]({'port':0x232b});var client9004=jayson[_0xd3e5('0x12')][_0xd3e5('0x13')]({'port':0x232c});function respondWithRpcPromise(_0x29f40d,_0x253941,_0x4fa8d5,_0x5bd4ed){return new BPromise(function(_0x426bfd,_0x53971e){var _0xf55c14=_0x5bd4ed||client;return _0xf55c14['request'](_0x29f40d,_0x4fa8d5)[_0xd3e5('0x14')](function(_0x55617f){logger['info'](_0xd3e5('0x15'),_0x253941,_0xd3e5('0x16'));logger['debug'](_0xd3e5('0x17'),_0x253941,_0xd3e5('0x16'),JSON['stringify'](_0x55617f));if(_0x55617f[_0xd3e5('0x18')]){if(_0x55617f[_0xd3e5('0x18')][_0xd3e5('0x19')]===0x1f4){logger[_0xd3e5('0x18')]('ChatInteraction,\x20%s,\x20%s',_0x253941,_0x55617f[_0xd3e5('0x18')][_0xd3e5('0x1a')]);return _0x53971e(_0x55617f[_0xd3e5('0x18')][_0xd3e5('0x1a')]);}logger[_0xd3e5('0x18')](_0xd3e5('0x15'),_0x253941,_0x55617f[_0xd3e5('0x18')][_0xd3e5('0x1a')]);return _0x426bfd(_0x55617f[_0xd3e5('0x18')][_0xd3e5('0x1a')]);}else{logger[_0xd3e5('0x1b')]('ChatInteraction,\x20%s,\x20%s',_0x253941,_0xd3e5('0x16'));_0x426bfd(_0x55617f[_0xd3e5('0x1c')][_0xd3e5('0x1a')]);}})[_0xd3e5('0x1d')](function(_0x4b6f55){logger[_0xd3e5('0x18')](_0xd3e5('0x15'),_0x253941,_0x4b6f55);_0x53971e(_0x4b6f55);});});}function respondWithStatusCode(_0x11ea5d,_0x187789){_0x187789=_0x187789||0xcc;return function(_0x40e335){if(_0x40e335){return _0x11ea5d[_0xd3e5('0x1e')](_0x187789);}return _0x11ea5d[_0xd3e5('0x1f')](_0x187789)[_0xd3e5('0x20')]();};}function respondWithResult(_0x3bcd38,_0x5dcc41){_0x5dcc41=_0x5dcc41||0xc8;return function(_0x4af9cb){if(_0x4af9cb){return _0x3bcd38['status'](_0x5dcc41)['json'](_0x4af9cb);}};}function respondWithFilteredResult(_0x4e68ac,_0x222866){return function(_0x2d620e){if(_0x2d620e){var _0x475a14=typeof _0x222866[_0xd3e5('0x21')]===_0xd3e5('0x22')&&typeof _0x222866[_0xd3e5('0x23')]===_0xd3e5('0x22');var _0x254899=_0x2d620e[_0xd3e5('0x24')];var _0x880ec0=_0x475a14?0x0:_0x222866[_0xd3e5('0x21')];var _0x35abbb=_0x475a14?_0x2d620e[_0xd3e5('0x24')]:_0x222866[_0xd3e5('0x21')]+_0x222866['limit'];var _0x2d24ee;if(_0x35abbb>=_0x254899){_0x35abbb=_0x254899;_0x2d24ee=0xc8;}else{_0x2d24ee=0xce;}_0x4e68ac[_0xd3e5('0x1f')](_0x2d24ee);return _0x4e68ac[_0xd3e5('0x25')](_0xd3e5('0x26'),_0x880ec0+'-'+_0x35abbb+'/'+_0x254899)[_0xd3e5('0x27')](_0x2d620e);}return null;};}function saveUpdates(_0x92bb33){return function(_0x3abee1){if(_0x3abee1){return _0x3abee1[_0xd3e5('0x28')](_0x92bb33)['then'](function(_0x44b971){return _0x44b971;});}return null;};}function removeEntity(_0x184ea4){return function(_0x4e6cdc){if(_0x4e6cdc){return _0x4e6cdc[_0xd3e5('0x29')]()[_0xd3e5('0x14')](function(){_0x184ea4[_0xd3e5('0x1f')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3d4130){return function(_0x151903){if(!_0x151903){_0x3d4130['sendStatus'](0x194);}return _0x151903;};}function handleError(_0x65b941,_0x481599){_0x481599=_0x481599||0x1f4;return function(_0x523aa4){logger[_0xd3e5('0x18')](_0x523aa4[_0xd3e5('0x2a')]);if(_0x523aa4[_0xd3e5('0x2b')]){delete _0x523aa4[_0xd3e5('0x2b')];}_0x65b941[_0xd3e5('0x1f')](_0x481599)[_0xd3e5('0x2c')](_0x523aa4);};}function getMustacheRender(_0x5f1eb4,_0x5bd430){return Mustache[_0xd3e5('0x2d')](_0x5f1eb4,_[_0xd3e5('0x2e')](_0x5bd430['body'],{'contact':_0x5bd430[_0xd3e5('0x2f')],'message':_0x5bd430['message'],'agent':_0x5bd430[_0xd3e5('0x30')],'interaction':_0x5bd430[_0xd3e5('0x31')],'account':_0x5bd430[_0xd3e5('0x32')]}))||'';}exports[_0xd3e5('0x33')]=function(_0x4ce89a,_0x9e5add){var _0x256558={};var _0x4aaf7e=_[_0xd3e5('0x34')](db[_0xd3e5('0x35')][_0xd3e5('0x36')],function(_0xc11982){return{'name':_0xc11982['fieldName'],'type':_0xc11982['type']['key']};});_0x256558=qs[_0xd3e5('0x37')](_0x4aaf7e,_0x4ce89a);return interaction[_0xd3e5('0x38')](_0xd3e5('0x39'),_0x4ce89a[_0xd3e5('0x3a')],_0x4ce89a[_0xd3e5('0x3b')],_0x256558,_0x4aaf7e)[_0xd3e5('0x14')](respondWithFilteredResult(_0x9e5add,_0x256558))['catch'](handleError(_0x9e5add,null));};exports[_0xd3e5('0x3c')]=function(_0xf2c45e,_0x2119ee){var _0x40540f={'raw':![],'where':{'id':_0xf2c45e[_0xd3e5('0x3d')]['id']}},_0x39ddd7={};_0x39ddd7['model']=_[_0xd3e5('0x3e')](db['ChatInteraction'][_0xd3e5('0x36')]);_0x39ddd7['query']=_[_0xd3e5('0x3e')](_0xf2c45e['query']);_0x39ddd7['filters']=_[_0xd3e5('0x3f')](_0x39ddd7[_0xd3e5('0x40')],_0x39ddd7['query']);_0x40540f[_0xd3e5('0x41')]=_[_0xd3e5('0x3f')](_0x39ddd7[_0xd3e5('0x40')],qs[_0xd3e5('0x42')](_0xf2c45e[_0xd3e5('0x3a')][_0xd3e5('0x42')]));_0x40540f[_0xd3e5('0x41')]=_0x40540f['attributes'][_0xd3e5('0x43')]?_0x40540f['attributes']:_0x39ddd7['model'];if(_0xf2c45e['query'][_0xd3e5('0x44')]){_0x40540f[_0xd3e5('0x45')]=[{'all':!![]}];}_0x40540f=_['merge']({},_0x40540f,_0xf2c45e[_0xd3e5('0x46')]);return db[_0xd3e5('0x35')][_0xd3e5('0x47')](_0x40540f)[_0xd3e5('0x14')](handleEntityNotFound(_0x2119ee,null))[_0xd3e5('0x14')](respondWithResult(_0x2119ee,null))[_0xd3e5('0x1d')](handleError(_0x2119ee,null));};exports['create']=function(_0x117484,_0x386fcd){return db[_0xd3e5('0x35')][_0xd3e5('0x48')](_0x117484[_0xd3e5('0x49')],{})[_0xd3e5('0x14')](respondWithResult(_0x386fcd,0xc9))[_0xd3e5('0x1d')](handleError(_0x386fcd,null));};exports[_0xd3e5('0x28')]=function(_0x297c75,_0x3e0d0a){if(_0x297c75['body']['id']){delete _0x297c75[_0xd3e5('0x49')]['id'];}return db[_0xd3e5('0x35')][_0xd3e5('0x47')]({'where':{'id':_0x297c75[_0xd3e5('0x3d')]['id']}})[_0xd3e5('0x14')](handleEntityNotFound(_0x3e0d0a,null))[_0xd3e5('0x14')](saveUpdates(_0x297c75[_0xd3e5('0x49')],null))[_0xd3e5('0x14')](respondWithResult(_0x3e0d0a,null))[_0xd3e5('0x1d')](handleError(_0x3e0d0a,null));};exports['destroy']=function(_0x27ad7c,_0x3eca56){return db[_0xd3e5('0x35')][_0xd3e5('0x47')]({'where':{'id':_0x27ad7c[_0xd3e5('0x3d')]['id']}})[_0xd3e5('0x14')](handleEntityNotFound(_0x3eca56,null))[_0xd3e5('0x14')](removeEntity(_0x3eca56,null))['catch'](handleError(_0x3eca56,null));};exports['describe']=function(_0x807c,_0x1f6e1c){return db['ChatInteraction'][_0xd3e5('0x4a')]()[_0xd3e5('0x14')](respondWithResult(_0x1f6e1c,null))[_0xd3e5('0x1d')](handleError(_0x1f6e1c,null));};exports[_0xd3e5('0x4b')]=function(_0x18f325,_0x13b77a){var _0x3aa726=_0x18f325['params']['id'];var _0x42ebf6;var _0x1d52f9;var _0x49e610;return db[_0xd3e5('0x35')][_0xd3e5('0x4c')]({'where':{'id':_0x3aa726}})[_0xd3e5('0x14')](function(_0x1b7bc0){_0x42ebf6=_0x1b7bc0;return db['ChatWebsite'][_0xd3e5('0x4c')]({'where':{'id':_0x1b7bc0['ChatWebsiteId']},'attributes':['id','vidaooApiKey',_0xd3e5('0x4d'),'vidaooTopic',_0xd3e5('0x4e'),_0xd3e5('0x4f')],'raw':!![]});})[_0xd3e5('0x14')](function(_0x382d65){if(_0x382d65&&_0x382d65['vidaooApiKey']&&_0x382d65[_0xd3e5('0x4d')]){_0x1d52f9=_0x382d65;var _0x4cedb4={'interaction':{'id':_0x3aa726},'agent':{'id':_0x18f325['user']['id'],'name':_0x18f325['user'][_0xd3e5('0x2b')],'fullname':_0x18f325[_0xd3e5('0x3b')]['fullname'],'email':_0x18f325[_0xd3e5('0x3b')][_0xd3e5('0x50')]},'contact':_0x18f325['body']['contact'],'account':_0x18f325[_0xd3e5('0x49')][_0xd3e5('0x32')]};var _0x551774={'rejectUnauthorized':![],'method':_0xd3e5('0x51'),'url':_0xd3e5('0x52'),'headers':{'X-APIKEY':_0x382d65[_0xd3e5('0x53')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x18f325[_0xd3e5('0x3b')][_0xd3e5('0x50')]],'buttons':null,'topic':_0x1d52f9['vidaooTopic'],'note':_[_0xd3e5('0x54')](_0x1d52f9[_0xd3e5('0x4e')])?null:getMustacheRender(_0x1d52f9[_0xd3e5('0x4e')],_0x4cedb4),'metadata':null},'redirect':'follow','json':!![]};try{if(!_['isNull'](_0x1d52f9['vidaooMetadata'])){var _0x80f76e=getMustacheRender(_0x1d52f9[_0xd3e5('0x4f')],_0x4cedb4);var _0x5673f9=JSON['parse'](_0x80f76e);_0x551774[_0xd3e5('0x49')][_0xd3e5('0x55')]=_0x5673f9;}}catch(_0x71aab1){throw new db['Sequelize'][(_0xd3e5('0x56'))](_0xd3e5('0x57'));}return rp(_0x551774);}else{throw new db[(_0xd3e5('0x58'))][(_0xd3e5('0x56'))](_0xd3e5('0x59'));}})[_0xd3e5('0x14')](function(_0x4a034f){_0x49e610=_0x4a034f;if(_0x49e610['id']){var _0x41a593={'body':_0x49e610['join_url'],'ChatWebsiteId':_0x1d52f9['id'],'ChatInteractionId':_0x42ebf6['id'],'direction':'out','UserId':_0x18f325[_0xd3e5('0x3b')]['id']};return db[_0xd3e5('0x5a')][_0xd3e5('0x48')](_0x41a593,{});}else{throw new db[(_0xd3e5('0x58'))][(_0xd3e5('0x56'))]('Unable\x20to\x20create\x20Vidaoo\x20session');}})['then'](function(){return _0x42ebf6[_0xd3e5('0x5b')]({'vidaooSessionId':_0x49e610['id']});})[_0xd3e5('0x14')](respondWithResult(_0x13b77a,null))[_0xd3e5('0x1d')](handleError(_0x13b77a,null));};exports['customUpdate']=function(_0x25fb9f,_0x1fccda){if(_0x25fb9f[_0xd3e5('0x49')]['id']){delete _0x25fb9f[_0xd3e5('0x49')]['id'];}return db[_0xd3e5('0x35')]['find']({'where':{'id':_0x25fb9f[_0xd3e5('0x3d')]['id']},'include':[{'model':db[_0xd3e5('0x5c')],'as':_0xd3e5('0x5d')}]})['then'](handleEntityNotFound(_0x1fccda,null))['then'](saveUpdates(_0x25fb9f['body'],null))[_0xd3e5('0x14')](respondWithResult(_0x1fccda,null))[_0xd3e5('0x1d')](handleError(_0x1fccda,null));};exports[_0xd3e5('0x5e')]=function(_0x12bdde,_0x57ff7f){if(_0x12bdde[_0xd3e5('0x49')]['id']){delete _0x12bdde[_0xd3e5('0x49')]['id'];}return db[_0xd3e5('0x35')][_0xd3e5('0x47')]({'where':{'id':_0x12bdde[_0xd3e5('0x3d')]['id']}})[_0xd3e5('0x14')](function(_0x4ab654){if(!_0x4ab654){logger[_0xd3e5('0x18')]('abandonInteraction,\x20%s,\x20%s,\x20%s','abandon',0x194,_0xd3e5('0x5f'));_0x57ff7f[_0xd3e5('0x1e')](0x194);}else{if(_0x4ab654[_0xd3e5('0x60')]){throw new db['Sequelize'][(_0xd3e5('0x56'))](_0xd3e5('0x61'));}}return _0x4ab654;})[_0xd3e5('0x14')](function(_0x5db965){if(_0x5db965){return _0x5db965[_0xd3e5('0x28')]({'closed':_0x12bdde[_0xd3e5('0x49')][_0xd3e5('0x62')],'disposition':_0x12bdde['body'][_0xd3e5('0x63')]})[_0xd3e5('0x14')](function(_0x2d86eb){return _0x2d86eb;});}})['then'](function(){return respondWithRpcPromise(_0xd3e5('0x64'),'abandon',_0x12bdde['body'],client9004);})[_0xd3e5('0x14')](respondWithResult(_0x57ff7f,null))['catch'](handleError(_0x57ff7f,null));};exports['attachmentUpload']=function(_0x41dd1d,_0x5dd63d){_0x41dd1d[_0xd3e5('0x49')][_0xd3e5('0x2b')]=_0x41dd1d[_0xd3e5('0x65')][_0xd3e5('0x66')];_0x41dd1d[_0xd3e5('0x49')]['basename']=_0x41dd1d[_0xd3e5('0x65')][_0xd3e5('0x67')];_0x41dd1d['body'][_0xd3e5('0x68')]=_0x41dd1d[_0xd3e5('0x65')]['mimetype'];return db['Attachment'][_0xd3e5('0x48')](_0x41dd1d[_0xd3e5('0x49')])['then'](respondWithResult(_0x5dd63d,0xc9))[_0xd3e5('0x1d')](handleError(_0x5dd63d,null));};exports[_0xd3e5('0x69')]=function(_0x49fcf5,_0x1b2901){return db['ChatInteraction']['findOne']({'where':{'id':_0x49fcf5[_0xd3e5('0x3d')]['id']},'raw':!![]})[_0xd3e5('0x14')](handleEntityNotFound(_0x1b2901,null))[_0xd3e5('0x14')](function(_0x321b02){if(_0x321b02){if(_0x321b02[_0xd3e5('0x62')]){return _0x1b2901[_0xd3e5('0x1f')](0x193)[_0xd3e5('0x27')]({'status':0x193,'message':_0xd3e5('0x6a')});}return db[_0xd3e5('0x6b')][_0xd3e5('0x4c')]({'where':{'id':_0x49fcf5['query']['attachId']},'raw':!![]})[_0xd3e5('0x14')](handleEntityNotFound(_0x1b2901,null));}})[_0xd3e5('0x14')](function(_0x228b44){if(_0x228b44){var _0x5f0704=_0x228b44[_0xd3e5('0x6c')]!==null;var _0x15b89f=path[_0xd3e5('0x6d')](config[_0xd3e5('0x6e')],_0xd3e5('0x6f'));if(_0x5f0704){_0x15b89f=path['join'](_0x15b89f,_0xd3e5('0x70'));}var _0x59b488=path[_0xd3e5('0x6d')](_0x15b89f,_0x228b44[_0xd3e5('0x71')]);return _0x1b2901[_0xd3e5('0x72')](_0x59b488);}})['catch'](handleError(_0x1b2901,null));};exports['close']=function(_0x477b8d,_0x598f1a){var _0x373238=null;var _0x153af0=null;var _0x1f2d8e=null;if(_0x477b8d[_0xd3e5('0x49')]['id']){delete _0x477b8d[_0xd3e5('0x49')]['id'];}if(_0x477b8d[_0xd3e5('0x49')][_0xd3e5('0x73')]){_0x1f2d8e=path[_0xd3e5('0x6d')](config[_0xd3e5('0x6e')],_0xd3e5('0x74'),util[_0xd3e5('0x75')](_0xd3e5('0x76'),Date[_0xd3e5('0x77')]()));_0x477b8d[_0xd3e5('0x49')][_0xd3e5('0x78')]=_0x1f2d8e;}return db[_0xd3e5('0x35')]['find']({'where':{'id':_0x477b8d[_0xd3e5('0x3d')]['id']},'include':[{'model':db[_0xd3e5('0x5a')],'as':_0xd3e5('0x79'),'include':[{'model':db[_0xd3e5('0x7a')],'as':'User'}]}]})[_0xd3e5('0x14')](handleEntityNotFound(_0x598f1a,null))[_0xd3e5('0x14')](saveUpdates(_0x477b8d[_0xd3e5('0x49')],null))['then'](function(_0x556492){if(_0x556492){_0x373238=_0x556492;return db[_0xd3e5('0x7b')][_0xd3e5('0x47')]({'where':{'id':_0x373238[_0xd3e5('0x7c')]}});}})[_0xd3e5('0x14')](function(_0x430bdb){if(_0x430bdb){_0x153af0=_0x430bdb;return db[_0xd3e5('0x5c')][_0xd3e5('0x47')]({'where':{'id':_0x373238[_0xd3e5('0x7d')]}});}})[_0xd3e5('0x14')](function(_0x4d09f6){if(_0x4d09f6){if(_0x1f2d8e){var _0x33226e=null;for(var _0x52d8b2=0x1;_0x52d8b2<_0x373238[_0xd3e5('0x79')][_0xd3e5('0x43')];++_0x52d8b2){_0x33226e=_0x373238[_0xd3e5('0x79')][_0x52d8b2];var _0x280009=_0x33226e['UserId']?util[_0xd3e5('0x75')]('%s%d',_0x153af0[_0xd3e5('0x7e')],_0x33226e['UserId']):'System';var _0x121e0e=_0x477b8d[_0xd3e5('0x49')][_0xd3e5('0x7f')]||util[_0xd3e5('0x75')](_0xd3e5('0x80'),_0xd3e5('0x81'),_0x33226e['ContactId']);switch(_0x153af0[_0xd3e5('0x82')]){case _0xd3e5('0x83'):_0x280009=_0x33226e[_0xd3e5('0x60')]?util[_0xd3e5('0x75')](_0xd3e5('0x80'),_0x153af0[_0xd3e5('0x7e')],_0x33226e[_0xd3e5('0x60')]):'System';break;case _0xd3e5('0x84'):_0x280009=_0x33226e[_0xd3e5('0x60')]?_0x33226e[_0xd3e5('0x7a')][_0xd3e5('0x85')]||_0x33226e['User'][_0xd3e5('0x86')]:_0xd3e5('0x87');break;case _0xd3e5('0x88'):_0x280009=_0x33226e['UserId']?_0x33226e[_0xd3e5('0x7a')][_0xd3e5('0x86')]:_0xd3e5('0x87');break;default:_0x280009=_0x33226e['UserId']?util[_0xd3e5('0x75')]('%s%d',_0x153af0[_0xd3e5('0x7e')],_0x33226e[_0xd3e5('0x60')]):_0xd3e5('0x87');}var _0x4f0128=util[_0xd3e5('0x75')](_0xd3e5('0x89'),moment(_0x33226e[_0xd3e5('0x8a')])[_0xd3e5('0x75')](_0xd3e5('0x8b')),_0x33226e['direction']==='in'?_0x121e0e:_0x280009,_0x33226e[_0xd3e5('0x49')]);if(!_0x33226e[_0xd3e5('0x8c')]){fs[_0xd3e5('0x8d')](_0x1f2d8e,_0x4f0128);}}return db[_0xd3e5('0x8e')]['findOne']({'where':{'service':!![]},'include':[{'model':db[_0xd3e5('0x8f')],'as':_0xd3e5('0x90'),'raw':!![],'include':[{'model':db['CloudProvider'],'as':_0xd3e5('0x91'),'raw':!![]}]}]});}}})[_0xd3e5('0x14')](function(_0x197503){if(!_0x197503||!_0x197503[_0xd3e5('0x90')]||!_0x477b8d[_0xd3e5('0x49')])return _0x373238;var _0x37dfba=_0x197503['getSmtpOptions']();return respondWithRpcPromise(_0xd3e5('0x92'),'sendMail',{'account':_0x37dfba,'message':{'from':util[_0xd3e5('0x75')](_0xd3e5('0x93'),_0x197503[_0xd3e5('0x2b')],_0x197503['email']||_0x197503['Smtp'][_0xd3e5('0x3b')]),'to':_0x477b8d[_0xd3e5('0x49')][_0xd3e5('0x73')],'subject':'Mail\x20Transcript','text':util[_0xd3e5('0x75')](_0xd3e5('0x94'),_0x477b8d[_0xd3e5('0x49')][_0xd3e5('0x73')]),'attachments':[{'path':_0x1f2d8e}]}})['then'](function(){return _0x373238;})[_0xd3e5('0x1d')](function(_0x58fa5d){logger['error'](_0x58fa5d);});})[_0xd3e5('0x14')](respondWithStatusCode(_0x598f1a,0xc8))['catch'](handleError(_0x598f1a,null));};exports['addMessage']=function(_0x365195,_0x34ce1c){return db[_0xd3e5('0x5a')][_0xd3e5('0x47')]({'where':{'id':_0x365195[_0xd3e5('0x3d')]['id']}})['then'](handleEntityNotFound(_0x34ce1c,null))[_0xd3e5('0x14')](function(_0x438d12){if(_0x438d12){return _0x438d12['addMessage'](_0x365195[_0xd3e5('0x49')][_0xd3e5('0x95')],_[_0xd3e5('0x96')](_0x365195[_0xd3e5('0x49')],['ids','id'])||{});}})[_0xd3e5('0x14')](respondWithResult(_0x34ce1c,null))[_0xd3e5('0x1d')](handleError(_0x34ce1c,null));};exports[_0xd3e5('0x97')]=function(_0x27b354,_0x30d5c1){var _0x8b7c76={'raw':![],'where':{}};var _0x3a2938={};var _0x3d1068={'count':0x0,'rows':[]};return db['ChatInteraction'][_0xd3e5('0x4c')]({'where':{'id':_0x27b354['params']['id']}})[_0xd3e5('0x14')](handleEntityNotFound(_0x30d5c1,null))[_0xd3e5('0x14')](function(_0x55747c){if(_0x55747c){_0x3a2938['model']=_[_0xd3e5('0x3e')](db['ChatMessage']['rawAttributes']);_0x3a2938[_0xd3e5('0x3a')]=_[_0xd3e5('0x3e')](_0x27b354[_0xd3e5('0x3a')]);_0x3a2938[_0xd3e5('0x98')]=_[_0xd3e5('0x3f')](_0x3a2938[_0xd3e5('0x40')],_0x3a2938['query']);_0x8b7c76[_0xd3e5('0x41')]=_['intersection'](_0x3a2938[_0xd3e5('0x40')],qs[_0xd3e5('0x42')](_0x27b354[_0xd3e5('0x3a')][_0xd3e5('0x42')]));_0x8b7c76['attributes']=_0x8b7c76[_0xd3e5('0x41')][_0xd3e5('0x43')]?_0x8b7c76[_0xd3e5('0x41')]:_0x3a2938[_0xd3e5('0x40')];if(!_0x27b354[_0xd3e5('0x3a')][_0xd3e5('0x99')](_0xd3e5('0x9a'))){_0x8b7c76[_0xd3e5('0x23')]=qs[_0xd3e5('0x23')](_0x27b354['query'][_0xd3e5('0x23')]);_0x8b7c76['offset']=qs[_0xd3e5('0x21')](_0x27b354[_0xd3e5('0x3a')][_0xd3e5('0x21')]);}_0x8b7c76[_0xd3e5('0x9b')]=qs[_0xd3e5('0x9c')](_0x27b354[_0xd3e5('0x3a')][_0xd3e5('0x9c')]);_0x8b7c76[_0xd3e5('0x9d')]=qs[_0xd3e5('0x98')](_[_0xd3e5('0x9e')](_0x27b354[_0xd3e5('0x3a')],_0x3a2938['filters']));_0x8b7c76['where'][_0xd3e5('0x9f')]=_0x55747c['id'];if(_0x27b354['query'][_0xd3e5('0xa0')]){_0x8b7c76['where']=_[_0xd3e5('0x2e')](_0x8b7c76['where'],{'$or':_[_0xd3e5('0x34')](_0x8b7c76[_0xd3e5('0x41')],function(_0x39fa03){var _0x2010c4={};_0x2010c4[_0x39fa03]={'$like':'%'+_0x27b354['query']['filter']+'%'};return _0x2010c4;})});}if(_0x27b354[_0xd3e5('0x3a')][_0xd3e5('0xa1')]){var _0x519906=_0x27b354[_0xd3e5('0x3a')]['$gte']['split'](',');var _0x2341ab={};_0x2341ab[_0x519906[0x0]]={'$gte':moment(_0x519906[0x1])[_0xd3e5('0x75')](_0xd3e5('0xa2'))};_0x8b7c76[_0xd3e5('0x9d')]=_[_0xd3e5('0x2e')](_0x8b7c76[_0xd3e5('0x9d')],_0x2341ab);}_0x8b7c76=_['merge']({},_0x8b7c76,_0x27b354[_0xd3e5('0x46')]);return db['ChatMessage'][_0xd3e5('0x24')]({'where':_0x8b7c76[_0xd3e5('0x9d')]})[_0xd3e5('0x14')](function(_0x1c603a){_0x3d1068['count']=_0x1c603a;if(_0x27b354[_0xd3e5('0x3a')][_0xd3e5('0x44')]){_0x8b7c76[_0xd3e5('0x45')]=[{'all':!![]}];}return db[_0xd3e5('0x5a')]['findAll'](_0x8b7c76);})[_0xd3e5('0x14')](function(_0x37dcfb){_0x3d1068[_0xd3e5('0xa3')]=_0x37dcfb;return _0x3d1068;});}})[_0xd3e5('0x14')](respondWithFilteredResult(_0x30d5c1,_0x8b7c76))['catch'](handleError(_0x30d5c1,null));};exports['getMyMessages']=function(_0x56be4c,_0x395731){var _0x27779e={'where':{}},_0x3573b6={},_0x17810e={'count':0x0,'rows':[]};return db[_0xd3e5('0x35')]['findOne']({'where':{'id':_0x56be4c['params']['id']}})[_0xd3e5('0x14')](handleEntityNotFound(_0x395731,null))[_0xd3e5('0x14')](function(_0x3a2a16){if(_0x3a2a16){_0x3573b6[_0xd3e5('0x40')]=_[_0xd3e5('0x3e')](db[_0xd3e5('0x5a')]['rawAttributes']);_0x3573b6[_0xd3e5('0x3a')]=_[_0xd3e5('0x3e')](_0x56be4c['query']);_0x3573b6['filters']=_[_0xd3e5('0x3f')](_0x3573b6[_0xd3e5('0x40')],_0x3573b6[_0xd3e5('0x3a')]);_0x27779e[_0xd3e5('0x41')]=_[_0xd3e5('0x3f')](_0x3573b6[_0xd3e5('0x40')],qs[_0xd3e5('0x42')](_0x56be4c[_0xd3e5('0x3a')][_0xd3e5('0x42')]));_0x27779e[_0xd3e5('0x41')]=_0x27779e[_0xd3e5('0x41')][_0xd3e5('0x43')]?_0x27779e['attributes']:_0x3573b6['model'];if(!_0x56be4c[_0xd3e5('0x3a')][_0xd3e5('0x99')](_0xd3e5('0x9a'))){_0x27779e[_0xd3e5('0x23')]=qs[_0xd3e5('0x23')](_0x56be4c[_0xd3e5('0x3a')][_0xd3e5('0x23')]);_0x27779e[_0xd3e5('0x21')]=qs[_0xd3e5('0x21')](_0x56be4c[_0xd3e5('0x3a')][_0xd3e5('0x21')]);}_0x27779e[_0xd3e5('0x9b')]=qs[_0xd3e5('0x9c')](_0x56be4c[_0xd3e5('0x3a')]['sort']);_0x27779e['where']=qs[_0xd3e5('0x98')](_[_0xd3e5('0x9e')](_0x56be4c['query'],_0x3573b6[_0xd3e5('0x98')]));_0x27779e[_0xd3e5('0x9d')][_0xd3e5('0x9f')]=_0x3a2a16['id'];if(_0x56be4c['query']['filter']){_0x27779e['where']=_[_0xd3e5('0x2e')](_0x27779e[_0xd3e5('0x9d')],{'$or':_['map'](_0x27779e['attributes'],function(_0x53101e){var _0x3bfba9={};_0x3bfba9[_0x53101e]={'$like':'%'+_0x56be4c['query'][_0xd3e5('0xa0')]+'%'};return _0x3bfba9;})});}_0x27779e['where'][_0xd3e5('0x8c')]=![];if(_0x56be4c[_0xd3e5('0x3a')]['id']){_0x27779e[_0xd3e5('0x9d')]['id']={'$gt':_0x56be4c[_0xd3e5('0x3a')]['id']};}_0x27779e=_['merge']({},_0x27779e,_0x56be4c['options']);return db['ChatMessage'][_0xd3e5('0x24')]({'where':_0x27779e[_0xd3e5('0x9d')]})['then'](function(_0x42b6f2){_0x17810e[_0xd3e5('0x24')]=_0x42b6f2;_0x27779e[_0xd3e5('0x45')]=[];if(_0x56be4c['query'][_0xd3e5('0xa4')]){_0x27779e['include']['push']({'model':db[_0xd3e5('0x7a')],'as':_0xd3e5('0x7a'),'attributes':['id',_0xd3e5('0x86'),_0xd3e5('0x85')]});}if(_0x56be4c[_0xd3e5('0x3a')][_0xd3e5('0x44')]){_0x27779e[_0xd3e5('0x45')]=[{'all':!![]}];}return db[_0xd3e5('0x5a')][_0xd3e5('0x38')](_0x27779e);})[_0xd3e5('0x14')](function(_0x25b901){_0x17810e[_0xd3e5('0xa3')]=_0x25b901;return _0x17810e;});}})[_0xd3e5('0x14')](respondWithFilteredResult(_0x395731,_0x27779e))['catch'](handleError(_0x395731,null));};exports[_0xd3e5('0xa5')]=function(_0x40cfe5,_0x308681){return db['ChatInteraction'][_0xd3e5('0x47')]({'where':{'id':_0x40cfe5[_0xd3e5('0x3d')]['id']}})[_0xd3e5('0x14')](handleEntityNotFound(_0x308681,null))[_0xd3e5('0x14')](function(_0x7002c8){if(_0x7002c8){return _0x7002c8['setTags'](_0x40cfe5['body'][_0xd3e5('0x95')],_['omit'](_0x40cfe5[_0xd3e5('0x49')],[_0xd3e5('0x95'),'id'])||{})[_0xd3e5('0xa6')](function(){return db['Tag']['findAll']({'attributes':['id',_0xd3e5('0x2b'),_0xd3e5('0xa7')],'where':{'id':_0x40cfe5['body'][_0xd3e5('0x95')]}});})[_0xd3e5('0x14')](function(_0x2b4e26){socket[_0xd3e5('0xa8')](_0xd3e5('0xa9'),{'id':Number(_0x40cfe5[_0xd3e5('0x3d')]['id']),'tags':_0x2b4e26||[]});return{'id':Number(_0x40cfe5[_0xd3e5('0x3d')]['id']),'tags':_0x2b4e26||[]};});}})['then'](respondWithResult(_0x308681,null))['catch'](handleError(_0x308681,null));};exports[_0xd3e5('0xaa')]=function(_0x225087,_0x5c24a4){return db['ChatInteraction'][_0xd3e5('0x47')]({'where':{'id':_0x225087[_0xd3e5('0x3d')]['id']}})['then'](handleEntityNotFound(_0x5c24a4,null))[_0xd3e5('0x14')](function(_0xe0b962){if(_0xe0b962){return _0xe0b962[_0xd3e5('0xaa')](_0x225087[_0xd3e5('0x3a')]['ids']);}})['then'](respondWithStatusCode(_0x5c24a4,null))[_0xd3e5('0x1d')](handleError(_0x5c24a4,null));};exports['download']=function(_0x2e948d,_0x1243f8){var _0x398782=moment()[_0xd3e5('0xab')]()[_0xd3e5('0xac')]();var _0x43e328=path[_0xd3e5('0x6d')](config[_0xd3e5('0x6e')],_0xd3e5('0xad'),_0xd3e5('0xae'),_0xd3e5('0xaf'));var _0x3548d2=path[_0xd3e5('0x6d')](config[_0xd3e5('0x6e')],_0xd3e5('0xad'),_0xd3e5('0xae'),_0xd3e5('0xb0'));var _0x38b4f8=path['join'](_0x43e328,_0x398782);var _0xcd5772=util[_0xd3e5('0x75')]('transcript-%d-%s.zip',_0x2e948d[_0xd3e5('0x3d')]['id'],_0x398782);var _0x531f22=path[_0xd3e5('0x6d')](_0x43e328,_0xcd5772);var _0x30240e=[];_0x30240e['push']({'model':db[_0xd3e5('0x7a')],'as':_0xd3e5('0x7a'),'attributes':['id',_0xd3e5('0x86')],'raw':!![]});_0x30240e[_0xd3e5('0xb1')]({'model':db[_0xd3e5('0x5c')],'as':_0xd3e5('0x5d'),'attributes':['id',_0xd3e5('0xb2'),_0xd3e5('0xb3')],'raw':!![]});if(_0x2e948d[_0xd3e5('0x3a')][_0xd3e5('0xb0')]){_0x30240e[_0xd3e5('0xb1')]({'model':db[_0xd3e5('0x6b')],'as':_0xd3e5('0x6b'),'raw':!![]});}var _0x392833=[{'model':db[_0xd3e5('0x5a')],'as':_0xd3e5('0x79'),'attributes':['id',_0xd3e5('0x49'),_0xd3e5('0x8a'),_0xd3e5('0xb4'),'secret','read'],'include':_0x30240e}];_0x392833[_0xd3e5('0xb1')]({'model':db[_0xd3e5('0x7b')],'as':_0xd3e5('0xb5'),'attributes':['id',_0xd3e5('0x2b')]});_0x392833['push']({'model':db[_0xd3e5('0x7a')],'as':_0xd3e5('0xb6'),'attributes':['id',_0xd3e5('0x86')]});return db['ChatInteraction'][_0xd3e5('0x47')]({'where':{'id':_0x2e948d[_0xd3e5('0x3d')]['id']},'include':_0x392833})[_0xd3e5('0x14')](handleEntityNotFound(_0x1243f8,null))[_0xd3e5('0x14')](function(_0x5418d3){if(_0x5418d3){var _0x5ac980=_0x5418d3[_0xd3e5('0xb7')]({'plain':!![]});fs[_0xd3e5('0xb8')](_0x38b4f8);var _0x30ac43={'channel':_0xd3e5('0xb9'),'account':_0x5ac980[_0xd3e5('0xb5')]['name'],'agent':_0x5ac980[_0xd3e5('0xb6')]?_0x5ac980['Owner'][_0xd3e5('0x86')]:_0xd3e5('0xba'),'createdAt':moment(_0x5ac980['createdAt'])['format'](_0xd3e5('0xa2'))[_0xd3e5('0xac')](),'closedAt':_0x5ac980[_0xd3e5('0x62')]?moment(_0x5ac980[_0xd3e5('0xbb')])['format']('YYYY-MM-DD\x20HH:mm:ss')[_0xd3e5('0xac')]():'','disposition':_0x5ac980['disposition'],'chatInfo':{'browser':_0x5ac980[_0xd3e5('0xbc')],'os':_0x5ac980['osName'],'referer':_0x5ac980[_0xd3e5('0xbd')],'customerIp':_0x5ac980[_0xd3e5('0xbe')],'customerPort':_0x5ac980[_0xd3e5('0xbf')]?_0x5ac980['customerPort']:'N.A.'},'messages':_(_0x5ac980[_0xd3e5('0x79')])[_0xd3e5('0xc0')]()[_0xd3e5('0xa0')]({'secret':![]})[_0xd3e5('0x34')](function(_0x4a4259){if(_0x4a4259[_0xd3e5('0x6b')]){var _0x20b216=path[_0xd3e5('0x6d')](_0x3548d2,_0x4a4259[_0xd3e5('0x6b')][_0xd3e5('0x71')]);if(fs[_0xd3e5('0xc1')](_0x20b216)){fs[_0xd3e5('0xc2')](_0x20b216)[_0xd3e5('0xc3')](fs[_0xd3e5('0xc4')](path[_0xd3e5('0x6d')](_0x38b4f8,_0x4a4259['Attachment']['basename'])));}}return{'date':moment(_0x4a4259[_0xd3e5('0x8a')])[_0xd3e5('0x75')](_0xd3e5('0xa2'))[_0xd3e5('0xac')](),'sender':_0x4a4259[_0xd3e5('0xb4')]===_0xd3e5('0xc5')?_0x4a4259[_0xd3e5('0x7a')]?_0x4a4259[_0xd3e5('0x7a')][_0xd3e5('0x86')]:_0xd3e5('0x87'):_0x4a4259[_0xd3e5('0x5d')][_0xd3e5('0xb2')]+(_0x4a4259['Contact'][_0xd3e5('0xb3')]?'\x20'+_0x4a4259['Contact'][_0xd3e5('0xb3')]:''),'body':_0x4a4259['Attachment']?_0x4a4259['Attachment'][_0xd3e5('0x71')]:_0x4a4259['body'],'direction':_0x4a4259[_0xd3e5('0xb4')]===_0xd3e5('0xc5')?'A':'C','secret':_0x4a4259['secret'],'read':_0x4a4259[_0xd3e5('0xc6')],'attachment':_0x4a4259[_0xd3e5('0x6b')]};})['value']()};return ejs[_0xd3e5('0xc7')](path['join'](config[_0xd3e5('0x6e')],_0xd3e5('0xad'),_0xd3e5('0xc8'),_0xd3e5('0xc9')),{'interaction':_0x30ac43})['then'](function(_0x254bb5){var _0x4db2a6=path[_0xd3e5('0x6d')](_0x38b4f8,_0xd3e5('0xca')+_0x5ac980['id']+'-'+_0x398782+_0xd3e5('0xcb'));var _0x32cb87={'path':_0x4db2a6,'channel':_0xd3e5('0xb9'),'interactionId':_0x5ac980['id']};return pdf[_0xd3e5('0xcc')](_0x254bb5,_0x32cb87);})[_0xd3e5('0x14')](function(){return new Promise(function(_0xbb9196,_0x4fcb85){zipdir(_0x38b4f8,{'saveTo':_0x531f22},function(_0x4e4a2e,_0x17ae71){if(_0x4e4a2e)return _0x4fcb85(_0x4e4a2e);return _0xbb9196(_0x17ae71);});})[_0xd3e5('0x14')](function(){return new BPromise(function(_0x44aa45,_0x3caf3b){rimraf(_0x38b4f8,function(_0x313d04){if(_0x313d04)_0x3caf3b(_0x313d04);return _0x44aa45();});});})[_0xd3e5('0x14')](function(){return _0x1243f8[_0xd3e5('0x72')](_0x531f22,_0xcd5772,function(_0x1229ff){if(_0x1229ff){logger['error']('err',_0x1229ff);}else{fs[_0xd3e5('0xcd')](_0x531f22);}});});});}else{return _0x1243f8[_0xd3e5('0x1e')](0xc8);}})[_0xd3e5('0x1d')](handleError(_0x1243f8,null));};