Built motion from commit (unavailable).|2.4.18
[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 _0x7823=['find','create','join','root','server/files/templates/context.ejs','utf8','render','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','Reload','chan_sip.so','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','readFileSync','html-pdf','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','client','test','Sequelize','ValidationError','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','request','then','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','error','message','result','catch','sendStatus','status','end','json','count','offset','limit','set','apply','reject','save','update','destroy','get','Contexts','UserProfileResource','stack','name','send','index','rawAttributes','fieldName','key','model','query','keys','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filter','merge','type','VIRTUAL','options','VoiceContext','includeAll','include','findAll','show','filters','length'];(function(_0x537bab,_0x5f06b6){var _0x20c7df=function(_0x5b661f){while(--_0x5b661f){_0x537bab['push'](_0x537bab['shift']());}};_0x20c7df(++_0x5f06b6);}(_0x7823,0x7c));var _0x3782=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x7823[_0x14add3];return _0x4a174f;};'use strict';var pdf=require(_0x3782('0x0'));var emlformat=require(_0x3782('0x1'));var rimraf=require(_0x3782('0x2'));var zipdir=require(_0x3782('0x3'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x3782('0x4'));var BPromise=require(_0x3782('0x5'));var Mustache=require(_0x3782('0x6'));var util=require(_0x3782('0x7'));var path=require('path');var sox=require('sox');var csv=require(_0x3782('0x8'));var ejs=require(_0x3782('0x9'));var fs=require('fs');var _=require(_0x3782('0xa'));var squel=require(_0x3782('0xb'));var crypto=require(_0x3782('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x3782('0xd'));var toCsv=require(_0x3782('0x8'));var querystring=require(_0x3782('0xe'));var Papa=require('papaparse');var Redis=require(_0x3782('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x3782('0x10'));var as=require(_0x3782('0x11'));var hardwareService=require(_0x3782('0x12'));var logger=require('../../config/logger')(_0x3782('0x13'));var utils=require(_0x3782('0x14'));var config=require(_0x3782('0x15'));var db=require(_0x3782('0x16'))['db'];var jayson=require('jayson/promise');var client=jayson[_0x3782('0x17')]['http']({'port':0x232a});function checkPasswordPattern(_0x35679b,_0x3cf2f8,_0x36006b){if(_0x36006b){var _0xb562d=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0xb562d[_0x3782('0x18')](_0x3cf2f8)){return _0x35679b;}else{throw new db[(_0x3782('0x19'))][(_0x3782('0x1a'))](_0x3782('0x1b'));}}else{return _0x35679b;}}function respondWithRpcPromise(_0x33341e,_0x5c3a7e,_0x18066c,_0x2175dd){return new BPromise(function(_0x923e55,_0xc4419f){var _0x3a0a9b=_0x2175dd||client;return _0x3a0a9b[_0x3782('0x1c')](_0x33341e,_0x18066c)[_0x3782('0x1d')](function(_0x33c3e){logger['info'](_0x3782('0x1e'),_0x5c3a7e,_0x3782('0x1f'));logger[_0x3782('0x20')](_0x3782('0x21'),_0x5c3a7e,_0x3782('0x1f'),JSON['stringify'](_0x33c3e));if(_0x33c3e[_0x3782('0x22')]){if(_0x33c3e[_0x3782('0x22')]['code']===0x1f4){logger['error'](_0x3782('0x1e'),_0x5c3a7e,_0x33c3e[_0x3782('0x22')]['message']);return _0xc4419f(_0x33c3e[_0x3782('0x22')][_0x3782('0x23')]);}logger[_0x3782('0x22')](_0x3782('0x1e'),_0x5c3a7e,_0x33c3e[_0x3782('0x22')][_0x3782('0x23')]);return _0x923e55(_0x33c3e['error'][_0x3782('0x23')]);}else{logger['info'](_0x3782('0x1e'),_0x5c3a7e,_0x3782('0x1f'));_0x923e55(_0x33c3e[_0x3782('0x24')][_0x3782('0x23')]);}})[_0x3782('0x25')](function(_0x1ac3c1){logger['error'](_0x3782('0x1e'),_0x5c3a7e,_0x1ac3c1);_0xc4419f(_0x1ac3c1);});});}function respondWithStatusCode(_0x12aedb,_0x270a75){_0x270a75=_0x270a75||0xcc;return function(_0x1a1442){if(_0x1a1442){return _0x12aedb[_0x3782('0x26')](_0x270a75);}return _0x12aedb[_0x3782('0x27')](_0x270a75)[_0x3782('0x28')]();};}function respondWithResult(_0x3e61ab,_0x52cdbf){_0x52cdbf=_0x52cdbf||0xc8;return function(_0x3f1ff1){if(_0x3f1ff1){return _0x3e61ab[_0x3782('0x27')](_0x52cdbf)[_0x3782('0x29')](_0x3f1ff1);}};}function respondWithFilteredResult(_0x4beafd,_0x38e779){return function(_0x478034){if(_0x478034){var _0x507b8c=_0x478034[_0x3782('0x2a')],_0x46fe41=_0x38e779[_0x3782('0x2b')],_0x38692f=_0x38e779[_0x3782('0x2b')]+_0x38e779[_0x3782('0x2c')],_0xc12cf3;if(_0x38692f>=_0x507b8c){_0x38692f=_0x507b8c;_0xc12cf3=0xc8;}else{_0xc12cf3=0xce;}_0x4beafd['status'](_0xc12cf3);return _0x4beafd[_0x3782('0x2d')]('Content-Range',_0x46fe41+'-'+_0x38692f+'/'+_0x507b8c)[_0x3782('0x29')](_0x478034);}return null;};}function patchUpdates(_0x350810){return function(_0x52db25){try{jsonpatch[_0x3782('0x2e')](_0x52db25,_0x350810,!![]);}catch(_0x4101b3){return BPromise[_0x3782('0x2f')](_0x4101b3);}return _0x52db25[_0x3782('0x30')]();};}function saveUpdates(_0x39162d,_0x649cda){return function(_0x5c90dd){if(_0x5c90dd){return _0x5c90dd[_0x3782('0x31')](_0x39162d)['then'](function(_0x4c184a){return _0x4c184a;});}return null;};}function removeEntity(_0x4d64cf,_0x2f78f1){return function(_0x206b6d){if(_0x206b6d){return _0x206b6d[_0x3782('0x32')]()[_0x3782('0x1d')](function(){var _0x4e55a1=_0x206b6d[_0x3782('0x33')]({'plain':!![]});var _0x5a77be=_0x3782('0x34');return db[_0x3782('0x35')][_0x3782('0x32')]({'where':{'type':_0x5a77be,'resourceId':_0x4e55a1['id']}})[_0x3782('0x1d')](function(){return _0x206b6d;});})[_0x3782('0x1d')](function(){_0x4d64cf[_0x3782('0x27')](0xcc)[_0x3782('0x28')]();});}};}function handleEntityNotFound(_0x34b6bf,_0x504d16){return function(_0x594193){if(!_0x594193){_0x34b6bf[_0x3782('0x26')](0x194);}return _0x594193;};}function handleError(_0x73e4d9,_0x402fe9){_0x402fe9=_0x402fe9||0x1f4;return function(_0x1d0e1a){logger[_0x3782('0x22')](_0x1d0e1a[_0x3782('0x36')]);if(_0x1d0e1a[_0x3782('0x37')]){delete _0x1d0e1a[_0x3782('0x37')];}_0x73e4d9[_0x3782('0x27')](_0x402fe9)[_0x3782('0x38')](_0x1d0e1a);};}exports[_0x3782('0x39')]=function(_0x2066f4,_0x7140ae){var _0x1358aa={},_0x44047e={},_0x25a018={'count':0x0,'rows':[]};var _0x2d8c9f=_['map'](db['VoiceContext'][_0x3782('0x3a')],function(_0x3b376b){return{'name':_0x3b376b[_0x3782('0x3b')],'type':_0x3b376b['type'][_0x3782('0x3c')]};});_0x44047e[_0x3782('0x3d')]=_['map'](_0x2d8c9f,_0x3782('0x37'));_0x44047e[_0x3782('0x3e')]=_[_0x3782('0x3f')](_0x2066f4[_0x3782('0x3e')]);_0x44047e['filters']=_[_0x3782('0x40')](_0x44047e[_0x3782('0x3d')],_0x44047e[_0x3782('0x3e')]);_0x1358aa[_0x3782('0x41')]=_['intersection'](_0x44047e[_0x3782('0x3d')],qs[_0x3782('0x42')](_0x2066f4[_0x3782('0x3e')][_0x3782('0x42')]));_0x1358aa[_0x3782('0x41')]=_0x1358aa[_0x3782('0x41')]['length']?_0x1358aa[_0x3782('0x41')]:_0x44047e[_0x3782('0x3d')];if(!_0x2066f4['query'][_0x3782('0x43')](_0x3782('0x44'))){_0x1358aa[_0x3782('0x2c')]=qs[_0x3782('0x2c')](_0x2066f4[_0x3782('0x3e')][_0x3782('0x2c')]);_0x1358aa['offset']=qs[_0x3782('0x2b')](_0x2066f4[_0x3782('0x3e')][_0x3782('0x2b')]);}_0x1358aa[_0x3782('0x45')]=qs['sort'](_0x2066f4[_0x3782('0x3e')][_0x3782('0x46')]);_0x1358aa[_0x3782('0x47')]=qs['filters'](_['pick'](_0x2066f4[_0x3782('0x3e')],_0x44047e['filters']));if(_0x2066f4['query'][_0x3782('0x48')]){_0x1358aa[_0x3782('0x47')]=_[_0x3782('0x49')](_0x1358aa['where'],{'$or':_['map'](_0x2d8c9f,function(_0x23fa20){if(_0x23fa20[_0x3782('0x4a')]!==_0x3782('0x4b')){var _0x1537e0={};_0x1537e0[_0x23fa20['name']]={'$like':'%'+_0x2066f4['query'][_0x3782('0x48')]+'%'};return _0x1537e0;}})});}_0x1358aa=_[_0x3782('0x49')]({},_0x1358aa,_0x2066f4[_0x3782('0x4c')]);var _0x44dae7={'where':_0x1358aa[_0x3782('0x47')]};return db[_0x3782('0x4d')][_0x3782('0x2a')](_0x44dae7)[_0x3782('0x1d')](function(_0x567623){_0x25a018[_0x3782('0x2a')]=_0x567623;if(_0x2066f4[_0x3782('0x3e')][_0x3782('0x4e')]){_0x1358aa[_0x3782('0x4f')]=[{'all':!![]}];}return db[_0x3782('0x4d')][_0x3782('0x50')](_0x1358aa);})[_0x3782('0x1d')](function(_0x53f4ef){_0x25a018['rows']=_0x53f4ef;return _0x25a018;})[_0x3782('0x1d')](respondWithFilteredResult(_0x7140ae,_0x1358aa))[_0x3782('0x25')](handleError(_0x7140ae,null));};exports[_0x3782('0x51')]=function(_0xf7da6c,_0x170be6){var _0x298a40={'raw':![],'where':{'id':_0xf7da6c['params']['id']}},_0x53a2e5={};_0x53a2e5[_0x3782('0x3d')]=_[_0x3782('0x3f')](db[_0x3782('0x4d')]['rawAttributes']);_0x53a2e5[_0x3782('0x3e')]=_[_0x3782('0x3f')](_0xf7da6c[_0x3782('0x3e')]);_0x53a2e5[_0x3782('0x52')]=_['intersection'](_0x53a2e5[_0x3782('0x3d')],_0x53a2e5[_0x3782('0x3e')]);_0x298a40[_0x3782('0x41')]=_[_0x3782('0x40')](_0x53a2e5[_0x3782('0x3d')],qs[_0x3782('0x42')](_0xf7da6c[_0x3782('0x3e')][_0x3782('0x42')]));_0x298a40[_0x3782('0x41')]=_0x298a40[_0x3782('0x41')][_0x3782('0x53')]?_0x298a40['attributes']:_0x53a2e5[_0x3782('0x3d')];if(_0xf7da6c[_0x3782('0x3e')][_0x3782('0x4e')]){_0x298a40[_0x3782('0x4f')]=[{'all':!![]}];}_0x298a40=_['merge']({},_0x298a40,_0xf7da6c[_0x3782('0x4c')]);return db[_0x3782('0x4d')][_0x3782('0x54')](_0x298a40)['then'](handleEntityNotFound(_0x170be6,null))[_0x3782('0x1d')](respondWithResult(_0x170be6,null))['catch'](handleError(_0x170be6,null));};exports[_0x3782('0x55')]=function(_0x401d8a,_0x598b81,_0x543358){var _0x4adbab;return db[_0x3782('0x4d')]['create'](_0x401d8a['body'],{'raw':!![]})[_0x3782('0x1d')](function(_0x148d3f){_0x4adbab=_0x148d3f;return db['VoiceContext']['findAll']({'raw':!![]});})['then'](function(_0x2e0eb3){var _0x532b48=fs['readFileSync'](path[_0x3782('0x56')](config[_0x3782('0x57')],_0x3782('0x58')),_0x3782('0x59'));var _0x18d738=ejs[_0x3782('0x5a')](_0x532b48,{'contexts':_0x2e0eb3||[]});fs[_0x3782('0x5b')](_0x3782('0x5c'),_0x18d738);})[_0x3782('0x1d')](function(){return respondWithRpcPromise(_0x3782('0x5d'),_0x3782('0x55'),{'module':_0x3782('0x5e')});})[_0x3782('0x1d')](function(){var _0x386415=_0x401d8a['user'][_0x3782('0x33')]({'plain':!![]});if(!_0x386415)throw new Error(_0x3782('0x5f'));if(_0x386415[_0x3782('0x60')]===_0x3782('0x61')){var _0xf56e7f=_0x4adbab[_0x3782('0x33')]({'plain':!![]});return db[_0x3782('0x62')]['find']({'where':{'name':_0x3782('0x34'),'userProfileId':_0x386415[_0x3782('0x63')]},'raw':!![]})[_0x3782('0x1d')](function(_0x27edaf){if(_0x27edaf&&_0x27edaf[_0x3782('0x64')]===0x0){return db[_0x3782('0x35')][_0x3782('0x55')]({'name':_0xf56e7f[_0x3782('0x37')],'resourceId':_0xf56e7f['id'],'type':_0x27edaf[_0x3782('0x37')],'sectionId':_0x27edaf['id']},{})['then'](function(){return _0x4adbab;});}else{return _0x4adbab;}})[_0x3782('0x25')](function(_0x1059b2){logger[_0x3782('0x22')](_0x3782('0x65'),_0x1059b2);throw _0x1059b2;});}return _0x4adbab;})[_0x3782('0x1d')](respondWithResult(_0x598b81,0xc9))[_0x3782('0x25')](handleError(_0x598b81,null));};exports[_0x3782('0x31')]=function(_0x590db7,_0xfc8f3f,_0x59e68e){var _0x5c0557;return db[_0x3782('0x4d')][_0x3782('0x54')]({'where':{'id':_0x590db7['params']['id']}})['then'](handleEntityNotFound(_0xfc8f3f,null))[_0x3782('0x1d')](saveUpdates(_0x590db7['body'],null))['then'](function(_0xe580ef){if(_0xe580ef){_0x5c0557=_0xe580ef;return db['VoiceContext']['findAll']({'raw':!![]});}})[_0x3782('0x1d')](function(_0x258390){var _0x9341ed=fs['readFileSync'](path[_0x3782('0x56')](config[_0x3782('0x57')],'server/files/templates/context.ejs'),_0x3782('0x59'));var _0x410e91=ejs['render'](_0x9341ed,{'contexts':_0x258390||[]});fs[_0x3782('0x5b')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x410e91);})[_0x3782('0x1d')](function(){return respondWithRpcPromise(_0x3782('0x5d'),_0x3782('0x31'),{'module':'chan_sip.so'});})[_0x3782('0x1d')](function(){return _0x5c0557;})[_0x3782('0x1d')](respondWithResult(_0xfc8f3f,null))['catch'](handleError(_0xfc8f3f,null));};exports['destroy']=function(_0x35298e,_0x22c484,_0x47dd5f){var _0x149150;return db[_0x3782('0x4d')][_0x3782('0x54')]({'where':{'id':_0x35298e[_0x3782('0x66')]['id']}})['then'](handleEntityNotFound(_0x22c484,null))[_0x3782('0x1d')](removeEntity(_0x22c484,null))['then'](function(){return db[_0x3782('0x4d')][_0x3782('0x50')]({'raw':!![]});})[_0x3782('0x1d')](function(_0xa76964){var _0x1aabbe=fs[_0x3782('0x67')](path['join'](config[_0x3782('0x57')],_0x3782('0x58')),_0x3782('0x59'));var _0x2ff248=ejs[_0x3782('0x5a')](_0x1aabbe,{'contexts':_0xa76964});fs[_0x3782('0x5b')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x2ff248);return respondWithRpcPromise('Reload',_0x3782('0x32'),{'module':'chan_sip.so'});})[_0x3782('0x25')](handleError(_0x22c484,null));};