Built motion from commit b0a9a629.|2.6.33
[motion2.git] / server / api / voiceContext / voiceContext.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 _0x1388=['includeAll','include','findAll','show','params','rawAttributes','find','body','join','server/files/templates/context.ejs','utf8','render','Reload','create','chan_sip.so','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','userProfileId','readFileSync','root','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../mysqldb','client','http','request','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','destroy','get','Contexts','UserProfileResource','sendStatus','stack','name','send','index','map','VoiceContext','fieldName','keys','query','filters','model','attributes','intersection','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','type','VIRTUAL','options'];(function(_0x2a5671,_0x2dac05){var _0x1f3431=function(_0x3ae119){while(--_0x3ae119){_0x2a5671['push'](_0x2a5671['shift']());}};_0x1f3431(++_0x2dac05);}(_0x1388,0x1b7));var _0x8138=function(_0x25b40d,_0x3d8e6c){_0x25b40d=_0x25b40d-0x0;var _0x25adab=_0x1388[_0x25b40d];return _0x25adab;};'use strict';var emlformat=require(_0x8138('0x0'));var rimraf=require(_0x8138('0x1'));var zipdir=require(_0x8138('0x2'));var jsonpatch=require(_0x8138('0x3'));var rp=require(_0x8138('0x4'));var moment=require(_0x8138('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x8138('0x6'));var util=require(_0x8138('0x7'));var path=require('path');var sox=require(_0x8138('0x8'));var csv=require(_0x8138('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x8138('0xa'));var _=require(_0x8138('0xb'));var squel=require(_0x8138('0xc'));var crypto=require(_0x8138('0xd'));var jsforce=require(_0x8138('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x8138('0x9'));var querystring=require(_0x8138('0xf'));var Papa=require('papaparse');var Redis=require(_0x8138('0x10'));var authService=require(_0x8138('0x11'));var qs=require(_0x8138('0x12'));var as=require(_0x8138('0x13'));var hardwareService=require(_0x8138('0x14'));var logger=require(_0x8138('0x15'))(_0x8138('0x16'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x8138('0x17'))['db'];var jayson=require('jayson/promise');var client=jayson[_0x8138('0x18')][_0x8138('0x19')]({'port':0x232a});function respondWithRpcPromise(_0x388153,_0x117016,_0x3b2fe5,_0x2eb25a){return new BPromise(function(_0xdaed13,_0x2f13be){var _0x4d2e3a=_0x2eb25a||client;return _0x4d2e3a[_0x8138('0x1a')](_0x388153,_0x3b2fe5)['then'](function(_0x2281f9){logger['info'](_0x8138('0x1b'),_0x117016,_0x8138('0x1c'));logger[_0x8138('0x1d')](_0x8138('0x1e'),_0x117016,'request\x20sent',JSON[_0x8138('0x1f')](_0x2281f9));if(_0x2281f9['error']){if(_0x2281f9[_0x8138('0x20')][_0x8138('0x21')]===0x1f4){logger[_0x8138('0x20')](_0x8138('0x1b'),_0x117016,_0x2281f9['error'][_0x8138('0x22')]);return _0x2f13be(_0x2281f9[_0x8138('0x20')][_0x8138('0x22')]);}logger[_0x8138('0x20')]('VoiceContext,\x20%s,\x20%s',_0x117016,_0x2281f9[_0x8138('0x20')][_0x8138('0x22')]);return _0xdaed13(_0x2281f9['error'][_0x8138('0x22')]);}else{logger[_0x8138('0x23')](_0x8138('0x1b'),_0x117016,_0x8138('0x1c'));_0xdaed13(_0x2281f9[_0x8138('0x24')][_0x8138('0x22')]);}})[_0x8138('0x25')](function(_0x281dc0){logger[_0x8138('0x20')](_0x8138('0x1b'),_0x117016,_0x281dc0);_0x2f13be(_0x281dc0);});});}function respondWithStatusCode(_0x44da43,_0x523988){_0x523988=_0x523988||0xcc;return function(_0x657516){if(_0x657516){return _0x44da43['sendStatus'](_0x523988);}return _0x44da43['status'](_0x523988)[_0x8138('0x26')]();};}function respondWithResult(_0x34e0d0,_0x822c65){_0x822c65=_0x822c65||0xc8;return function(_0x3542f1){if(_0x3542f1){return _0x34e0d0[_0x8138('0x27')](_0x822c65)[_0x8138('0x28')](_0x3542f1);}};}function respondWithFilteredResult(_0x74e246,_0x59aebd){return function(_0x212f44){if(_0x212f44){var _0x352cbb=typeof _0x59aebd[_0x8138('0x29')]===_0x8138('0x2a')&&typeof _0x59aebd[_0x8138('0x2b')]===_0x8138('0x2a');var _0x5e3a0f=_0x212f44[_0x8138('0x2c')];var _0x109fbb=_0x352cbb?0x0:_0x59aebd[_0x8138('0x29')];var _0x2c2259=_0x352cbb?_0x212f44[_0x8138('0x2c')]:_0x59aebd[_0x8138('0x29')]+_0x59aebd[_0x8138('0x2b')];var _0x2737c2;if(_0x2c2259>=_0x5e3a0f){_0x2c2259=_0x5e3a0f;_0x2737c2=0xc8;}else{_0x2737c2=0xce;}_0x74e246[_0x8138('0x27')](_0x2737c2);return _0x74e246[_0x8138('0x2d')](_0x8138('0x2e'),_0x109fbb+'-'+_0x2c2259+'/'+_0x5e3a0f)['json'](_0x212f44);}return null;};}function patchUpdates(_0xce63e8){return function(_0x162120){try{jsonpatch[_0x8138('0x2f')](_0x162120,_0xce63e8,!![]);}catch(_0x26ed91){return BPromise[_0x8138('0x30')](_0x26ed91);}return _0x162120['save']();};}function saveUpdates(_0x33120d,_0x4fa8cc){return function(_0x2dd768){if(_0x2dd768){return _0x2dd768[_0x8138('0x31')](_0x33120d)[_0x8138('0x32')](function(_0x26f69f){return _0x26f69f;});}return null;};}function removeEntity(_0x387ddf,_0x2902c3){return function(_0x3d6979){if(_0x3d6979){return _0x3d6979[_0x8138('0x33')]()['then'](function(){var _0x345d26=_0x3d6979[_0x8138('0x34')]({'plain':!![]});var _0x39cb1c=_0x8138('0x35');return db[_0x8138('0x36')][_0x8138('0x33')]({'where':{'type':_0x39cb1c,'resourceId':_0x345d26['id']}})[_0x8138('0x32')](function(){return _0x3d6979;});})['then'](function(){_0x387ddf[_0x8138('0x27')](0xcc)['end']();});}};}function handleEntityNotFound(_0x24c48a,_0x29b640){return function(_0x12d649){if(!_0x12d649){_0x24c48a[_0x8138('0x37')](0x194);}return _0x12d649;};}function handleError(_0x2338aa,_0x3dfb94){_0x3dfb94=_0x3dfb94||0x1f4;return function(_0x4aef1a){logger[_0x8138('0x20')](_0x4aef1a[_0x8138('0x38')]);if(_0x4aef1a['name']){delete _0x4aef1a[_0x8138('0x39')];}_0x2338aa[_0x8138('0x27')](_0x3dfb94)[_0x8138('0x3a')](_0x4aef1a);};}exports[_0x8138('0x3b')]=function(_0x1a40ab,_0x56e53c){var _0x11312f={},_0x1b36c4={},_0x28ad17={'count':0x0,'rows':[]};var _0x24e979=_[_0x8138('0x3c')](db[_0x8138('0x3d')]['rawAttributes'],function(_0x21235c){return{'name':_0x21235c[_0x8138('0x3e')],'type':_0x21235c['type']['key']};});_0x1b36c4['model']=_[_0x8138('0x3c')](_0x24e979,_0x8138('0x39'));_0x1b36c4['query']=_[_0x8138('0x3f')](_0x1a40ab[_0x8138('0x40')]);_0x1b36c4[_0x8138('0x41')]=_['intersection'](_0x1b36c4[_0x8138('0x42')],_0x1b36c4[_0x8138('0x40')]);_0x11312f[_0x8138('0x43')]=_[_0x8138('0x44')](_0x1b36c4[_0x8138('0x42')],qs['fields'](_0x1a40ab['query'][_0x8138('0x45')]));_0x11312f[_0x8138('0x43')]=_0x11312f['attributes'][_0x8138('0x46')]?_0x11312f[_0x8138('0x43')]:_0x1b36c4['model'];if(!_0x1a40ab['query'][_0x8138('0x47')]('nolimit')){_0x11312f[_0x8138('0x2b')]=qs[_0x8138('0x2b')](_0x1a40ab[_0x8138('0x40')][_0x8138('0x2b')]);_0x11312f[_0x8138('0x29')]=qs[_0x8138('0x29')](_0x1a40ab[_0x8138('0x40')][_0x8138('0x29')]);}_0x11312f[_0x8138('0x48')]=qs[_0x8138('0x49')](_0x1a40ab[_0x8138('0x40')]['sort']);_0x11312f[_0x8138('0x4a')]=qs['filters'](_[_0x8138('0x4b')](_0x1a40ab[_0x8138('0x40')],_0x1b36c4[_0x8138('0x41')]),_0x24e979);if(_0x1a40ab[_0x8138('0x40')][_0x8138('0x4c')]){_0x11312f['where']=_[_0x8138('0x4d')](_0x11312f[_0x8138('0x4a')],{'$or':_[_0x8138('0x3c')](_0x24e979,function(_0x316b95){if(_0x316b95[_0x8138('0x4e')]!==_0x8138('0x4f')){var _0x21e40e={};_0x21e40e[_0x316b95[_0x8138('0x39')]]={'$like':'%'+_0x1a40ab[_0x8138('0x40')][_0x8138('0x4c')]+'%'};return _0x21e40e;}})});}_0x11312f=_[_0x8138('0x4d')]({},_0x11312f,_0x1a40ab[_0x8138('0x50')]);var _0x88e882={'where':_0x11312f[_0x8138('0x4a')]};return db[_0x8138('0x3d')]['count'](_0x88e882)[_0x8138('0x32')](function(_0x13891b){_0x28ad17[_0x8138('0x2c')]=_0x13891b;if(_0x1a40ab[_0x8138('0x40')][_0x8138('0x51')]){_0x11312f[_0x8138('0x52')]=[{'all':!![]}];}return db[_0x8138('0x3d')][_0x8138('0x53')](_0x11312f);})[_0x8138('0x32')](function(_0x75fc99){_0x28ad17['rows']=_0x75fc99;return _0x28ad17;})['then'](respondWithFilteredResult(_0x56e53c,_0x11312f))[_0x8138('0x25')](handleError(_0x56e53c,null));};exports[_0x8138('0x54')]=function(_0x2832c9,_0x3c84e6){var _0x1bfffa={'raw':![],'where':{'id':_0x2832c9[_0x8138('0x55')]['id']}},_0x4723f8={};_0x4723f8[_0x8138('0x42')]=_[_0x8138('0x3f')](db[_0x8138('0x3d')][_0x8138('0x56')]);_0x4723f8[_0x8138('0x40')]=_[_0x8138('0x3f')](_0x2832c9[_0x8138('0x40')]);_0x4723f8['filters']=_[_0x8138('0x44')](_0x4723f8[_0x8138('0x42')],_0x4723f8['query']);_0x1bfffa['attributes']=_[_0x8138('0x44')](_0x4723f8['model'],qs[_0x8138('0x45')](_0x2832c9[_0x8138('0x40')]['fields']));_0x1bfffa[_0x8138('0x43')]=_0x1bfffa[_0x8138('0x43')][_0x8138('0x46')]?_0x1bfffa['attributes']:_0x4723f8['model'];if(_0x2832c9[_0x8138('0x40')][_0x8138('0x51')]){_0x1bfffa['include']=[{'all':!![]}];}_0x1bfffa=_[_0x8138('0x4d')]({},_0x1bfffa,_0x2832c9[_0x8138('0x50')]);return db[_0x8138('0x3d')][_0x8138('0x57')](_0x1bfffa)['then'](handleEntityNotFound(_0x3c84e6,null))[_0x8138('0x32')](respondWithResult(_0x3c84e6,null))['catch'](handleError(_0x3c84e6,null));};exports['create']=function(_0x193281,_0x4c8975,_0x4f0180){var _0x2a2751;return db['VoiceContext']['create'](_0x193281[_0x8138('0x58')],{'raw':!![]})[_0x8138('0x32')](function(_0x53c6e7){_0x2a2751=_0x53c6e7;return db['VoiceContext']['findAll']({'raw':!![]});})['then'](function(_0x213aec){var _0x6a2225=fs['readFileSync'](path[_0x8138('0x59')](config['root'],_0x8138('0x5a')),_0x8138('0x5b'));var _0x5ee992=ejs[_0x8138('0x5c')](_0x6a2225,{'contexts':_0x213aec||[]});fs['writeFileSync']('/etc/asterisk/extensions_xcally_contexts.conf',_0x5ee992);})['then'](function(){return respondWithRpcPromise(_0x8138('0x5d'),_0x8138('0x5e'),{'module':_0x8138('0x5f')});})[_0x8138('0x32')](function(){var _0x187993=_0x193281['user'][_0x8138('0x34')]({'plain':!![]});if(!_0x187993)throw new Error(_0x8138('0x60'));if(_0x187993[_0x8138('0x61')]===_0x8138('0x62')){var _0x4cfcbe=_0x2a2751['get']({'plain':!![]});return db['UserProfileSection'][_0x8138('0x57')]({'where':{'name':_0x8138('0x35'),'userProfileId':_0x187993[_0x8138('0x63')]},'raw':!![]})[_0x8138('0x32')](function(_0x4035f5){if(_0x4035f5&&_0x4035f5['autoAssociation']===0x0){return db[_0x8138('0x36')][_0x8138('0x5e')]({'name':_0x4cfcbe[_0x8138('0x39')],'resourceId':_0x4cfcbe['id'],'type':_0x4035f5[_0x8138('0x39')],'sectionId':_0x4035f5['id']},{})['then'](function(){return _0x2a2751;});}else{return _0x2a2751;}})[_0x8138('0x25')](function(_0x5e86d0){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x5e86d0);throw _0x5e86d0;});}return _0x2a2751;})[_0x8138('0x32')](respondWithResult(_0x4c8975,0xc9))[_0x8138('0x25')](handleError(_0x4c8975,null));};exports[_0x8138('0x31')]=function(_0x204853,_0x8bd969,_0x1b94d4){var _0x266a1b;return db[_0x8138('0x3d')][_0x8138('0x57')]({'where':{'id':_0x204853[_0x8138('0x55')]['id']}})[_0x8138('0x32')](handleEntityNotFound(_0x8bd969,null))['then'](saveUpdates(_0x204853[_0x8138('0x58')],null))[_0x8138('0x32')](function(_0x5ed66c){if(_0x5ed66c){_0x266a1b=_0x5ed66c;return db[_0x8138('0x3d')][_0x8138('0x53')]({'raw':!![]});}})[_0x8138('0x32')](function(_0x1bfeee){var _0x2dc6b0=fs[_0x8138('0x64')](path[_0x8138('0x59')](config[_0x8138('0x65')],_0x8138('0x5a')),'utf8');var _0x43e10f=ejs['render'](_0x2dc6b0,{'contexts':_0x1bfeee||[]});fs[_0x8138('0x66')](_0x8138('0x67'),_0x43e10f);})[_0x8138('0x32')](function(){return respondWithRpcPromise(_0x8138('0x5d'),'update',{'module':_0x8138('0x5f')});})['then'](function(){return _0x266a1b;})['then'](respondWithResult(_0x8bd969,null))[_0x8138('0x25')](handleError(_0x8bd969,null));};exports[_0x8138('0x33')]=function(_0x4cc523,_0x2854bd,_0x384e0e){var _0x1b5841;return db['VoiceContext']['find']({'where':{'id':_0x4cc523[_0x8138('0x55')]['id']}})[_0x8138('0x32')](handleEntityNotFound(_0x2854bd,null))[_0x8138('0x32')](removeEntity(_0x2854bd,null))[_0x8138('0x32')](function(){return db['VoiceContext'][_0x8138('0x53')]({'raw':!![]});})[_0x8138('0x32')](function(_0x9dc6a2){var _0x50689d=fs[_0x8138('0x64')](path['join'](config[_0x8138('0x65')],'server/files/templates/context.ejs'),_0x8138('0x5b'));var _0x143a34=ejs[_0x8138('0x5c')](_0x50689d,{'contexts':_0x9dc6a2});fs['writeFileSync'](_0x8138('0x67'),_0x143a34);return respondWithRpcPromise(_0x8138('0x5d'),_0x8138('0x33'),{'module':_0x8138('0x5f')});})[_0x8138('0x25')](handleError(_0x2854bd,null));};