Built motion from commit (unavailable).|2.4.17
[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 _0x3101=['query','model','fields','attributes','length','hasOwnProperty','nolimit','limit','order','sort','where','filters','pick','filter','merge','options','includeAll','include','rows','params','create','body','findAll','join','root','server/files/templates/context.ejs','utf8','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','Reload','role','user','UserProfileSection','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','readFileSync','render','chan_sip.so','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','sox','to-csv','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','jayson/promise','client','http','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','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','error','code','VoiceContext,\x20%s,\x20%s','message','info','result','catch','sendStatus','status','end','json','count','offset','set','Content-Range','apply','reject','save','destroy','then','get','Contexts','UserProfileResource','stack','name','send','index','map','VoiceContext','rawAttributes','fieldName','type','keys','intersection'];(function(_0x3cbe1c,_0x4bcabd){var _0x5ee08b=function(_0x5c53e6){while(--_0x5c53e6){_0x3cbe1c['push'](_0x3cbe1c['shift']());}};_0x5ee08b(++_0x4bcabd);}(_0x3101,0xfd));var _0x1310=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x3101[_0x3dd15e];return _0x231fd0;};'use strict';var pdf=require(_0x1310('0x0'));var emlformat=require(_0x1310('0x1'));var rimraf=require(_0x1310('0x2'));var zipdir=require(_0x1310('0x3'));var jsonpatch=require(_0x1310('0x4'));var rp=require('request-promise');var moment=require(_0x1310('0x5'));var BPromise=require(_0x1310('0x6'));var Mustache=require('mustache');var util=require(_0x1310('0x7'));var path=require('path');var sox=require(_0x1310('0x8'));var csv=require(_0x1310('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x1310('0xa'));var crypto=require(_0x1310('0xb'));var jsforce=require(_0x1310('0xc'));var deskjs=require(_0x1310('0xd'));var toCsv=require(_0x1310('0x9'));var querystring=require(_0x1310('0xe'));var Papa=require('papaparse');var Redis=require(_0x1310('0xf'));var authService=require(_0x1310('0x10'));var qs=require(_0x1310('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x1310('0x12'))('api');var utils=require(_0x1310('0x13'));var config=require(_0x1310('0x14'));var db=require(_0x1310('0x15'))['db'];var jayson=require(_0x1310('0x16'));var client=jayson[_0x1310('0x17')][_0x1310('0x18')]({'port':0x232a});function checkPasswordPattern(_0xb68c65,_0x1adbf3,_0x13e89b){if(_0x13e89b){var _0x226350=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x226350['test'](_0x1adbf3)){return _0xb68c65;}else{throw new db['Sequelize'][(_0x1310('0x19'))](_0x1310('0x1a'));}}else{return _0xb68c65;}}function respondWithRpcPromise(_0x56196b,_0xd650b1,_0x49e3f5,_0x5bb3d4){return new BPromise(function(_0x1281bd,_0x18767a){var _0x5918a6=_0x5bb3d4||client;return _0x5918a6[_0x1310('0x1b')](_0x56196b,_0x49e3f5)['then'](function(_0x3a9cf2){logger['info']('VoiceContext,\x20%s,\x20%s',_0xd650b1,_0x1310('0x1c'));logger[_0x1310('0x1d')](_0x1310('0x1e'),_0xd650b1,_0x1310('0x1c'),JSON['stringify'](_0x3a9cf2));if(_0x3a9cf2['error']){if(_0x3a9cf2[_0x1310('0x1f')][_0x1310('0x20')]===0x1f4){logger[_0x1310('0x1f')](_0x1310('0x21'),_0xd650b1,_0x3a9cf2[_0x1310('0x1f')][_0x1310('0x22')]);return _0x18767a(_0x3a9cf2[_0x1310('0x1f')][_0x1310('0x22')]);}logger['error'](_0x1310('0x21'),_0xd650b1,_0x3a9cf2[_0x1310('0x1f')][_0x1310('0x22')]);return _0x1281bd(_0x3a9cf2[_0x1310('0x1f')][_0x1310('0x22')]);}else{logger[_0x1310('0x23')](_0x1310('0x21'),_0xd650b1,'request\x20sent');_0x1281bd(_0x3a9cf2[_0x1310('0x24')][_0x1310('0x22')]);}})[_0x1310('0x25')](function(_0x10ff8b){logger['error'](_0x1310('0x21'),_0xd650b1,_0x10ff8b);_0x18767a(_0x10ff8b);});});}function respondWithStatusCode(_0x47b227,_0x4e970c){_0x4e970c=_0x4e970c||0xcc;return function(_0x1933f1){if(_0x1933f1){return _0x47b227[_0x1310('0x26')](_0x4e970c);}return _0x47b227[_0x1310('0x27')](_0x4e970c)[_0x1310('0x28')]();};}function respondWithResult(_0x189f4a,_0x57246e){_0x57246e=_0x57246e||0xc8;return function(_0x102c8c){if(_0x102c8c){return _0x189f4a['status'](_0x57246e)[_0x1310('0x29')](_0x102c8c);}};}function respondWithFilteredResult(_0x3d5f92,_0x3a948e){return function(_0x297ec){if(_0x297ec){var _0x216946=_0x297ec[_0x1310('0x2a')],_0x3a7770=_0x3a948e[_0x1310('0x2b')],_0x1148dd=_0x3a948e[_0x1310('0x2b')]+_0x3a948e['limit'],_0x14ee3d;if(_0x1148dd>=_0x216946){_0x1148dd=_0x216946;_0x14ee3d=0xc8;}else{_0x14ee3d=0xce;}_0x3d5f92[_0x1310('0x27')](_0x14ee3d);return _0x3d5f92[_0x1310('0x2c')](_0x1310('0x2d'),_0x3a7770+'-'+_0x1148dd+'/'+_0x216946)['json'](_0x297ec);}return null;};}function patchUpdates(_0x5cea6d){return function(_0x13d04e){try{jsonpatch[_0x1310('0x2e')](_0x13d04e,_0x5cea6d,!![]);}catch(_0x57a445){return BPromise[_0x1310('0x2f')](_0x57a445);}return _0x13d04e[_0x1310('0x30')]();};}function saveUpdates(_0x3de558,_0xf02856){return function(_0x354f30){if(_0x354f30){return _0x354f30['update'](_0x3de558)['then'](function(_0x20b814){return _0x20b814;});}return null;};}function removeEntity(_0x327cc3,_0x5953cf){return function(_0x5f3ff3){if(_0x5f3ff3){return _0x5f3ff3[_0x1310('0x31')]()[_0x1310('0x32')](function(){var _0x1819c=_0x5f3ff3[_0x1310('0x33')]({'plain':!![]});var _0x3942d1=_0x1310('0x34');return db[_0x1310('0x35')][_0x1310('0x31')]({'where':{'type':_0x3942d1,'resourceId':_0x1819c['id']}})[_0x1310('0x32')](function(){return _0x5f3ff3;});})['then'](function(){_0x327cc3[_0x1310('0x27')](0xcc)[_0x1310('0x28')]();});}};}function handleEntityNotFound(_0x572563,_0xe022ce){return function(_0x2b90f4){if(!_0x2b90f4){_0x572563['sendStatus'](0x194);}return _0x2b90f4;};}function handleError(_0x197640,_0x433273){_0x433273=_0x433273||0x1f4;return function(_0x14511a){logger[_0x1310('0x1f')](_0x14511a[_0x1310('0x36')]);if(_0x14511a['name']){delete _0x14511a[_0x1310('0x37')];}_0x197640[_0x1310('0x27')](_0x433273)[_0x1310('0x38')](_0x14511a);};}exports[_0x1310('0x39')]=function(_0x1b62ec,_0x1b6bab){var _0x5a8eb4={},_0x1ada17={},_0x50d56d={'count':0x0,'rows':[]};var _0x157803=_[_0x1310('0x3a')](db[_0x1310('0x3b')][_0x1310('0x3c')],function(_0x5e0813){return{'name':_0x5e0813[_0x1310('0x3d')],'type':_0x5e0813[_0x1310('0x3e')]['key']};});_0x1ada17['model']=_[_0x1310('0x3a')](_0x157803,_0x1310('0x37'));_0x1ada17['query']=_[_0x1310('0x3f')](_0x1b62ec['query']);_0x1ada17['filters']=_[_0x1310('0x40')](_0x1ada17['model'],_0x1ada17[_0x1310('0x41')]);_0x5a8eb4['attributes']=_[_0x1310('0x40')](_0x1ada17[_0x1310('0x42')],qs[_0x1310('0x43')](_0x1b62ec[_0x1310('0x41')][_0x1310('0x43')]));_0x5a8eb4['attributes']=_0x5a8eb4[_0x1310('0x44')][_0x1310('0x45')]?_0x5a8eb4[_0x1310('0x44')]:_0x1ada17['model'];if(!_0x1b62ec[_0x1310('0x41')][_0x1310('0x46')](_0x1310('0x47'))){_0x5a8eb4['limit']=qs[_0x1310('0x48')](_0x1b62ec[_0x1310('0x41')][_0x1310('0x48')]);_0x5a8eb4[_0x1310('0x2b')]=qs[_0x1310('0x2b')](_0x1b62ec['query'][_0x1310('0x2b')]);}_0x5a8eb4[_0x1310('0x49')]=qs[_0x1310('0x4a')](_0x1b62ec[_0x1310('0x41')][_0x1310('0x4a')]);_0x5a8eb4[_0x1310('0x4b')]=qs[_0x1310('0x4c')](_[_0x1310('0x4d')](_0x1b62ec[_0x1310('0x41')],_0x1ada17['filters']));if(_0x1b62ec[_0x1310('0x41')][_0x1310('0x4e')]){_0x5a8eb4[_0x1310('0x4b')]=_[_0x1310('0x4f')](_0x5a8eb4[_0x1310('0x4b')],{'$or':_[_0x1310('0x3a')](_0x157803,function(_0x3e5c88){if(_0x3e5c88[_0x1310('0x3e')]!=='VIRTUAL'){var _0xfcf37f={};_0xfcf37f[_0x3e5c88['name']]={'$like':'%'+_0x1b62ec[_0x1310('0x41')][_0x1310('0x4e')]+'%'};return _0xfcf37f;}})});}_0x5a8eb4=_['merge']({},_0x5a8eb4,_0x1b62ec[_0x1310('0x50')]);var _0x417fd4={'where':_0x5a8eb4[_0x1310('0x4b')]};return db['VoiceContext'][_0x1310('0x2a')](_0x417fd4)['then'](function(_0x2ae8d0){_0x50d56d[_0x1310('0x2a')]=_0x2ae8d0;if(_0x1b62ec[_0x1310('0x41')][_0x1310('0x51')]){_0x5a8eb4[_0x1310('0x52')]=[{'all':!![]}];}return db[_0x1310('0x3b')]['findAll'](_0x5a8eb4);})[_0x1310('0x32')](function(_0xaddec9){_0x50d56d[_0x1310('0x53')]=_0xaddec9;return _0x50d56d;})['then'](respondWithFilteredResult(_0x1b6bab,_0x5a8eb4))[_0x1310('0x25')](handleError(_0x1b6bab,null));};exports['show']=function(_0xb817ae,_0x441eb2){var _0x79312d={'raw':![],'where':{'id':_0xb817ae[_0x1310('0x54')]['id']}},_0x136b7c={};_0x136b7c[_0x1310('0x42')]=_[_0x1310('0x3f')](db[_0x1310('0x3b')][_0x1310('0x3c')]);_0x136b7c[_0x1310('0x41')]=_[_0x1310('0x3f')](_0xb817ae[_0x1310('0x41')]);_0x136b7c['filters']=_[_0x1310('0x40')](_0x136b7c[_0x1310('0x42')],_0x136b7c['query']);_0x79312d[_0x1310('0x44')]=_[_0x1310('0x40')](_0x136b7c['model'],qs['fields'](_0xb817ae[_0x1310('0x41')][_0x1310('0x43')]));_0x79312d['attributes']=_0x79312d[_0x1310('0x44')][_0x1310('0x45')]?_0x79312d['attributes']:_0x136b7c['model'];if(_0xb817ae[_0x1310('0x41')]['includeAll']){_0x79312d[_0x1310('0x52')]=[{'all':!![]}];}_0x79312d=_['merge']({},_0x79312d,_0xb817ae[_0x1310('0x50')]);return db['VoiceContext']['find'](_0x79312d)[_0x1310('0x32')](handleEntityNotFound(_0x441eb2,null))['then'](respondWithResult(_0x441eb2,null))[_0x1310('0x25')](handleError(_0x441eb2,null));};exports[_0x1310('0x55')]=function(_0x13d903,_0x45710c,_0x51dabd){var _0xd6c03d;return db[_0x1310('0x3b')][_0x1310('0x55')](_0x13d903[_0x1310('0x56')],{'raw':!![]})[_0x1310('0x32')](function(_0x509695){_0xd6c03d=_0x509695;return db[_0x1310('0x3b')][_0x1310('0x57')]({'raw':!![]});})['then'](function(_0x4b412e){var _0x3b571e=fs['readFileSync'](path[_0x1310('0x58')](config[_0x1310('0x59')],_0x1310('0x5a')),_0x1310('0x5b'));var _0x2c4c8b=ejs['render'](_0x3b571e,{'contexts':_0x4b412e||[]});fs[_0x1310('0x5c')](_0x1310('0x5d'),_0x2c4c8b);})['then'](function(){return respondWithRpcPromise(_0x1310('0x5e'),'create',{'module':'chan_sip.so'});})['then'](function(){var _0x18d4fe=_0x13d903['user'][_0x1310('0x33')]({'plain':!![]});if(!_0x18d4fe)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x18d4fe[_0x1310('0x5f')]===_0x1310('0x60')){var _0x6bde0d=_0xd6c03d['get']({'plain':!![]});return db[_0x1310('0x61')][_0x1310('0x62')]({'where':{'name':_0x1310('0x34'),'userProfileId':_0x18d4fe[_0x1310('0x63')]},'raw':!![]})[_0x1310('0x32')](function(_0x39f8a3){if(_0x39f8a3&&_0x39f8a3[_0x1310('0x64')]===0x0){return db[_0x1310('0x35')][_0x1310('0x55')]({'name':_0x6bde0d[_0x1310('0x37')],'resourceId':_0x6bde0d['id'],'type':_0x39f8a3[_0x1310('0x37')],'sectionId':_0x39f8a3['id']},{})[_0x1310('0x32')](function(){return _0xd6c03d;});}else{return _0xd6c03d;}})['catch'](function(_0x14d1a6){logger[_0x1310('0x1f')](_0x1310('0x65'),_0x14d1a6);throw _0x14d1a6;});}return _0xd6c03d;})[_0x1310('0x32')](respondWithResult(_0x45710c,0xc9))[_0x1310('0x25')](handleError(_0x45710c,null));};exports[_0x1310('0x66')]=function(_0x1f681f,_0x100897,_0x3b5826){var _0x24d691;return db['VoiceContext'][_0x1310('0x62')]({'where':{'id':_0x1f681f[_0x1310('0x54')]['id']}})[_0x1310('0x32')](handleEntityNotFound(_0x100897,null))['then'](saveUpdates(_0x1f681f[_0x1310('0x56')],null))[_0x1310('0x32')](function(_0x289d49){if(_0x289d49){_0x24d691=_0x289d49;return db[_0x1310('0x3b')][_0x1310('0x57')]({'raw':!![]});}})[_0x1310('0x32')](function(_0x593f81){var _0x56cd9e=fs[_0x1310('0x67')](path[_0x1310('0x58')](config['root'],'server/files/templates/context.ejs'),_0x1310('0x5b'));var _0x31abf8=ejs[_0x1310('0x68')](_0x56cd9e,{'contexts':_0x593f81||[]});fs[_0x1310('0x5c')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x31abf8);})[_0x1310('0x32')](function(){return respondWithRpcPromise(_0x1310('0x5e'),_0x1310('0x66'),{'module':'chan_sip.so'});})[_0x1310('0x32')](function(){return _0x24d691;})[_0x1310('0x32')](respondWithResult(_0x100897,null))[_0x1310('0x25')](handleError(_0x100897,null));};exports[_0x1310('0x31')]=function(_0x282249,_0x15cf8e,_0x38aec1){var _0x3c1eab;return db[_0x1310('0x3b')][_0x1310('0x62')]({'where':{'id':_0x282249[_0x1310('0x54')]['id']}})[_0x1310('0x32')](handleEntityNotFound(_0x15cf8e,null))[_0x1310('0x32')](removeEntity(_0x15cf8e,null))[_0x1310('0x32')](function(){return db['VoiceContext'][_0x1310('0x57')]({'raw':!![]});})[_0x1310('0x32')](function(_0x36028e){var _0xdb570c=fs['readFileSync'](path[_0x1310('0x58')](config['root'],'server/files/templates/context.ejs'),'utf8');var _0x3509b5=ejs[_0x1310('0x68')](_0xdb570c,{'contexts':_0x36028e});fs[_0x1310('0x5c')](_0x1310('0x5d'),_0x3509b5);return respondWithRpcPromise(_0x1310('0x5e'),_0x1310('0x31'),{'module':_0x1310('0x69')});})['catch'](handleError(_0x15cf8e,null));};