Built motion from commit da617fac.|2.6.6
[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 _0x92ed=['params','keys','filters','model','attributes','intersection','fields','length','includeAll','merge','options','find','catch','create','body','destroy','describe','addMessage','ids','getMessages','findOne','OpenchannelMessage','hasOwnProperty','order','sort','where','pick','filter','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','include','findAll','rows','addTags','omit','Tag','color','emit','openchannelInteractionTags:save','removeTags','download','unix','toString','join','root','server','files','tmp','attachments','transcript-%d-%s.zip','User','fullname','push','CmContact','Contact','lastName','Attachment','Messages','createdAt','direction','secret','read','OpenchannelAccount','Account','Owner','get','Openchannel','closed','closedAt','disposition','threadId','Public','basename','existsSync','createReadStream','pipe','createWriteStream','System','firstName','value','renderFile','downloadInteraction.ejs','transcript-','Unable\x20to\x20delete\x20zip\x20file','unlinkSync','rimraf','zip-dir','util','lodash','ioredis','../../components/interaction/service','../../components/parsers/qs','../../components/export/pdf','../../config/logger','api','../../mysqldb','defaults','localhost','redis','register','sendStatus','status','offset','limit','undefined','count','Content-Range','update','then','end','error','stack','name','send','map','OpenchannelInteraction','rawAttributes','fieldName','key','getOptions','openchannel','query','type','from'];(function(_0x5b5d0a,_0x1ad092){var _0x9777f6=function(_0x4d938e){while(--_0x4d938e){_0x5b5d0a['push'](_0x5b5d0a['shift']());}};_0x9777f6(++_0x1ad092);}(_0x92ed,0xd5));var _0xd92e=function(_0x52d481,_0x5cef5c){_0x52d481=_0x52d481-0x0;var _0x3c4aa7=_0x92ed[_0x52d481];return _0x3c4aa7;};'use strict';var rimraf=require(_0xd92e('0x0'));var zipdir=require(_0xd92e('0x1'));var moment=require('moment');var util=require(_0xd92e('0x2'));var path=require('path');var ejs=require('ejs');var fs=require('fs');var _=require(_0xd92e('0x3'));var Redis=require(_0xd92e('0x4'));var interaction=require(_0xd92e('0x5'));var qs=require(_0xd92e('0x6'));var pdf=require(_0xd92e('0x7'));var logger=require(_0xd92e('0x8'))(_0xd92e('0x9'));var config=require('../../config/environment');var db=require(_0xd92e('0xa'))['db'];config['redis']=_[_0xd92e('0xb')](config['redis'],{'host':_0xd92e('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xd92e('0xd')]));require('./openchannelInteraction.socket')[_0xd92e('0xe')](socket);function respondWithStatusCode(_0x48acb0,_0x3b0e3a){_0x3b0e3a=_0x3b0e3a||0xcc;return function(_0x465956){if(_0x465956){return _0x48acb0[_0xd92e('0xf')](_0x3b0e3a);}return _0x48acb0[_0xd92e('0x10')](_0x3b0e3a)['end']();};}function respondWithResult(_0x638d3c,_0x2662ec){_0x2662ec=_0x2662ec||0xc8;return function(_0x424203){if(_0x424203){return _0x638d3c[_0xd92e('0x10')](_0x2662ec)['json'](_0x424203);}};}function respondWithFilteredResult(_0x2c2254,_0x2b4706){return function(_0x376281){if(_0x376281){var _0x257ba0=typeof _0x2b4706[_0xd92e('0x11')]==='undefined'&&typeof _0x2b4706[_0xd92e('0x12')]===_0xd92e('0x13');var _0x1972d8=_0x376281[_0xd92e('0x14')];var _0x430770=_0x257ba0?0x0:_0x2b4706[_0xd92e('0x11')];var _0x5a6469=_0x257ba0?_0x376281[_0xd92e('0x14')]:_0x2b4706[_0xd92e('0x11')]+_0x2b4706[_0xd92e('0x12')];var _0x28a11d;if(_0x5a6469>=_0x1972d8){_0x5a6469=_0x1972d8;_0x28a11d=0xc8;}else{_0x28a11d=0xce;}_0x2c2254[_0xd92e('0x10')](_0x28a11d);return _0x2c2254['set'](_0xd92e('0x15'),_0x430770+'-'+_0x5a6469+'/'+_0x1972d8)['json'](_0x376281);}return null;};}function saveUpdates(_0x503c8f){return function(_0x5e8cfc){if(_0x5e8cfc){return _0x5e8cfc[_0xd92e('0x16')](_0x503c8f)['then'](function(_0x430f9f){return _0x430f9f;});}return null;};}function removeEntity(_0x7fac90){return function(_0x1ac62b){if(_0x1ac62b){return _0x1ac62b['destroy']()[_0xd92e('0x17')](function(){_0x7fac90['status'](0xcc)[_0xd92e('0x18')]();});}};}function handleEntityNotFound(_0x3670be){return function(_0x29c14b){if(!_0x29c14b){_0x3670be[_0xd92e('0xf')](0x194);}return _0x29c14b;};}function handleError(_0x19ffc3,_0x3ad458){_0x3ad458=_0x3ad458||0x1f4;return function(_0x4cfa82){logger[_0xd92e('0x19')](_0x4cfa82[_0xd92e('0x1a')]);if(_0x4cfa82[_0xd92e('0x1b')]){delete _0x4cfa82[_0xd92e('0x1b')];}_0x19ffc3[_0xd92e('0x10')](_0x3ad458)[_0xd92e('0x1c')](_0x4cfa82);};}exports['index']=function(_0x3869e3,_0xb2bbe7){var _0x310c13={};var _0x2304a6=_[_0xd92e('0x1d')](db[_0xd92e('0x1e')][_0xd92e('0x1f')],function(_0x438df4){return{'name':_0x438df4[_0xd92e('0x20')],'type':_0x438df4['type'][_0xd92e('0x21')]};});_0x310c13=qs[_0xd92e('0x22')](_0x2304a6,_0x3869e3);return interaction['findAll'](_0xd92e('0x23'),_0x3869e3[_0xd92e('0x24')],_0x3869e3['user'],_0x310c13,_0x2304a6)['then'](respondWithFilteredResult(_0xb2bbe7,_0x310c13))['catch'](handleError(_0xb2bbe7,null));};exports['show']=function(_0x1073ca,_0x97800c){var _0x462d5c={};if(_0x1073ca[_0xd92e('0x24')][_0xd92e('0x25')]&&_0x1073ca[_0xd92e('0x24')][_0xd92e('0x25')]==='from'){_0x462d5c[_0xd92e('0x26')]=_0x1073ca[_0xd92e('0x27')]['id'];}else{_0x462d5c['id']=_0x1073ca[_0xd92e('0x27')]['id'];}var _0x2c208d={'raw':![],'where':_0x462d5c},_0x110cab={};_0x110cab['model']=_[_0xd92e('0x28')](db[_0xd92e('0x1e')]['rawAttributes']);_0x110cab[_0xd92e('0x24')]=_[_0xd92e('0x28')](_0x1073ca[_0xd92e('0x24')]);_0x110cab[_0xd92e('0x29')]=_['intersection'](_0x110cab[_0xd92e('0x2a')],_0x110cab[_0xd92e('0x24')]);_0x2c208d[_0xd92e('0x2b')]=_[_0xd92e('0x2c')](_0x110cab[_0xd92e('0x2a')],qs[_0xd92e('0x2d')](_0x1073ca[_0xd92e('0x24')][_0xd92e('0x2d')]));_0x2c208d[_0xd92e('0x2b')]=_0x2c208d['attributes'][_0xd92e('0x2e')]?_0x2c208d['attributes']:_0x110cab[_0xd92e('0x2a')];if(_0x1073ca['query'][_0xd92e('0x2f')]){_0x2c208d['include']=[{'all':!![]}];}_0x2c208d=_[_0xd92e('0x30')]({},_0x2c208d,_0x1073ca[_0xd92e('0x31')]);return db[_0xd92e('0x1e')][_0xd92e('0x32')](_0x2c208d)['then'](handleEntityNotFound(_0x97800c,null))[_0xd92e('0x17')](respondWithResult(_0x97800c,null))[_0xd92e('0x33')](handleError(_0x97800c,null));};exports[_0xd92e('0x34')]=function(_0x5b059c,_0x11bba4){return db['OpenchannelInteraction'][_0xd92e('0x34')](_0x5b059c[_0xd92e('0x35')],{})['then'](respondWithResult(_0x11bba4,0xc9))[_0xd92e('0x33')](handleError(_0x11bba4,null));};exports[_0xd92e('0x16')]=function(_0x96099,_0x9c48c){if(_0x96099['body']['id']){delete _0x96099[_0xd92e('0x35')]['id'];}return db[_0xd92e('0x1e')][_0xd92e('0x32')]({'where':{'id':_0x96099[_0xd92e('0x27')]['id']}})[_0xd92e('0x17')](handleEntityNotFound(_0x9c48c,null))['then'](saveUpdates(_0x96099[_0xd92e('0x35')],null))[_0xd92e('0x17')](respondWithResult(_0x9c48c,null))['catch'](handleError(_0x9c48c,null));};exports[_0xd92e('0x36')]=function(_0x371545,_0x3ccfd0){return db['OpenchannelInteraction']['find']({'where':{'id':_0x371545[_0xd92e('0x27')]['id']}})['then'](handleEntityNotFound(_0x3ccfd0,null))[_0xd92e('0x17')](removeEntity(_0x3ccfd0,null))[_0xd92e('0x33')](handleError(_0x3ccfd0,null));};exports[_0xd92e('0x37')]=function(_0xa044ec,_0x1a7b36){return db[_0xd92e('0x1e')]['describe']()[_0xd92e('0x17')](respondWithResult(_0x1a7b36,null))[_0xd92e('0x33')](handleError(_0x1a7b36,null));};exports[_0xd92e('0x38')]=function(_0x4f30d5,_0x12ccab){return db['OpenchannelMessage']['find']({'where':{'id':_0x4f30d5[_0xd92e('0x27')]['id']}})[_0xd92e('0x17')](handleEntityNotFound(_0x12ccab,null))[_0xd92e('0x17')](function(_0x5c0626){if(_0x5c0626){return _0x5c0626[_0xd92e('0x38')](_0x4f30d5[_0xd92e('0x35')][_0xd92e('0x39')],_['omit'](_0x4f30d5['body'],['ids','id'])||{});}})[_0xd92e('0x17')](respondWithResult(_0x12ccab,null))['catch'](handleError(_0x12ccab,null));};exports[_0xd92e('0x3a')]=function(_0x584244,_0x2e223f){var _0xa0bc3a={'raw':![],'where':{}};var _0x107196={};var _0x3e3ec0={'count':0x0,'rows':[]};return db['OpenchannelInteraction'][_0xd92e('0x3b')]({'where':{'id':_0x584244[_0xd92e('0x27')]['id']}})['then'](handleEntityNotFound(_0x2e223f,null))[_0xd92e('0x17')](function(_0x52b9cd){if(_0x52b9cd){_0x107196[_0xd92e('0x2a')]=_['keys'](db[_0xd92e('0x3c')][_0xd92e('0x1f')]);_0x107196[_0xd92e('0x24')]=_[_0xd92e('0x28')](_0x584244['query']);_0x107196[_0xd92e('0x29')]=_[_0xd92e('0x2c')](_0x107196[_0xd92e('0x2a')],_0x107196[_0xd92e('0x24')]);_0xa0bc3a[_0xd92e('0x2b')]=_[_0xd92e('0x2c')](_0x107196[_0xd92e('0x2a')],qs[_0xd92e('0x2d')](_0x584244['query'][_0xd92e('0x2d')]));_0xa0bc3a[_0xd92e('0x2b')]=_0xa0bc3a[_0xd92e('0x2b')][_0xd92e('0x2e')]?_0xa0bc3a[_0xd92e('0x2b')]:_0x107196[_0xd92e('0x2a')];if(!_0x584244[_0xd92e('0x24')][_0xd92e('0x3d')]('nolimit')){_0xa0bc3a[_0xd92e('0x12')]=qs[_0xd92e('0x12')](_0x584244[_0xd92e('0x24')]['limit']);_0xa0bc3a['offset']=qs['offset'](_0x584244['query']['offset']);}_0xa0bc3a[_0xd92e('0x3e')]=qs[_0xd92e('0x3f')](_0x584244['query'][_0xd92e('0x3f')]);_0xa0bc3a[_0xd92e('0x40')]=qs['filters'](_[_0xd92e('0x41')](_0x584244[_0xd92e('0x24')],_0x107196[_0xd92e('0x29')]));_0xa0bc3a[_0xd92e('0x40')]['OpenchannelInteractionId']=_0x52b9cd['id'];if(_0x584244['query']['filter']){_0xa0bc3a[_0xd92e('0x40')]=_[_0xd92e('0x30')](_0xa0bc3a[_0xd92e('0x40')],{'$or':_[_0xd92e('0x1d')](_0xa0bc3a[_0xd92e('0x2b')],function(_0xb9e20){var _0x2440c8={};_0x2440c8[_0xb9e20]={'$like':'%'+_0x584244[_0xd92e('0x24')][_0xd92e('0x42')]+'%'};return _0x2440c8;})});}if(_0x584244[_0xd92e('0x24')][_0xd92e('0x43')]){var _0x1c1e6d=_0x584244[_0xd92e('0x24')][_0xd92e('0x43')][_0xd92e('0x44')](',');var _0x843b38={};_0x843b38[_0x1c1e6d[0x0]]={'$gte':moment(_0x1c1e6d[0x1])[_0xd92e('0x45')](_0xd92e('0x46'))};_0xa0bc3a[_0xd92e('0x40')]=_[_0xd92e('0x30')](_0xa0bc3a[_0xd92e('0x40')],_0x843b38);}_0xa0bc3a=_['merge']({},_0xa0bc3a,_0x584244[_0xd92e('0x31')]);return db[_0xd92e('0x3c')][_0xd92e('0x14')]({'where':_0xa0bc3a[_0xd92e('0x40')]})[_0xd92e('0x17')](function(_0x538e6c){_0x3e3ec0[_0xd92e('0x14')]=_0x538e6c;if(_0x584244[_0xd92e('0x24')][_0xd92e('0x2f')]){_0xa0bc3a[_0xd92e('0x47')]=[{'all':!![]}];}return db['OpenchannelMessage'][_0xd92e('0x48')](_0xa0bc3a);})[_0xd92e('0x17')](function(_0x3dd77e){_0x3e3ec0[_0xd92e('0x49')]=_0x3dd77e;return _0x3e3ec0;});}})[_0xd92e('0x17')](respondWithFilteredResult(_0x2e223f,_0xa0bc3a))[_0xd92e('0x33')](handleError(_0x2e223f,null));};exports[_0xd92e('0x4a')]=function(_0x222510,_0x5e2094){return db[_0xd92e('0x1e')]['find']({'where':{'id':_0x222510['params']['id']}})[_0xd92e('0x17')](handleEntityNotFound(_0x5e2094,null))['then'](function(_0x14dc9e){if(_0x14dc9e){return _0x14dc9e['setTags'](_0x222510[_0xd92e('0x35')][_0xd92e('0x39')],_[_0xd92e('0x4b')](_0x222510['body'],[_0xd92e('0x39'),'id'])||{})['spread'](function(){return db[_0xd92e('0x4c')][_0xd92e('0x48')]({'attributes':['id','name',_0xd92e('0x4d')],'where':{'id':_0x222510[_0xd92e('0x35')][_0xd92e('0x39')]}});})[_0xd92e('0x17')](function(_0x5340f0){socket[_0xd92e('0x4e')](_0xd92e('0x4f'),{'id':Number(_0x222510[_0xd92e('0x27')]['id']),'tags':_0x5340f0||[]});return{'id':Number(_0x222510[_0xd92e('0x27')]['id']),'tags':_0x5340f0||[]};});}})[_0xd92e('0x17')](respondWithResult(_0x5e2094,null))[_0xd92e('0x33')](handleError(_0x5e2094,null));};exports[_0xd92e('0x50')]=function(_0x4ad788,_0x373f47){return db[_0xd92e('0x1e')][_0xd92e('0x32')]({'where':{'id':_0x4ad788['params']['id']}})[_0xd92e('0x17')](handleEntityNotFound(_0x373f47,null))['then'](function(_0x468ced){if(_0x468ced){return _0x468ced[_0xd92e('0x50')](_0x4ad788['query'][_0xd92e('0x39')]);}})[_0xd92e('0x17')](respondWithStatusCode(_0x373f47,null))[_0xd92e('0x33')](handleError(_0x373f47,null));};exports[_0xd92e('0x51')]=function(_0x2b1b83,_0x1a6e01){var _0x575c7c=moment()[_0xd92e('0x52')]()[_0xd92e('0x53')]();var _0x18a856=path[_0xd92e('0x54')](config[_0xd92e('0x55')],_0xd92e('0x56'),_0xd92e('0x57'),_0xd92e('0x58'));var _0x368ce6=path['join'](config['root'],_0xd92e('0x56'),_0xd92e('0x57'),_0xd92e('0x59'));var _0x53c517=path['join'](_0x18a856,_0x575c7c);var _0x50dfa8=util[_0xd92e('0x45')](_0xd92e('0x5a'),_0x2b1b83[_0xd92e('0x27')]['id'],_0x575c7c);var _0x583c0b=path[_0xd92e('0x54')](_0x18a856,_0x50dfa8);var _0x532be6=[];_0x532be6['push']({'model':db[_0xd92e('0x5b')],'as':_0xd92e('0x5b'),'attributes':['id',_0xd92e('0x5c')],'raw':!![]});_0x532be6[_0xd92e('0x5d')]({'model':db[_0xd92e('0x5e')],'as':_0xd92e('0x5f'),'attributes':['id','firstName',_0xd92e('0x60')],'raw':!![]});if(_0x2b1b83[_0xd92e('0x24')]['attachments']){_0x532be6[_0xd92e('0x5d')]({'model':db[_0xd92e('0x61')],'as':_0xd92e('0x61'),'raw':!![]});}var _0x5b98d0=[{'model':db[_0xd92e('0x3c')],'as':_0xd92e('0x62'),'attributes':['id',_0xd92e('0x35'),_0xd92e('0x63'),_0xd92e('0x64'),_0xd92e('0x65'),_0xd92e('0x66')],'include':_0x532be6}];_0x5b98d0[_0xd92e('0x5d')]({'model':db[_0xd92e('0x67')],'as':_0xd92e('0x68'),'attributes':['id','name']});_0x5b98d0[_0xd92e('0x5d')]({'model':db[_0xd92e('0x5b')],'as':_0xd92e('0x69'),'attributes':['id',_0xd92e('0x5c')]});return db['OpenchannelInteraction'][_0xd92e('0x32')]({'where':{'id':_0x2b1b83[_0xd92e('0x27')]['id']},'include':_0x5b98d0})['then'](handleEntityNotFound(_0x1a6e01,null))[_0xd92e('0x17')](function(_0x31b8cc){if(_0x31b8cc){var _0x228ccb=_0x31b8cc[_0xd92e('0x6a')]({'plain':!![]});fs['mkdirSync'](_0x53c517);var _0x10c702={'channel':_0xd92e('0x6b'),'account':_0x228ccb[_0xd92e('0x68')]['name'],'agent':_0x228ccb[_0xd92e('0x69')]?_0x228ccb['Owner']['fullname']:'N.A.','createdAt':moment(_0x228ccb['createdAt'])['format'](_0xd92e('0x46'))[_0xd92e('0x53')](),'closedAt':_0x228ccb[_0xd92e('0x6c')]?moment(_0x228ccb[_0xd92e('0x6d')])[_0xd92e('0x45')](_0xd92e('0x46'))[_0xd92e('0x53')]():'','disposition':_0x228ccb[_0xd92e('0x6e')],'visibility':_0x228ccb[_0xd92e('0x6f')]?_0xd92e('0x70'):'Private','messages':_(_0x228ccb[_0xd92e('0x62')])[_0xd92e('0x42')]({'secret':![]})[_0xd92e('0x1d')](function(_0x236439){if(_0x236439[_0xd92e('0x61')]){var _0xf2a0f1=path[_0xd92e('0x54')](_0x368ce6,_0x236439[_0xd92e('0x61')][_0xd92e('0x71')]);if(fs[_0xd92e('0x72')](_0xf2a0f1)){fs[_0xd92e('0x73')](_0xf2a0f1)[_0xd92e('0x74')](fs[_0xd92e('0x75')](path[_0xd92e('0x54')](_0x53c517,_0x236439[_0xd92e('0x61')]['basename'])));}}return{'date':moment(_0x236439['createdAt'])[_0xd92e('0x45')](_0xd92e('0x46'))['toString'](),'sender':_0x236439['direction']==='out'?_0x236439[_0xd92e('0x5b')]?_0x236439[_0xd92e('0x5b')][_0xd92e('0x5c')]:_0xd92e('0x76'):_0x236439[_0xd92e('0x5f')][_0xd92e('0x77')]+(_0x236439['Contact'][_0xd92e('0x60')]?'\x20'+_0x236439[_0xd92e('0x5f')][_0xd92e('0x60')]:''),'body':_0x236439['Attachment']?_0x236439[_0xd92e('0x61')][_0xd92e('0x71')]:_0x236439['body'],'direction':_0x236439[_0xd92e('0x64')]==='out'?'A':'C','secret':_0x236439['secret'],'read':_0x236439[_0xd92e('0x66')],'attachment':_0x236439[_0xd92e('0x61')]};})[_0xd92e('0x78')]()};return ejs[_0xd92e('0x79')](path[_0xd92e('0x54')](config['root'],_0xd92e('0x56'),'views',_0xd92e('0x7a')),{'interaction':_0x10c702})[_0xd92e('0x17')](function(_0x46af5f){var _0x38e1bd=path[_0xd92e('0x54')](_0x53c517,_0xd92e('0x7b')+_0x228ccb['id']+'-'+_0x575c7c+'.pdf');var _0x353d32={'path':_0x38e1bd,'channel':_0xd92e('0x6b'),'interactionId':_0x228ccb['id']};return pdf['createPdfFromHTML'](_0x46af5f,_0x353d32);})[_0xd92e('0x17')](function(){return new Promise(function(_0x1480a0,_0x59ec27){zipdir(_0x53c517,{'saveTo':_0x583c0b},function(_0x177a96,_0x42e13b){if(_0x177a96)return _0x59ec27(_0x177a96);return _0x1480a0(_0x42e13b);});})[_0xd92e('0x17')](function(){return new Promise(function(_0x3f89e7,_0x1000ef){rimraf(_0x53c517,function(_0x140c83){if(_0x140c83)_0x1000ef(_0x140c83);return _0x3f89e7();});});})['then'](function(){return _0x1a6e01[_0xd92e('0x51')](_0x583c0b,_0x50dfa8,function(_0x5f4fa5){if(_0x5f4fa5){logger[_0xd92e('0x19')](_0xd92e('0x7c'),_0x5f4fa5);}else{fs[_0xd92e('0x7d')](_0x583c0b);}});});});}else{return _0x1a6e01[_0xd92e('0xf')](0xc8);}})[_0xd92e('0x33')](handleError(_0x1a6e01,null));};