Built motion from commit (unavailable).|2.0.71
[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 _0x37b6=['merge','filter','map','options','include','tag','push','Tag','distinct','read','OpenchannelMessage','Messages','direction','createdAt','includeAll','User','Users','Contact','Owner','OpenchannelAccount','Account','key','color','findAll','rows','catch','intersection','length','find','create','body','params','describe','addMessage','ids','omit','getMessages','findOne','pick','$gte','split','YYYY-MM-DD\x20HH:mm:ss','setTags','spread','openchannelInteractionTags:save','removeTags','fast-json-patch','request-promise','bluebird','mustache','path','to-csv','ejs','squel','crypto','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','socket.io-emitter','./openchannelInteraction.socket','register','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','OpenchannelInteraction','rawAttributes','model','keys','query','dateStart','dateEnd','filters','attributes','fields','hasOwnProperty','nolimit','order','sort','where','add','day'];(function(_0x2c895a,_0x47ab04){var _0x1c64f2=function(_0x3479a2){while(--_0x3479a2){_0x2c895a['push'](_0x2c895a['shift']());}};_0x1c64f2(++_0x47ab04);}(_0x37b6,0x1ca));var _0x637b=function(_0x1c04dd,_0x36406c){_0x1c04dd=_0x1c04dd-0x0;var _0x50d11c=_0x37b6[_0x1c04dd];return _0x50d11c;};'use strict';var jsonpatch=require(_0x637b('0x0'));var rp=require(_0x637b('0x1'));var moment=require('moment');var BPromise=require(_0x637b('0x2'));var Mustache=require(_0x637b('0x3'));var util=require('util');var path=require(_0x637b('0x4'));var sox=require('sox');var csv=require(_0x637b('0x5'));var ejs=require(_0x637b('0x6'));var fs=require('fs');var _=require('lodash');var squel=require(_0x637b('0x7'));var crypto=require(_0x637b('0x8'));var jsforce=require('jsforce');var deskjs=require(_0x637b('0x9'));var toCsv=require(_0x637b('0x5'));var querystring=require(_0x637b('0xa'));var Papa=require(_0x637b('0xb'));var qs=require(_0x637b('0xc'));var logger=require(_0x637b('0xd'))(_0x637b('0xe'));var utils=require(_0x637b('0xf'));var config=require(_0x637b('0x10'));var db=require(_0x637b('0x11'))['db'];var socket=require(_0x637b('0x12'))({'host':'localhost','port':0x18eb});require(_0x637b('0x13'))[_0x637b('0x14')](socket);function respondWithStatusCode(_0x4c1892,_0x48f2ad){_0x48f2ad=_0x48f2ad||0xcc;return function(_0x1dc153){if(_0x1dc153){return _0x4c1892[_0x637b('0x15')](_0x48f2ad);}return _0x4c1892[_0x637b('0x16')](_0x48f2ad)[_0x637b('0x17')]();};}function respondWithResult(_0x4401e9,_0x49ea0b){_0x49ea0b=_0x49ea0b||0xc8;return function(_0x288711){if(_0x288711){return _0x4401e9[_0x637b('0x16')](_0x49ea0b)[_0x637b('0x18')](_0x288711);}};}function respondWithFilteredResult(_0x5e9ba2,_0x3dc513){return function(_0x135822){if(_0x135822){var _0x4bdfdd=_0x135822[_0x637b('0x19')],_0x1e741f=_0x3dc513[_0x637b('0x1a')],_0x257e3e=_0x3dc513['offset']+_0x3dc513[_0x637b('0x1b')],_0x1d27ce;if(_0x257e3e>=_0x4bdfdd){_0x257e3e=_0x4bdfdd;_0x1d27ce=0xc8;}else{_0x1d27ce=0xce;}_0x5e9ba2[_0x637b('0x16')](_0x1d27ce);return _0x5e9ba2[_0x637b('0x1c')](_0x637b('0x1d'),_0x1e741f+'-'+_0x257e3e+'/'+_0x4bdfdd)[_0x637b('0x18')](_0x135822);}return null;};}function patchUpdates(_0x17f2f8){return function(_0x43ceaa){try{jsonpatch[_0x637b('0x1e')](_0x43ceaa,_0x17f2f8,!![]);}catch(_0x297076){return BPromise[_0x637b('0x1f')](_0x297076);}return _0x43ceaa[_0x637b('0x20')]();};}function saveUpdates(_0x3c91a9,_0x11ed22){return function(_0x193328){if(_0x193328){return _0x193328[_0x637b('0x21')](_0x3c91a9)[_0x637b('0x22')](function(_0x5937b0){return _0x5937b0;});}return null;};}function removeEntity(_0x436f3a,_0x3d3cc4){return function(_0x64c9e0){if(_0x64c9e0){return _0x64c9e0[_0x637b('0x23')]()[_0x637b('0x22')](function(){_0x436f3a[_0x637b('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4e23c2,_0x138d8b){return function(_0x3616fd){if(!_0x3616fd){_0x4e23c2['sendStatus'](0x194);}return _0x3616fd;};}function handleError(_0xbf41,_0x251539){_0x251539=_0x251539||0x1f4;return function(_0x2d78c1){logger[_0x637b('0x24')](_0x2d78c1[_0x637b('0x25')]);if(_0x2d78c1[_0x637b('0x26')]){delete _0x2d78c1[_0x637b('0x26')];}_0xbf41[_0x637b('0x16')](_0x251539)[_0x637b('0x27')](_0x2d78c1);};}exports['index']=function(_0x9b0cee,_0x46ba95){var _0x554f0f={},_0x5bd5d0={},_0x27d30b={'count':0x0,'rows':[]};var _0x5108f6=db[_0x637b('0x28')][_0x637b('0x29')];_0x5bd5d0[_0x637b('0x2a')]=_[_0x637b('0x2b')](_0x5108f6);var _0x2fdb0f={'dateStart':_0x9b0cee[_0x637b('0x2c')][_0x637b('0x2d')],'dateEnd':_0x9b0cee[_0x637b('0x2c')][_0x637b('0x2e')]};delete _0x9b0cee[_0x637b('0x2c')][_0x637b('0x2d')];delete _0x9b0cee[_0x637b('0x2c')][_0x637b('0x2e')];_0x5bd5d0['query']=_['keys'](_0x9b0cee['query']);_0x5bd5d0[_0x637b('0x2f')]=_['intersection'](_0x5bd5d0[_0x637b('0x2a')],_0x5bd5d0[_0x637b('0x2c')]);_0x554f0f[_0x637b('0x30')]=_['intersection'](_0x5bd5d0[_0x637b('0x2a')],qs[_0x637b('0x31')](_0x9b0cee[_0x637b('0x2c')][_0x637b('0x31')]));_0x554f0f[_0x637b('0x30')]=_0x554f0f[_0x637b('0x30')]['length']?_0x554f0f[_0x637b('0x30')]:_0x5bd5d0['model'];if(!_0x9b0cee[_0x637b('0x2c')][_0x637b('0x32')](_0x637b('0x33'))){_0x554f0f[_0x637b('0x1b')]=qs[_0x637b('0x1b')](_0x9b0cee[_0x637b('0x2c')][_0x637b('0x1b')]);_0x554f0f[_0x637b('0x1a')]=qs[_0x637b('0x1a')](_0x9b0cee[_0x637b('0x2c')][_0x637b('0x1a')]);}_0x554f0f[_0x637b('0x34')]=qs[_0x637b('0x35')](_0x9b0cee[_0x637b('0x2c')][_0x637b('0x35')]);_0x554f0f[_0x637b('0x36')]=qs[_0x637b('0x2f')](_['pick'](_0x9b0cee[_0x637b('0x2c')],_0x5bd5d0['filters']));if(_0x2fdb0f[_0x637b('0x2d')]){if(_0x2fdb0f[_0x637b('0x2e')]){_0x2fdb0f[_0x637b('0x2e')]=moment(_0x2fdb0f['dateEnd'])[_0x637b('0x37')](0x1,_0x637b('0x38'));}else{_0x2fdb0f[_0x637b('0x2e')]=moment(_0x2fdb0f['dateStart'])['add'](0x1,_0x637b('0x38'));}_[_0x637b('0x39')](_0x554f0f[_0x637b('0x36')],{'createdAt':{'$gte':_0x2fdb0f['dateStart'],'$lte':_0x2fdb0f[_0x637b('0x2e')]}});}if(_0x9b0cee['query'][_0x637b('0x3a')]){_0x554f0f[_0x637b('0x36')]=_['merge'](_0x554f0f[_0x637b('0x36')],{'$or':_[_0x637b('0x3b')](_0x554f0f[_0x637b('0x30')],function(_0x54b381){var _0x571a2c={};_0x571a2c[_0x54b381]={'$like':'%'+_0x9b0cee[_0x637b('0x2c')][_0x637b('0x3a')]+'%'};return _0x571a2c;})});}_0x554f0f=_[_0x637b('0x39')]({},_0x554f0f,_0x9b0cee[_0x637b('0x3c')]);var _0x571fe2={'where':_0x554f0f[_0x637b('0x36')]};_0x571fe2[_0x637b('0x3d')]=[];if(_0x9b0cee['query'][_0x637b('0x3e')]){_0x571fe2[_0x637b('0x3d')][_0x637b('0x3f')]({'model':db[_0x637b('0x40')],'as':'Tags','attributes':['id'],'where':{'id':_0x9b0cee['query'][_0x637b('0x3e')]},'required':!![]});_0x571fe2[_0x637b('0x41')]=!![];}if(_0x9b0cee['query'][_0x637b('0x42')]){_0x571fe2['include'][_0x637b('0x3f')]({'model':db[_0x637b('0x43')],'as':_0x637b('0x44'),'attributes':['id',_0x637b('0x45'),_0x637b('0x46'),_0x637b('0x42')],'where':{'direction':'in','read':_0x9b0cee[_0x637b('0x2c')][_0x637b('0x42')]||![]},'required':!![]});_0x571fe2[_0x637b('0x41')]=!![];}return db[_0x637b('0x28')][_0x637b('0x19')](_0x571fe2)[_0x637b('0x22')](function(_0x473cbf){_0x27d30b[_0x637b('0x19')]=_0x473cbf;if(_0x9b0cee[_0x637b('0x2c')][_0x637b('0x47')]){_0x554f0f['include']=[{'model':db[_0x637b('0x48')],'as':_0x637b('0x49'),'required':![],'attributes':['id',_0x637b('0x26'),'fullname']},{'model':db['CmContact'],'as':_0x637b('0x4a'),'required':![]},{'model':db['User'],'as':_0x637b('0x4b'),'attributes':['name','fullname','internal'],'required':![]},{'model':db[_0x637b('0x4c')],'as':_0x637b('0x4d'),'attributes':['name',_0x637b('0x4e')],'required':![]},{'model':db[_0x637b('0x43')],'as':_0x637b('0x44'),'attributes':['id','direction',_0x637b('0x46'),_0x637b('0x42')],'where':{'direction':'in','read':_0x9b0cee['query'][_0x637b('0x42')]||![]},'required':_0x9b0cee[_0x637b('0x2c')][_0x637b('0x42')]||![]},{'model':db['Tag'],'as':'Tags','attributes':['id',_0x637b('0x26'),_0x637b('0x4f')],'required':_0x9b0cee[_0x637b('0x2c')]['tag']?!![]:![]},{'model':db[_0x637b('0x40')],'as':'ThroughTags','attributes':['id',_0x637b('0x26'),_0x637b('0x4f')],'through':_0x9b0cee[_0x637b('0x2c')][_0x637b('0x3e')]?{'attributes':[],'where':{'TagId':_0x9b0cee['query'][_0x637b('0x3e')]||undefined}}:{},'required':_0x9b0cee[_0x637b('0x2c')]['tag']?!![]:![]}];}return db['OpenchannelInteraction'][_0x637b('0x50')](_0x554f0f);})[_0x637b('0x22')](function(_0x404ac3){_0x27d30b[_0x637b('0x51')]=_0x404ac3;return _0x27d30b;})[_0x637b('0x22')](respondWithFilteredResult(_0x46ba95,_0x554f0f))[_0x637b('0x52')](handleError(_0x46ba95,null));};exports['show']=function(_0x28ca3a,_0x101c8a){var _0x200693={'raw':![],'where':{'id':_0x28ca3a['params']['id']}},_0x4dea0d={};_0x4dea0d[_0x637b('0x2a')]=_[_0x637b('0x2b')](db[_0x637b('0x28')][_0x637b('0x29')]);_0x4dea0d[_0x637b('0x2c')]=_[_0x637b('0x2b')](_0x28ca3a[_0x637b('0x2c')]);_0x4dea0d[_0x637b('0x2f')]=_[_0x637b('0x53')](_0x4dea0d[_0x637b('0x2a')],_0x4dea0d[_0x637b('0x2c')]);_0x200693['attributes']=_[_0x637b('0x53')](_0x4dea0d[_0x637b('0x2a')],qs[_0x637b('0x31')](_0x28ca3a['query'][_0x637b('0x31')]));_0x200693[_0x637b('0x30')]=_0x200693[_0x637b('0x30')][_0x637b('0x54')]?_0x200693['attributes']:_0x4dea0d[_0x637b('0x2a')];if(_0x28ca3a['query'][_0x637b('0x47')]){_0x200693['include']=[{'all':!![]}];}_0x200693=_['merge']({},_0x200693,_0x28ca3a[_0x637b('0x3c')]);return db[_0x637b('0x28')][_0x637b('0x55')](_0x200693)[_0x637b('0x22')](handleEntityNotFound(_0x101c8a,null))['then'](respondWithResult(_0x101c8a,null))['catch'](handleError(_0x101c8a,null));};exports[_0x637b('0x56')]=function(_0x3bcfbd,_0x2f4708){return db[_0x637b('0x28')][_0x637b('0x56')](_0x3bcfbd[_0x637b('0x57')],{})[_0x637b('0x22')](respondWithResult(_0x2f4708,0xc9))['catch'](handleError(_0x2f4708,null));};exports['update']=function(_0x55cc2e,_0xf2dec2){if(_0x55cc2e[_0x637b('0x57')]['id']){delete _0x55cc2e[_0x637b('0x57')]['id'];}return db['OpenchannelInteraction'][_0x637b('0x55')]({'where':{'id':_0x55cc2e['params']['id']}})[_0x637b('0x22')](handleEntityNotFound(_0xf2dec2,null))[_0x637b('0x22')](saveUpdates(_0x55cc2e[_0x637b('0x57')],null))[_0x637b('0x22')](respondWithResult(_0xf2dec2,null))[_0x637b('0x52')](handleError(_0xf2dec2,null));};exports[_0x637b('0x23')]=function(_0x573ecb,_0xa73a83){return db[_0x637b('0x28')]['find']({'where':{'id':_0x573ecb[_0x637b('0x58')]['id']}})[_0x637b('0x22')](handleEntityNotFound(_0xa73a83,null))[_0x637b('0x22')](removeEntity(_0xa73a83,null))[_0x637b('0x52')](handleError(_0xa73a83,null));};exports[_0x637b('0x59')]=function(_0x151943,_0x39c2ad){return db[_0x637b('0x28')][_0x637b('0x59')]()[_0x637b('0x22')](respondWithResult(_0x39c2ad,null))[_0x637b('0x52')](handleError(_0x39c2ad,null));};exports['addMessage']=function(_0x382978,_0x4bf3aa,_0x38c046){return db[_0x637b('0x43')][_0x637b('0x55')]({'where':{'id':_0x382978[_0x637b('0x58')]['id']}})[_0x637b('0x22')](handleEntityNotFound(_0x4bf3aa,null))[_0x637b('0x22')](function(_0x3e2788){if(_0x3e2788){return _0x3e2788[_0x637b('0x5a')](_0x382978['body'][_0x637b('0x5b')],_[_0x637b('0x5c')](_0x382978['body'],['ids','id'])||{});}})[_0x637b('0x22')](respondWithResult(_0x4bf3aa,null))[_0x637b('0x52')](handleError(_0x4bf3aa,null));};exports[_0x637b('0x5d')]=function(_0x1f8550,_0xcf5c85,_0x3b1020){var _0xfdadbc={'raw':![],'where':{}};var _0x250061={};var _0x43767f={'count':0x0,'rows':[]};return db[_0x637b('0x28')][_0x637b('0x5e')]({'where':{'id':_0x1f8550[_0x637b('0x58')]['id']}})[_0x637b('0x22')](handleEntityNotFound(_0xcf5c85,null))[_0x637b('0x22')](function(_0x38a1c6){if(_0x38a1c6){_0x250061['model']=_[_0x637b('0x2b')](db[_0x637b('0x43')]['rawAttributes']);_0x250061[_0x637b('0x2c')]=_[_0x637b('0x2b')](_0x1f8550[_0x637b('0x2c')]);_0x250061[_0x637b('0x2f')]=_[_0x637b('0x53')](_0x250061[_0x637b('0x2a')],_0x250061['query']);_0xfdadbc[_0x637b('0x30')]=_[_0x637b('0x53')](_0x250061[_0x637b('0x2a')],qs['fields'](_0x1f8550['query'][_0x637b('0x31')]));_0xfdadbc[_0x637b('0x30')]=_0xfdadbc[_0x637b('0x30')][_0x637b('0x54')]?_0xfdadbc[_0x637b('0x30')]:_0x250061[_0x637b('0x2a')];if(!_0x1f8550['query'][_0x637b('0x32')](_0x637b('0x33'))){_0xfdadbc['limit']=qs['limit'](_0x1f8550[_0x637b('0x2c')][_0x637b('0x1b')]);_0xfdadbc[_0x637b('0x1a')]=qs[_0x637b('0x1a')](_0x1f8550[_0x637b('0x2c')][_0x637b('0x1a')]);}_0xfdadbc[_0x637b('0x34')]=qs[_0x637b('0x35')](_0x1f8550[_0x637b('0x2c')][_0x637b('0x35')]);_0xfdadbc[_0x637b('0x36')]=qs[_0x637b('0x2f')](_[_0x637b('0x5f')](_0x1f8550[_0x637b('0x2c')],_0x250061['filters']));_0xfdadbc[_0x637b('0x36')]['OpenchannelInteractionId']=_0x38a1c6['id'];if(_0x1f8550[_0x637b('0x2c')][_0x637b('0x3a')]){_0xfdadbc['where']=_[_0x637b('0x39')](_0xfdadbc[_0x637b('0x36')],{'$or':_[_0x637b('0x3b')](_0xfdadbc['attributes'],function(_0x1d2290){var _0x362fa7={};_0x362fa7[_0x1d2290]={'$like':'%'+_0x1f8550[_0x637b('0x2c')][_0x637b('0x3a')]+'%'};return _0x362fa7;})});}if(_0x1f8550['query'][_0x637b('0x60')]){var _0x300c0a=_0x1f8550[_0x637b('0x2c')][_0x637b('0x60')][_0x637b('0x61')](',');var _0xf49a31={};_0xf49a31[_0x300c0a[0x0]]={'$gte':moment(_0x300c0a[0x1])['format'](_0x637b('0x62'))};_0xfdadbc[_0x637b('0x36')]=_[_0x637b('0x39')](_0xfdadbc[_0x637b('0x36')],_0xf49a31);}_0xfdadbc=_[_0x637b('0x39')]({},_0xfdadbc,_0x1f8550[_0x637b('0x3c')]);return db['OpenchannelMessage'][_0x637b('0x19')]({'where':_0xfdadbc[_0x637b('0x36')]})[_0x637b('0x22')](function(_0x3fdc50){_0x43767f[_0x637b('0x19')]=_0x3fdc50;if(_0x1f8550[_0x637b('0x2c')][_0x637b('0x47')]){_0xfdadbc[_0x637b('0x3d')]=[{'all':!![]}];}return db['OpenchannelMessage']['findAll'](_0xfdadbc);})[_0x637b('0x22')](function(_0x46ea39){_0x43767f[_0x637b('0x51')]=_0x46ea39;return _0x43767f;});}})['then'](respondWithFilteredResult(_0xcf5c85,_0xfdadbc))[_0x637b('0x52')](handleError(_0xcf5c85,null));};exports['addTags']=function(_0x170f44,_0x28be75,_0x10a3cb){return db[_0x637b('0x28')][_0x637b('0x55')]({'where':{'id':_0x170f44[_0x637b('0x58')]['id']}})[_0x637b('0x22')](handleEntityNotFound(_0x28be75,null))[_0x637b('0x22')](function(_0x303e25){if(_0x303e25){return _0x303e25[_0x637b('0x63')](_0x170f44[_0x637b('0x57')]['ids'],_[_0x637b('0x5c')](_0x170f44['body'],['ids','id'])||{})[_0x637b('0x64')](function(){return db[_0x637b('0x40')][_0x637b('0x50')]({'attributes':['id',_0x637b('0x26'),_0x637b('0x4f')],'where':{'id':_0x170f44[_0x637b('0x57')][_0x637b('0x5b')]}});})[_0x637b('0x22')](function(_0x3245a7){socket['emit'](_0x637b('0x65'),{'id':Number(_0x170f44['params']['id']),'tags':_0x3245a7||[]});return{'id':Number(_0x170f44[_0x637b('0x58')]['id']),'tags':_0x3245a7||[]};});}})['then'](respondWithResult(_0x28be75,null))['catch'](handleError(_0x28be75,null));};exports[_0x637b('0x66')]=function(_0x56d03a,_0x57dc6a,_0x5603c9){var _0x99be55;return db[_0x637b('0x28')][_0x637b('0x55')]({'where':{'id':_0x56d03a[_0x637b('0x58')]['id']}})['then'](handleEntityNotFound(_0x57dc6a,null))[_0x637b('0x22')](function(_0x14aa7a){if(_0x14aa7a){return _0x14aa7a['removeTags'](_0x56d03a[_0x637b('0x2c')][_0x637b('0x5b')]);}})[_0x637b('0x22')](respondWithStatusCode(_0x57dc6a,null))[_0x637b('0x52')](handleError(_0x57dc6a,null));};