Built motion from commit da617fac.|2.6.6
[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 _0x21bc=['emit','smsInteractionTags:save','removeTags','download','unix','toString','join','root','server','files','format','transcript-%d-%s.zip','push','User','CmContact','Contact','firstName','Messages','createdAt','direction','Owner','fullname','mkdirSync','Sms','Account','N.A.','YYYY-MM-DD\x20HH:mm:ss','closed','closedAt','disposition','System','lastName','out','secret','read','value','renderFile','views','transcript-','createPdfFromHTML','log','err','unlinkSync','rimraf','zip-dir','util','path','ejs','lodash','ioredis','../../components/interaction/service','../../components/parsers/qs','../../components/export/pdf','../../config/logger','api','../../config/environment','redis','defaults','localhost','socket.io-emitter','./smsInteraction.socket','register','sendStatus','status','end','json','offset','limit','undefined','count','Content-Range','then','destroy','error','name','index','map','SmsInteraction','rawAttributes','fieldName','type','key','findAll','query','user','catch','params','model','keys','filters','intersection','attributes','fields','length','includeAll','include','merge','options','find','create','body','update','describe','addMessage','SmsMessage','ids','omit','getMessages','findOne','hasOwnProperty','nolimit','sort','where','SmsInteractionId','filter','$gte','split','rows','addTags','spread','color'];(function(_0x3af990,_0x1b5e7f){var _0x4d6065=function(_0x52c923){while(--_0x52c923){_0x3af990['push'](_0x3af990['shift']());}};_0x4d6065(++_0x1b5e7f);}(_0x21bc,0x11d));var _0xc21b=function(_0x4565bf,_0x5ad9d6){_0x4565bf=_0x4565bf-0x0;var _0x5610ba=_0x21bc[_0x4565bf];return _0x5610ba;};'use strict';var rimraf=require(_0xc21b('0x0'));var zipdir=require(_0xc21b('0x1'));var moment=require('moment');var BPromise=require('bluebird');var util=require(_0xc21b('0x2'));var path=require(_0xc21b('0x3'));var ejs=require(_0xc21b('0x4'));var fs=require('fs');var _=require(_0xc21b('0x5'));var Redis=require(_0xc21b('0x6'));var interaction=require(_0xc21b('0x7'));var qs=require(_0xc21b('0x8'));var pdf=require(_0xc21b('0x9'));var logger=require(_0xc21b('0xa'))(_0xc21b('0xb'));var config=require(_0xc21b('0xc'));var db=require('../../mysqldb')['db'];config[_0xc21b('0xd')]=_[_0xc21b('0xe')](config[_0xc21b('0xd')],{'host':_0xc21b('0xf'),'port':0x18eb});var socket=require(_0xc21b('0x10'))(new Redis(config[_0xc21b('0xd')]));require(_0xc21b('0x11'))[_0xc21b('0x12')](socket);function respondWithStatusCode(_0x53c540,_0x5f2455){_0x5f2455=_0x5f2455||0xcc;return function(_0x2e8e95){if(_0x2e8e95){return _0x53c540[_0xc21b('0x13')](_0x5f2455);}return _0x53c540[_0xc21b('0x14')](_0x5f2455)[_0xc21b('0x15')]();};}function respondWithResult(_0x2c6e40,_0x4a6eca){_0x4a6eca=_0x4a6eca||0xc8;return function(_0xb8d3bf){if(_0xb8d3bf){return _0x2c6e40['status'](_0x4a6eca)[_0xc21b('0x16')](_0xb8d3bf);}};}function respondWithFilteredResult(_0x1e9ed5,_0x36a9f0){return function(_0x766b95){if(_0x766b95){var _0x59798d=typeof _0x36a9f0[_0xc21b('0x17')]==='undefined'&&typeof _0x36a9f0[_0xc21b('0x18')]===_0xc21b('0x19');var _0x59663a=_0x766b95['count'];var _0x5ad87c=_0x59798d?0x0:_0x36a9f0['offset'];var _0x377d54=_0x59798d?_0x766b95[_0xc21b('0x1a')]:_0x36a9f0['offset']+_0x36a9f0['limit'];var _0x1c1bd4;if(_0x377d54>=_0x59663a){_0x377d54=_0x59663a;_0x1c1bd4=0xc8;}else{_0x1c1bd4=0xce;}_0x1e9ed5['status'](_0x1c1bd4);return _0x1e9ed5['set'](_0xc21b('0x1b'),_0x5ad87c+'-'+_0x377d54+'/'+_0x59663a)[_0xc21b('0x16')](_0x766b95);}return null;};}function saveUpdates(_0x583bc3){return function(_0x4e4eb8){if(_0x4e4eb8){return _0x4e4eb8['update'](_0x583bc3)[_0xc21b('0x1c')](function(_0x1e52d4){return _0x1e52d4;});}return null;};}function removeEntity(_0x4a7068){return function(_0xfbc7a4){if(_0xfbc7a4){return _0xfbc7a4[_0xc21b('0x1d')]()['then'](function(){_0x4a7068[_0xc21b('0x14')](0xcc)[_0xc21b('0x15')]();});}};}function handleEntityNotFound(_0x3f8d73){return function(_0x444411){if(!_0x444411){_0x3f8d73['sendStatus'](0x194);}return _0x444411;};}function handleError(_0x43d4eb,_0xb2a09b){_0xb2a09b=_0xb2a09b||0x1f4;return function(_0x3d3f33){logger[_0xc21b('0x1e')](_0x3d3f33['stack']);if(_0x3d3f33[_0xc21b('0x1f')]){delete _0x3d3f33['name'];}_0x43d4eb[_0xc21b('0x14')](_0xb2a09b)['send'](_0x3d3f33);};}exports[_0xc21b('0x20')]=function(_0x9a6995,_0x16a414){var _0x46f8be={};var _0x5adc48=_[_0xc21b('0x21')](db[_0xc21b('0x22')][_0xc21b('0x23')],function(_0x5772cc){return{'name':_0x5772cc[_0xc21b('0x24')],'type':_0x5772cc[_0xc21b('0x25')][_0xc21b('0x26')]};});_0x46f8be=qs['getOptions'](_0x5adc48,_0x9a6995);return interaction[_0xc21b('0x27')]('sms',_0x9a6995[_0xc21b('0x28')],_0x9a6995[_0xc21b('0x29')],_0x46f8be,_0x5adc48)[_0xc21b('0x1c')](respondWithFilteredResult(_0x16a414,_0x46f8be))[_0xc21b('0x2a')](handleError(_0x16a414,null));};exports['show']=function(_0x17a297,_0x130719){var _0x19fa86={'raw':![],'where':{'id':_0x17a297[_0xc21b('0x2b')]['id']}},_0x155041={};_0x155041[_0xc21b('0x2c')]=_[_0xc21b('0x2d')](db[_0xc21b('0x22')][_0xc21b('0x23')]);_0x155041[_0xc21b('0x28')]=_[_0xc21b('0x2d')](_0x17a297[_0xc21b('0x28')]);_0x155041[_0xc21b('0x2e')]=_[_0xc21b('0x2f')](_0x155041[_0xc21b('0x2c')],_0x155041[_0xc21b('0x28')]);_0x19fa86[_0xc21b('0x30')]=_[_0xc21b('0x2f')](_0x155041[_0xc21b('0x2c')],qs['fields'](_0x17a297[_0xc21b('0x28')][_0xc21b('0x31')]));_0x19fa86['attributes']=_0x19fa86[_0xc21b('0x30')][_0xc21b('0x32')]?_0x19fa86[_0xc21b('0x30')]:_0x155041[_0xc21b('0x2c')];if(_0x17a297['query'][_0xc21b('0x33')]){_0x19fa86[_0xc21b('0x34')]=[{'all':!![]}];}_0x19fa86=_[_0xc21b('0x35')]({},_0x19fa86,_0x17a297[_0xc21b('0x36')]);return db[_0xc21b('0x22')][_0xc21b('0x37')](_0x19fa86)[_0xc21b('0x1c')](handleEntityNotFound(_0x130719,null))['then'](respondWithResult(_0x130719,null))[_0xc21b('0x2a')](handleError(_0x130719,null));};exports[_0xc21b('0x38')]=function(_0x448cf6,_0x501ee4){return db[_0xc21b('0x22')][_0xc21b('0x38')](_0x448cf6[_0xc21b('0x39')],{})['then'](respondWithResult(_0x501ee4,0xc9))[_0xc21b('0x2a')](handleError(_0x501ee4,null));};exports[_0xc21b('0x3a')]=function(_0x535c2b,_0x459b5c){if(_0x535c2b['body']['id']){delete _0x535c2b[_0xc21b('0x39')]['id'];}return db[_0xc21b('0x22')][_0xc21b('0x37')]({'where':{'id':_0x535c2b[_0xc21b('0x2b')]['id']}})[_0xc21b('0x1c')](handleEntityNotFound(_0x459b5c,null))[_0xc21b('0x1c')](saveUpdates(_0x535c2b[_0xc21b('0x39')],null))['then'](respondWithResult(_0x459b5c,null))[_0xc21b('0x2a')](handleError(_0x459b5c,null));};exports[_0xc21b('0x1d')]=function(_0x8a22ec,_0x712445){return db['SmsInteraction'][_0xc21b('0x37')]({'where':{'id':_0x8a22ec[_0xc21b('0x2b')]['id']}})[_0xc21b('0x1c')](handleEntityNotFound(_0x712445,null))[_0xc21b('0x1c')](removeEntity(_0x712445,null))[_0xc21b('0x2a')](handleError(_0x712445,null));};exports[_0xc21b('0x3b')]=function(_0x1e340d,_0x592480){return db[_0xc21b('0x22')]['describe']()[_0xc21b('0x1c')](respondWithResult(_0x592480,null))[_0xc21b('0x2a')](handleError(_0x592480,null));};exports[_0xc21b('0x3c')]=function(_0xc1d6c2,_0xc0c1c3){return db[_0xc21b('0x3d')][_0xc21b('0x37')]({'where':{'id':_0xc1d6c2['params']['id']}})[_0xc21b('0x1c')](handleEntityNotFound(_0xc0c1c3,null))[_0xc21b('0x1c')](function(_0x4ec1c2){if(_0x4ec1c2){return _0x4ec1c2['addMessage'](_0xc1d6c2['body'][_0xc21b('0x3e')],_[_0xc21b('0x3f')](_0xc1d6c2[_0xc21b('0x39')],[_0xc21b('0x3e'),'id'])||{});}})[_0xc21b('0x1c')](respondWithResult(_0xc0c1c3,null))[_0xc21b('0x2a')](handleError(_0xc0c1c3,null));};exports[_0xc21b('0x40')]=function(_0xe62db9,_0x3ab6e9){var _0x1d29c5={'raw':![],'where':{}};var _0x5977ce={};var _0xf800fa={'count':0x0,'rows':[]};return db['SmsInteraction'][_0xc21b('0x41')]({'where':{'id':_0xe62db9[_0xc21b('0x2b')]['id']}})[_0xc21b('0x1c')](handleEntityNotFound(_0x3ab6e9,null))['then'](function(_0x4fa6c5){if(_0x4fa6c5){_0x5977ce['model']=_[_0xc21b('0x2d')](db[_0xc21b('0x3d')]['rawAttributes']);_0x5977ce['query']=_['keys'](_0xe62db9[_0xc21b('0x28')]);_0x5977ce[_0xc21b('0x2e')]=_[_0xc21b('0x2f')](_0x5977ce[_0xc21b('0x2c')],_0x5977ce['query']);_0x1d29c5[_0xc21b('0x30')]=_[_0xc21b('0x2f')](_0x5977ce[_0xc21b('0x2c')],qs['fields'](_0xe62db9[_0xc21b('0x28')][_0xc21b('0x31')]));_0x1d29c5[_0xc21b('0x30')]=_0x1d29c5['attributes'][_0xc21b('0x32')]?_0x1d29c5[_0xc21b('0x30')]:_0x5977ce[_0xc21b('0x2c')];if(!_0xe62db9['query'][_0xc21b('0x42')](_0xc21b('0x43'))){_0x1d29c5['limit']=qs[_0xc21b('0x18')](_0xe62db9[_0xc21b('0x28')][_0xc21b('0x18')]);_0x1d29c5[_0xc21b('0x17')]=qs[_0xc21b('0x17')](_0xe62db9[_0xc21b('0x28')][_0xc21b('0x17')]);}_0x1d29c5['order']=qs[_0xc21b('0x44')](_0xe62db9[_0xc21b('0x28')][_0xc21b('0x44')]);_0x1d29c5[_0xc21b('0x45')]=qs[_0xc21b('0x2e')](_['pick'](_0xe62db9[_0xc21b('0x28')],_0x5977ce[_0xc21b('0x2e')]));_0x1d29c5[_0xc21b('0x45')][_0xc21b('0x46')]=_0x4fa6c5['id'];if(_0xe62db9[_0xc21b('0x28')][_0xc21b('0x47')]){_0x1d29c5['where']=_[_0xc21b('0x35')](_0x1d29c5[_0xc21b('0x45')],{'$or':_[_0xc21b('0x21')](_0x1d29c5[_0xc21b('0x30')],function(_0x18e75d){var _0x144790={};_0x144790[_0x18e75d]={'$like':'%'+_0xe62db9[_0xc21b('0x28')][_0xc21b('0x47')]+'%'};return _0x144790;})});}if(_0xe62db9['query'][_0xc21b('0x48')]){var _0x35454a=_0xe62db9[_0xc21b('0x28')]['$gte'][_0xc21b('0x49')](',');var _0xaafad7={};_0xaafad7[_0x35454a[0x0]]={'$gte':moment(_0x35454a[0x1])['format']('YYYY-MM-DD\x20HH:mm:ss')};_0x1d29c5[_0xc21b('0x45')]=_[_0xc21b('0x35')](_0x1d29c5[_0xc21b('0x45')],_0xaafad7);}_0x1d29c5=_[_0xc21b('0x35')]({},_0x1d29c5,_0xe62db9[_0xc21b('0x36')]);return db['SmsMessage']['count']({'where':_0x1d29c5[_0xc21b('0x45')]})['then'](function(_0x871fa2){_0xf800fa[_0xc21b('0x1a')]=_0x871fa2;if(_0xe62db9[_0xc21b('0x28')][_0xc21b('0x33')]){_0x1d29c5['include']=[{'all':!![]}];}return db[_0xc21b('0x3d')]['findAll'](_0x1d29c5);})[_0xc21b('0x1c')](function(_0xf5d5d4){_0xf800fa[_0xc21b('0x4a')]=_0xf5d5d4;return _0xf800fa;});}})['then'](respondWithFilteredResult(_0x3ab6e9,_0x1d29c5))[_0xc21b('0x2a')](handleError(_0x3ab6e9,null));};exports[_0xc21b('0x4b')]=function(_0x33b6bd,_0x420834){return db['SmsInteraction'][_0xc21b('0x37')]({'where':{'id':_0x33b6bd[_0xc21b('0x2b')]['id']}})[_0xc21b('0x1c')](handleEntityNotFound(_0x420834,null))[_0xc21b('0x1c')](function(_0x3c2970){if(_0x3c2970){return _0x3c2970['setTags'](_0x33b6bd['body'][_0xc21b('0x3e')],_[_0xc21b('0x3f')](_0x33b6bd[_0xc21b('0x39')],[_0xc21b('0x3e'),'id'])||{})[_0xc21b('0x4c')](function(){return db['Tag'][_0xc21b('0x27')]({'attributes':['id',_0xc21b('0x1f'),_0xc21b('0x4d')],'where':{'id':_0x33b6bd['body'][_0xc21b('0x3e')]}});})[_0xc21b('0x1c')](function(_0x278058){socket[_0xc21b('0x4e')](_0xc21b('0x4f'),{'id':Number(_0x33b6bd['params']['id']),'tags':_0x278058||[]});return{'id':Number(_0x33b6bd[_0xc21b('0x2b')]['id']),'tags':_0x278058||[]};});}})[_0xc21b('0x1c')](respondWithResult(_0x420834,null))[_0xc21b('0x2a')](handleError(_0x420834,null));};exports[_0xc21b('0x50')]=function(_0x1c37d6,_0xf87624){return db[_0xc21b('0x22')][_0xc21b('0x37')]({'where':{'id':_0x1c37d6[_0xc21b('0x2b')]['id']}})['then'](handleEntityNotFound(_0xf87624,null))[_0xc21b('0x1c')](function(_0x3d4d54){if(_0x3d4d54){return _0x3d4d54['removeTags'](_0x1c37d6['query']['ids']);}})[_0xc21b('0x1c')](respondWithStatusCode(_0xf87624,null))[_0xc21b('0x2a')](handleError(_0xf87624,null));};exports[_0xc21b('0x51')]=function(_0x12430b,_0x903c43){var _0x17fe50=moment()[_0xc21b('0x52')]()[_0xc21b('0x53')]();var _0x4b3d7c=path[_0xc21b('0x54')](config[_0xc21b('0x55')],_0xc21b('0x56'),_0xc21b('0x57'),'tmp');var _0x56bea3=path[_0xc21b('0x54')](_0x4b3d7c,_0x17fe50);var _0x296033=util[_0xc21b('0x58')](_0xc21b('0x59'),_0x12430b['params']['id'],_0x17fe50);var _0x10a88d=path[_0xc21b('0x54')](_0x4b3d7c,_0x296033);var _0x492ceb=[];_0x492ceb[_0xc21b('0x5a')]({'model':db[_0xc21b('0x5b')],'as':'User','attributes':['id','fullname'],'raw':!![]});_0x492ceb['push']({'model':db[_0xc21b('0x5c')],'as':_0xc21b('0x5d'),'attributes':['id',_0xc21b('0x5e'),'lastName'],'raw':!![]});var _0x5ba58a=[{'model':db[_0xc21b('0x3d')],'as':_0xc21b('0x5f'),'attributes':['id',_0xc21b('0x39'),_0xc21b('0x60'),_0xc21b('0x61'),'secret','read'],'include':_0x492ceb}];_0x5ba58a[_0xc21b('0x5a')]({'model':db['SmsAccount'],'as':'Account','attributes':['id',_0xc21b('0x1f')]});_0x5ba58a[_0xc21b('0x5a')]({'model':db[_0xc21b('0x5b')],'as':_0xc21b('0x62'),'attributes':['id',_0xc21b('0x63')]});return db[_0xc21b('0x22')]['find']({'where':{'id':_0x12430b['params']['id']},'include':_0x5ba58a})[_0xc21b('0x1c')](handleEntityNotFound(_0x903c43,null))[_0xc21b('0x1c')](function(_0x401e06){if(_0x401e06){var _0x7325c2=_0x401e06['get']({'plain':!![]});fs[_0xc21b('0x64')](_0x56bea3);var _0x3883a1={'channel':_0xc21b('0x65'),'account':_0x7325c2[_0xc21b('0x66')]['name'],'agent':_0x7325c2[_0xc21b('0x62')]?_0x7325c2['Owner'][_0xc21b('0x63')]:_0xc21b('0x67'),'createdAt':moment(_0x7325c2[_0xc21b('0x60')])[_0xc21b('0x58')](_0xc21b('0x68'))[_0xc21b('0x53')](),'closedAt':_0x7325c2[_0xc21b('0x69')]?moment(_0x7325c2[_0xc21b('0x6a')])[_0xc21b('0x58')](_0xc21b('0x68'))['toString']():'','disposition':_0x7325c2[_0xc21b('0x6b')],'messages':_(_0x7325c2['Messages'])[_0xc21b('0x47')]({'secret':![]})[_0xc21b('0x21')](function(_0x318041){return{'date':moment(_0x318041[_0xc21b('0x60')])[_0xc21b('0x58')]('YYYY-MM-DD\x20HH:mm:ss')[_0xc21b('0x53')](),'sender':_0x318041['direction']==='out'?_0x318041[_0xc21b('0x5b')]?_0x318041[_0xc21b('0x5b')][_0xc21b('0x63')]:_0xc21b('0x6c'):_0x318041[_0xc21b('0x5d')][_0xc21b('0x5e')]+(_0x318041['Contact'][_0xc21b('0x6d')]?'\x20'+_0x318041[_0xc21b('0x5d')][_0xc21b('0x6d')]:''),'body':_0x318041['body'],'direction':_0x318041[_0xc21b('0x61')]===_0xc21b('0x6e')?'A':'C','secret':_0x318041[_0xc21b('0x6f')],'read':_0x318041[_0xc21b('0x70')]};})[_0xc21b('0x71')]()};return ejs[_0xc21b('0x72')](path[_0xc21b('0x54')](config[_0xc21b('0x55')],'server',_0xc21b('0x73'),'downloadInteraction.ejs'),{'interaction':_0x3883a1})[_0xc21b('0x1c')](function(_0x200c98){var _0x1961a3=path[_0xc21b('0x54')](_0x56bea3,_0xc21b('0x74')+_0x7325c2['id']+'-'+_0x17fe50+'.pdf');var _0x251389={'path':_0x1961a3,'channel':_0xc21b('0x65'),'interactionId':_0x7325c2['id']};return pdf[_0xc21b('0x75')](_0x200c98,_0x251389);})[_0xc21b('0x1c')](function(){return new BPromise(function(_0x459c08,_0x754c07){zipdir(_0x56bea3,{'saveTo':_0x10a88d},function(_0x5398fa,_0x3aa901){if(_0x5398fa)return _0x754c07(_0x5398fa);return _0x459c08(_0x3aa901);});})['then'](function(){return new BPromise(function(_0x5291e5,_0x101829){rimraf(_0x56bea3,function(_0x16bd6a){if(_0x16bd6a)_0x101829(_0x16bd6a);return _0x5291e5();});});})['then'](function(){return _0x903c43[_0xc21b('0x51')](_0x10a88d,_0x296033,function(_0x86e574){if(_0x86e574){console[_0xc21b('0x76')](_0xc21b('0x77'),_0x86e574);}else{fs[_0xc21b('0x78')](_0x10a88d);}});});});}else{return _0x903c43[_0xc21b('0x13')](0xc8);}})[_0xc21b('0x2a')](handleError(_0x903c43,null));};