Built motion from commit 20b39a97.|2.6.29
[motion2.git] / server / api / smsInteraction / smsInteraction.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 _0xa363=['createdAt','direction','read','Account','Owner','mkdirSync','Sms','N.A.','closed','closedAt','disposition','map','out','secret','value','views','downloadInteraction.ejs','transcript-','.pdf','log','err','unlinkSync','rimraf','zip-dir','moment','bluebird','util','path','ejs','lodash','ioredis','../../components/parsers/qs','../../components/export/pdf','../../config/logger','api','../../config/environment','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./smsInteraction.socket','register','sendStatus','end','status','offset','undefined','limit','count','set','update','then','stack','name','send','index','SmsInteraction','rawAttributes','fieldName','type','key','getOptions','findAll','sms','user','catch','show','model','keys','filters','intersection','query','attributes','fields','includeAll','merge','options','create','body','find','params','destroy','describe','addMessage','SmsMessage','ids','omit','findOne','hasOwnProperty','nolimit','order','sort','where','pick','SmsInteractionId','filter','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','rows','setTags','spread','Tag','emit','smsInteractionTags:save','removeTags','download','toString','join','root','server','files','tmp','transcript-%d-%s.zip','push','User','fullname','CmContact','Contact','firstName','lastName','Messages'];(function(_0x2be8c2,_0x14a4b5){var _0x97f531=function(_0xcee58d){while(--_0xcee58d){_0x2be8c2['push'](_0x2be8c2['shift']());}};_0x97f531(++_0x14a4b5);}(_0xa363,0x10e));var _0x3a36=function(_0x3ca800,_0x352855){_0x3ca800=_0x3ca800-0x0;var _0x2f4eca=_0xa363[_0x3ca800];return _0x2f4eca;};'use strict';var rimraf=require(_0x3a36('0x0'));var zipdir=require(_0x3a36('0x1'));var moment=require(_0x3a36('0x2'));var BPromise=require(_0x3a36('0x3'));var util=require(_0x3a36('0x4'));var path=require(_0x3a36('0x5'));var ejs=require(_0x3a36('0x6'));var fs=require('fs');var _=require(_0x3a36('0x7'));var Redis=require(_0x3a36('0x8'));var interaction=require('../../components/interaction/service');var qs=require(_0x3a36('0x9'));var pdf=require(_0x3a36('0xa'));var logger=require(_0x3a36('0xb'))(_0x3a36('0xc'));var config=require(_0x3a36('0xd'));var db=require(_0x3a36('0xe'))['db'];config['redis']=_[_0x3a36('0xf')](config[_0x3a36('0x10')],{'host':_0x3a36('0x11'),'port':0x18eb});var socket=require(_0x3a36('0x12'))(new Redis(config[_0x3a36('0x10')]));require(_0x3a36('0x13'))[_0x3a36('0x14')](socket);function respondWithStatusCode(_0x39ac26,_0xe5ae07){_0xe5ae07=_0xe5ae07||0xcc;return function(_0x3304d3){if(_0x3304d3){return _0x39ac26[_0x3a36('0x15')](_0xe5ae07);}return _0x39ac26['status'](_0xe5ae07)[_0x3a36('0x16')]();};}function respondWithResult(_0x4ad833,_0xc275ee){_0xc275ee=_0xc275ee||0xc8;return function(_0x653c09){if(_0x653c09){return _0x4ad833[_0x3a36('0x17')](_0xc275ee)['json'](_0x653c09);}};}function respondWithFilteredResult(_0x568159,_0x5de758){return function(_0x4d09a9){if(_0x4d09a9){var _0x34235e=typeof _0x5de758[_0x3a36('0x18')]===_0x3a36('0x19')&&typeof _0x5de758[_0x3a36('0x1a')]===_0x3a36('0x19');var _0x362777=_0x4d09a9[_0x3a36('0x1b')];var _0x2ad798=_0x34235e?0x0:_0x5de758['offset'];var _0x1efb51=_0x34235e?_0x4d09a9[_0x3a36('0x1b')]:_0x5de758[_0x3a36('0x18')]+_0x5de758[_0x3a36('0x1a')];var _0x37d8e5;if(_0x1efb51>=_0x362777){_0x1efb51=_0x362777;_0x37d8e5=0xc8;}else{_0x37d8e5=0xce;}_0x568159[_0x3a36('0x17')](_0x37d8e5);return _0x568159[_0x3a36('0x1c')]('Content-Range',_0x2ad798+'-'+_0x1efb51+'/'+_0x362777)['json'](_0x4d09a9);}return null;};}function saveUpdates(_0x3618cb){return function(_0xb77f24){if(_0xb77f24){return _0xb77f24[_0x3a36('0x1d')](_0x3618cb)[_0x3a36('0x1e')](function(_0x2032e7){return _0x2032e7;});}return null;};}function removeEntity(_0x53f7e1){return function(_0x5384eb){if(_0x5384eb){return _0x5384eb['destroy']()[_0x3a36('0x1e')](function(){_0x53f7e1['status'](0xcc)[_0x3a36('0x16')]();});}};}function handleEntityNotFound(_0x11eee3){return function(_0x40137a){if(!_0x40137a){_0x11eee3[_0x3a36('0x15')](0x194);}return _0x40137a;};}function handleError(_0x47e89e,_0x4b6d82){_0x4b6d82=_0x4b6d82||0x1f4;return function(_0x24c046){logger['error'](_0x24c046[_0x3a36('0x1f')]);if(_0x24c046[_0x3a36('0x20')]){delete _0x24c046[_0x3a36('0x20')];}_0x47e89e[_0x3a36('0x17')](_0x4b6d82)[_0x3a36('0x21')](_0x24c046);};}exports[_0x3a36('0x22')]=function(_0x90d89e,_0x4d607b){var _0x4a9a96={};var _0x3a4717=_['map'](db[_0x3a36('0x23')][_0x3a36('0x24')],function(_0x2314f6){return{'name':_0x2314f6[_0x3a36('0x25')],'type':_0x2314f6[_0x3a36('0x26')][_0x3a36('0x27')]};});_0x4a9a96=qs[_0x3a36('0x28')](_0x3a4717,_0x90d89e);return interaction[_0x3a36('0x29')](_0x3a36('0x2a'),_0x90d89e['query'],_0x90d89e[_0x3a36('0x2b')],_0x4a9a96,_0x3a4717)['then'](respondWithFilteredResult(_0x4d607b,_0x4a9a96))[_0x3a36('0x2c')](handleError(_0x4d607b,null));};exports[_0x3a36('0x2d')]=function(_0x36ca05,_0x4ba6ca){var _0x12f0a0={'raw':![],'where':{'id':_0x36ca05['params']['id']}},_0x2cb774={};_0x2cb774[_0x3a36('0x2e')]=_[_0x3a36('0x2f')](db[_0x3a36('0x23')][_0x3a36('0x24')]);_0x2cb774['query']=_[_0x3a36('0x2f')](_0x36ca05['query']);_0x2cb774[_0x3a36('0x30')]=_[_0x3a36('0x31')](_0x2cb774[_0x3a36('0x2e')],_0x2cb774[_0x3a36('0x32')]);_0x12f0a0[_0x3a36('0x33')]=_[_0x3a36('0x31')](_0x2cb774[_0x3a36('0x2e')],qs['fields'](_0x36ca05[_0x3a36('0x32')][_0x3a36('0x34')]));_0x12f0a0[_0x3a36('0x33')]=_0x12f0a0['attributes']['length']?_0x12f0a0[_0x3a36('0x33')]:_0x2cb774[_0x3a36('0x2e')];if(_0x36ca05[_0x3a36('0x32')][_0x3a36('0x35')]){_0x12f0a0['include']=[{'all':!![]}];}_0x12f0a0=_[_0x3a36('0x36')]({},_0x12f0a0,_0x36ca05[_0x3a36('0x37')]);return db['SmsInteraction']['find'](_0x12f0a0)[_0x3a36('0x1e')](handleEntityNotFound(_0x4ba6ca,null))[_0x3a36('0x1e')](respondWithResult(_0x4ba6ca,null))[_0x3a36('0x2c')](handleError(_0x4ba6ca,null));};exports[_0x3a36('0x38')]=function(_0x1432c8,_0x41d03c){return db[_0x3a36('0x23')][_0x3a36('0x38')](_0x1432c8[_0x3a36('0x39')],{})[_0x3a36('0x1e')](respondWithResult(_0x41d03c,0xc9))[_0x3a36('0x2c')](handleError(_0x41d03c,null));};exports[_0x3a36('0x1d')]=function(_0x26eb83,_0x4de5e4){if(_0x26eb83[_0x3a36('0x39')]['id']){delete _0x26eb83[_0x3a36('0x39')]['id'];}return db[_0x3a36('0x23')][_0x3a36('0x3a')]({'where':{'id':_0x26eb83[_0x3a36('0x3b')]['id']}})[_0x3a36('0x1e')](handleEntityNotFound(_0x4de5e4,null))['then'](saveUpdates(_0x26eb83[_0x3a36('0x39')],null))[_0x3a36('0x1e')](respondWithResult(_0x4de5e4,null))[_0x3a36('0x2c')](handleError(_0x4de5e4,null));};exports[_0x3a36('0x3c')]=function(_0x58590a,_0x3f9d63){return db[_0x3a36('0x23')]['find']({'where':{'id':_0x58590a['params']['id']}})[_0x3a36('0x1e')](handleEntityNotFound(_0x3f9d63,null))[_0x3a36('0x1e')](removeEntity(_0x3f9d63,null))['catch'](handleError(_0x3f9d63,null));};exports[_0x3a36('0x3d')]=function(_0x234deb,_0x507c5f){return db[_0x3a36('0x23')][_0x3a36('0x3d')]()['then'](respondWithResult(_0x507c5f,null))[_0x3a36('0x2c')](handleError(_0x507c5f,null));};exports[_0x3a36('0x3e')]=function(_0x4ae043,_0x791872){return db[_0x3a36('0x3f')][_0x3a36('0x3a')]({'where':{'id':_0x4ae043[_0x3a36('0x3b')]['id']}})['then'](handleEntityNotFound(_0x791872,null))[_0x3a36('0x1e')](function(_0x21e369){if(_0x21e369){return _0x21e369[_0x3a36('0x3e')](_0x4ae043[_0x3a36('0x39')][_0x3a36('0x40')],_[_0x3a36('0x41')](_0x4ae043[_0x3a36('0x39')],['ids','id'])||{});}})[_0x3a36('0x1e')](respondWithResult(_0x791872,null))[_0x3a36('0x2c')](handleError(_0x791872,null));};exports['getMessages']=function(_0x5ecef2,_0x4848d8){var _0x2944e2={'raw':![],'where':{}};var _0x5a655f={};var _0x3ba9e5={'count':0x0,'rows':[]};return db[_0x3a36('0x23')][_0x3a36('0x42')]({'where':{'id':_0x5ecef2['params']['id']}})[_0x3a36('0x1e')](handleEntityNotFound(_0x4848d8,null))[_0x3a36('0x1e')](function(_0x533034){if(_0x533034){_0x5a655f['model']=_['keys'](db[_0x3a36('0x3f')][_0x3a36('0x24')]);_0x5a655f['query']=_['keys'](_0x5ecef2[_0x3a36('0x32')]);_0x5a655f[_0x3a36('0x30')]=_['intersection'](_0x5a655f[_0x3a36('0x2e')],_0x5a655f[_0x3a36('0x32')]);_0x2944e2[_0x3a36('0x33')]=_[_0x3a36('0x31')](_0x5a655f[_0x3a36('0x2e')],qs[_0x3a36('0x34')](_0x5ecef2[_0x3a36('0x32')][_0x3a36('0x34')]));_0x2944e2[_0x3a36('0x33')]=_0x2944e2[_0x3a36('0x33')]['length']?_0x2944e2[_0x3a36('0x33')]:_0x5a655f['model'];if(!_0x5ecef2[_0x3a36('0x32')][_0x3a36('0x43')](_0x3a36('0x44'))){_0x2944e2['limit']=qs[_0x3a36('0x1a')](_0x5ecef2[_0x3a36('0x32')]['limit']);_0x2944e2[_0x3a36('0x18')]=qs[_0x3a36('0x18')](_0x5ecef2['query']['offset']);}_0x2944e2[_0x3a36('0x45')]=qs[_0x3a36('0x46')](_0x5ecef2[_0x3a36('0x32')]['sort']);_0x2944e2[_0x3a36('0x47')]=qs[_0x3a36('0x30')](_[_0x3a36('0x48')](_0x5ecef2[_0x3a36('0x32')],_0x5a655f[_0x3a36('0x30')]));_0x2944e2[_0x3a36('0x47')][_0x3a36('0x49')]=_0x533034['id'];if(_0x5ecef2['query'][_0x3a36('0x4a')]){_0x2944e2[_0x3a36('0x47')]=_[_0x3a36('0x36')](_0x2944e2[_0x3a36('0x47')],{'$or':_['map'](_0x2944e2[_0x3a36('0x33')],function(_0x3500d9){var _0x2e7641={};_0x2e7641[_0x3500d9]={'$like':'%'+_0x5ecef2[_0x3a36('0x32')][_0x3a36('0x4a')]+'%'};return _0x2e7641;})});}if(_0x5ecef2[_0x3a36('0x32')][_0x3a36('0x4b')]){var _0x3e29d0=_0x5ecef2[_0x3a36('0x32')][_0x3a36('0x4b')][_0x3a36('0x4c')](',');var _0xe0113={};_0xe0113[_0x3e29d0[0x0]]={'$gte':moment(_0x3e29d0[0x1])[_0x3a36('0x4d')](_0x3a36('0x4e'))};_0x2944e2[_0x3a36('0x47')]=_[_0x3a36('0x36')](_0x2944e2[_0x3a36('0x47')],_0xe0113);}_0x2944e2=_[_0x3a36('0x36')]({},_0x2944e2,_0x5ecef2['options']);return db[_0x3a36('0x3f')][_0x3a36('0x1b')]({'where':_0x2944e2[_0x3a36('0x47')]})['then'](function(_0x532579){_0x3ba9e5[_0x3a36('0x1b')]=_0x532579;if(_0x5ecef2[_0x3a36('0x32')][_0x3a36('0x35')]){_0x2944e2['include']=[{'all':!![]}];}return db['SmsMessage'][_0x3a36('0x29')](_0x2944e2);})[_0x3a36('0x1e')](function(_0x58f3a8){_0x3ba9e5[_0x3a36('0x4f')]=_0x58f3a8;return _0x3ba9e5;});}})[_0x3a36('0x1e')](respondWithFilteredResult(_0x4848d8,_0x2944e2))[_0x3a36('0x2c')](handleError(_0x4848d8,null));};exports['addTags']=function(_0x4b5b9b,_0xaa18d2){return db[_0x3a36('0x23')][_0x3a36('0x3a')]({'where':{'id':_0x4b5b9b[_0x3a36('0x3b')]['id']}})[_0x3a36('0x1e')](handleEntityNotFound(_0xaa18d2,null))[_0x3a36('0x1e')](function(_0x28febc){if(_0x28febc){return _0x28febc[_0x3a36('0x50')](_0x4b5b9b['body'][_0x3a36('0x40')],_[_0x3a36('0x41')](_0x4b5b9b[_0x3a36('0x39')],['ids','id'])||{})[_0x3a36('0x51')](function(){return db[_0x3a36('0x52')][_0x3a36('0x29')]({'attributes':['id',_0x3a36('0x20'),'color'],'where':{'id':_0x4b5b9b['body'][_0x3a36('0x40')]}});})['then'](function(_0x1ac801){socket[_0x3a36('0x53')](_0x3a36('0x54'),{'id':Number(_0x4b5b9b[_0x3a36('0x3b')]['id']),'tags':_0x1ac801||[]});return{'id':Number(_0x4b5b9b[_0x3a36('0x3b')]['id']),'tags':_0x1ac801||[]};});}})[_0x3a36('0x1e')](respondWithResult(_0xaa18d2,null))[_0x3a36('0x2c')](handleError(_0xaa18d2,null));};exports[_0x3a36('0x55')]=function(_0x3e48ad,_0x36b84f){return db[_0x3a36('0x23')][_0x3a36('0x3a')]({'where':{'id':_0x3e48ad[_0x3a36('0x3b')]['id']}})[_0x3a36('0x1e')](handleEntityNotFound(_0x36b84f,null))['then'](function(_0x1ecf65){if(_0x1ecf65){return _0x1ecf65['removeTags'](_0x3e48ad['query'][_0x3a36('0x40')]);}})[_0x3a36('0x1e')](respondWithStatusCode(_0x36b84f,null))['catch'](handleError(_0x36b84f,null));};exports[_0x3a36('0x56')]=function(_0x4150dc,_0x2ad8d6){var _0x29716d=moment()['unix']()[_0x3a36('0x57')]();var _0x31962a=path[_0x3a36('0x58')](config[_0x3a36('0x59')],_0x3a36('0x5a'),_0x3a36('0x5b'),_0x3a36('0x5c'));var _0x247665=path['join'](_0x31962a,_0x29716d);var _0x3911f0=util[_0x3a36('0x4d')](_0x3a36('0x5d'),_0x4150dc[_0x3a36('0x3b')]['id'],_0x29716d);var _0x2babfb=path[_0x3a36('0x58')](_0x31962a,_0x3911f0);var _0x56ce6c=[];_0x56ce6c[_0x3a36('0x5e')]({'model':db[_0x3a36('0x5f')],'as':_0x3a36('0x5f'),'attributes':['id',_0x3a36('0x60')],'raw':!![]});_0x56ce6c[_0x3a36('0x5e')]({'model':db[_0x3a36('0x61')],'as':_0x3a36('0x62'),'attributes':['id',_0x3a36('0x63'),_0x3a36('0x64')],'raw':!![]});var _0x465595=[{'model':db[_0x3a36('0x3f')],'as':_0x3a36('0x65'),'attributes':['id',_0x3a36('0x39'),_0x3a36('0x66'),_0x3a36('0x67'),'secret',_0x3a36('0x68')],'include':_0x56ce6c}];_0x465595['push']({'model':db['SmsAccount'],'as':_0x3a36('0x69'),'attributes':['id','name']});_0x465595[_0x3a36('0x5e')]({'model':db[_0x3a36('0x5f')],'as':_0x3a36('0x6a'),'attributes':['id',_0x3a36('0x60')]});return db[_0x3a36('0x23')][_0x3a36('0x3a')]({'where':{'id':_0x4150dc[_0x3a36('0x3b')]['id']},'include':_0x465595})['then'](handleEntityNotFound(_0x2ad8d6,null))['then'](function(_0x9193f8){if(_0x9193f8){var _0x3a00af=_0x9193f8['get']({'plain':!![]});fs[_0x3a36('0x6b')](_0x247665);var _0x364fbc={'channel':_0x3a36('0x6c'),'account':_0x3a00af[_0x3a36('0x69')][_0x3a36('0x20')],'agent':_0x3a00af[_0x3a36('0x6a')]?_0x3a00af[_0x3a36('0x6a')][_0x3a36('0x60')]:_0x3a36('0x6d'),'createdAt':moment(_0x3a00af['createdAt'])[_0x3a36('0x4d')]('YYYY-MM-DD\x20HH:mm:ss')[_0x3a36('0x57')](),'closedAt':_0x3a00af[_0x3a36('0x6e')]?moment(_0x3a00af[_0x3a36('0x6f')])['format'](_0x3a36('0x4e'))[_0x3a36('0x57')]():'','disposition':_0x3a00af[_0x3a36('0x70')],'messages':_(_0x3a00af[_0x3a36('0x65')])[_0x3a36('0x4a')]({'secret':![]})[_0x3a36('0x71')](function(_0xba8c03){return{'date':moment(_0xba8c03['createdAt'])[_0x3a36('0x4d')](_0x3a36('0x4e'))[_0x3a36('0x57')](),'sender':_0xba8c03[_0x3a36('0x67')]===_0x3a36('0x72')?_0xba8c03[_0x3a36('0x5f')]?_0xba8c03[_0x3a36('0x5f')][_0x3a36('0x60')]:'System':_0xba8c03[_0x3a36('0x62')][_0x3a36('0x63')]+(_0xba8c03[_0x3a36('0x62')][_0x3a36('0x64')]?'\x20'+_0xba8c03[_0x3a36('0x62')][_0x3a36('0x64')]:''),'body':_0xba8c03[_0x3a36('0x39')],'direction':_0xba8c03[_0x3a36('0x67')]==='out'?'A':'C','secret':_0xba8c03[_0x3a36('0x73')],'read':_0xba8c03[_0x3a36('0x68')]};})[_0x3a36('0x74')]()};return ejs['renderFile'](path['join'](config[_0x3a36('0x59')],_0x3a36('0x5a'),_0x3a36('0x75'),_0x3a36('0x76')),{'interaction':_0x364fbc})[_0x3a36('0x1e')](function(_0x4e2b22){var _0x3d247e=path['join'](_0x247665,_0x3a36('0x77')+_0x3a00af['id']+'-'+_0x29716d+_0x3a36('0x78'));var _0x5a51ea={'path':_0x3d247e,'channel':_0x3a36('0x6c'),'interactionId':_0x3a00af['id']};return pdf['createPdfFromHTML'](_0x4e2b22,_0x5a51ea);})[_0x3a36('0x1e')](function(){return new BPromise(function(_0x3b3ad2,_0xe08cd1){zipdir(_0x247665,{'saveTo':_0x2babfb},function(_0x44d0f8,_0x1c0a10){if(_0x44d0f8)return _0xe08cd1(_0x44d0f8);return _0x3b3ad2(_0x1c0a10);});})['then'](function(){return new BPromise(function(_0x355494,_0x16907c){rimraf(_0x247665,function(_0x5a86ca){if(_0x5a86ca)_0x16907c(_0x5a86ca);return _0x355494();});});})['then'](function(){return _0x2ad8d6[_0x3a36('0x56')](_0x2babfb,_0x3911f0,function(_0x194738){if(_0x194738){console[_0x3a36('0x79')](_0x3a36('0x7a'),_0x194738);}else{fs[_0x3a36('0x7b')](_0x2babfb);}});});});}else{return _0x2ad8d6[_0x3a36('0x15')](0xc8);}})[_0x3a36('0x2c')](handleError(_0x2ad8d6,null));};