Built motion from commit (unavailable).|2.4.20
[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 _0x4b87=['keys','filters','intersection','model','fields','attributes','hasOwnProperty','nolimit','order','sort','where','pick','filter','name','merge','options','include','findAll','rows','show','params','rawAttributes','length','includeAll','find','create','body','join','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','readFileSync','root','html-pdf','eml-format','rimraf','zip-dir','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','api','../../config/utils','../../config/environment','../../mysqldb','client','test','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','then','info','VoiceContext,\x20%s,\x20%s','debug','VoiceContext,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','sendStatus','status','end','json','count','offset','limit','Content-Range','apply','reject','save','update','destroy','get','UserProfileResource','send','map','VoiceContext','fieldName','type','key','query'];(function(_0xf52fb6,_0x550581){var _0x4784df=function(_0x283622){while(--_0x283622){_0xf52fb6['push'](_0xf52fb6['shift']());}};_0x4784df(++_0x550581);}(_0x4b87,0x1cc));var _0x74b8=function(_0x50d198,_0x3f1125){_0x50d198=_0x50d198-0x0;var _0x363f05=_0x4b87[_0x50d198];return _0x363f05;};'use strict';var pdf=require(_0x74b8('0x0'));var emlformat=require(_0x74b8('0x1'));var rimraf=require(_0x74b8('0x2'));var zipdir=require(_0x74b8('0x3'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x74b8('0x4'));var Mustache=require(_0x74b8('0x5'));var util=require(_0x74b8('0x6'));var path=require(_0x74b8('0x7'));var sox=require(_0x74b8('0x8'));var csv=require(_0x74b8('0x9'));var ejs=require(_0x74b8('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0x74b8('0xb'));var crypto=require(_0x74b8('0xc'));var jsforce=require(_0x74b8('0xd'));var deskjs=require(_0x74b8('0xe'));var toCsv=require(_0x74b8('0x9'));var querystring=require(_0x74b8('0xf'));var Papa=require(_0x74b8('0x10'));var Redis=require('ioredis');var authService=require(_0x74b8('0x11'));var qs=require(_0x74b8('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x74b8('0x13'));var utils=require(_0x74b8('0x14'));var config=require(_0x74b8('0x15'));var db=require(_0x74b8('0x16'))['db'];var jayson=require('jayson/promise');var client=jayson[_0x74b8('0x17')]['http']({'port':0x232a});function checkPasswordPattern(_0x3c08aa,_0x1b849,_0x3ce59a){if(_0x3ce59a){var _0x302152=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x302152[_0x74b8('0x18')](_0x1b849)){return _0x3c08aa;}else{throw new db['Sequelize']['ValidationError'](_0x74b8('0x19'));}}else{return _0x3c08aa;}}function respondWithRpcPromise(_0x4be270,_0x1896e8,_0x4f4a6e,_0x59b71f){return new BPromise(function(_0x2625f6,_0x483537){var _0x2a0251=_0x59b71f||client;return _0x2a0251['request'](_0x4be270,_0x4f4a6e)[_0x74b8('0x1a')](function(_0x723e6d){logger[_0x74b8('0x1b')](_0x74b8('0x1c'),_0x1896e8,'request\x20sent');logger[_0x74b8('0x1d')](_0x74b8('0x1e'),_0x1896e8,_0x74b8('0x1f'),JSON[_0x74b8('0x20')](_0x723e6d));if(_0x723e6d[_0x74b8('0x21')]){if(_0x723e6d[_0x74b8('0x21')][_0x74b8('0x22')]===0x1f4){logger[_0x74b8('0x21')](_0x74b8('0x1c'),_0x1896e8,_0x723e6d[_0x74b8('0x21')][_0x74b8('0x23')]);return _0x483537(_0x723e6d[_0x74b8('0x21')][_0x74b8('0x23')]);}logger[_0x74b8('0x21')]('VoiceContext,\x20%s,\x20%s',_0x1896e8,_0x723e6d[_0x74b8('0x21')][_0x74b8('0x23')]);return _0x2625f6(_0x723e6d[_0x74b8('0x21')][_0x74b8('0x23')]);}else{logger[_0x74b8('0x1b')](_0x74b8('0x1c'),_0x1896e8,_0x74b8('0x1f'));_0x2625f6(_0x723e6d[_0x74b8('0x24')][_0x74b8('0x23')]);}})[_0x74b8('0x25')](function(_0x12497f){logger['error'](_0x74b8('0x1c'),_0x1896e8,_0x12497f);_0x483537(_0x12497f);});});}function respondWithStatusCode(_0xfc6ee,_0xed3c9e){_0xed3c9e=_0xed3c9e||0xcc;return function(_0x45af44){if(_0x45af44){return _0xfc6ee[_0x74b8('0x26')](_0xed3c9e);}return _0xfc6ee[_0x74b8('0x27')](_0xed3c9e)[_0x74b8('0x28')]();};}function respondWithResult(_0x10b7a2,_0x421d70){_0x421d70=_0x421d70||0xc8;return function(_0x16a23a){if(_0x16a23a){return _0x10b7a2[_0x74b8('0x27')](_0x421d70)[_0x74b8('0x29')](_0x16a23a);}};}function respondWithFilteredResult(_0x2b5ded,_0x1fb507){return function(_0x1e4ebf){if(_0x1e4ebf){var _0x5df5ea=_0x1e4ebf[_0x74b8('0x2a')],_0x373644=_0x1fb507[_0x74b8('0x2b')],_0x42a26b=_0x1fb507[_0x74b8('0x2b')]+_0x1fb507[_0x74b8('0x2c')],_0xebb8ff;if(_0x42a26b>=_0x5df5ea){_0x42a26b=_0x5df5ea;_0xebb8ff=0xc8;}else{_0xebb8ff=0xce;}_0x2b5ded[_0x74b8('0x27')](_0xebb8ff);return _0x2b5ded['set'](_0x74b8('0x2d'),_0x373644+'-'+_0x42a26b+'/'+_0x5df5ea)[_0x74b8('0x29')](_0x1e4ebf);}return null;};}function patchUpdates(_0x1bf792){return function(_0x3b773a){try{jsonpatch[_0x74b8('0x2e')](_0x3b773a,_0x1bf792,!![]);}catch(_0x48ed5b){return BPromise[_0x74b8('0x2f')](_0x48ed5b);}return _0x3b773a[_0x74b8('0x30')]();};}function saveUpdates(_0x5c0b79,_0x3f36ea){return function(_0x595317){if(_0x595317){return _0x595317[_0x74b8('0x31')](_0x5c0b79)[_0x74b8('0x1a')](function(_0xb350cf){return _0xb350cf;});}return null;};}function removeEntity(_0x4d1005,_0x5851c0){return function(_0x506001){if(_0x506001){return _0x506001[_0x74b8('0x32')]()[_0x74b8('0x1a')](function(){var _0x5a69eb=_0x506001[_0x74b8('0x33')]({'plain':!![]});var _0x1b89b1='Contexts';return db[_0x74b8('0x34')][_0x74b8('0x32')]({'where':{'type':_0x1b89b1,'resourceId':_0x5a69eb['id']}})[_0x74b8('0x1a')](function(){return _0x506001;});})[_0x74b8('0x1a')](function(){_0x4d1005[_0x74b8('0x27')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4114e6,_0x5a4bb9){return function(_0x5680f7){if(!_0x5680f7){_0x4114e6['sendStatus'](0x194);}return _0x5680f7;};}function handleError(_0x335a72,_0x2968e1){_0x2968e1=_0x2968e1||0x1f4;return function(_0x566a25){logger[_0x74b8('0x21')](_0x566a25['stack']);if(_0x566a25['name']){delete _0x566a25['name'];}_0x335a72[_0x74b8('0x27')](_0x2968e1)[_0x74b8('0x35')](_0x566a25);};}exports['index']=function(_0x266367,_0x375b7e){var _0x27d1df={},_0x2c4101={},_0x585823={'count':0x0,'rows':[]};var _0x8672b4=_[_0x74b8('0x36')](db[_0x74b8('0x37')]['rawAttributes'],function(_0x347f5f){return{'name':_0x347f5f[_0x74b8('0x38')],'type':_0x347f5f[_0x74b8('0x39')][_0x74b8('0x3a')]};});_0x2c4101['model']=_[_0x74b8('0x36')](_0x8672b4,'name');_0x2c4101[_0x74b8('0x3b')]=_[_0x74b8('0x3c')](_0x266367[_0x74b8('0x3b')]);_0x2c4101[_0x74b8('0x3d')]=_[_0x74b8('0x3e')](_0x2c4101[_0x74b8('0x3f')],_0x2c4101[_0x74b8('0x3b')]);_0x27d1df['attributes']=_[_0x74b8('0x3e')](_0x2c4101[_0x74b8('0x3f')],qs[_0x74b8('0x40')](_0x266367[_0x74b8('0x3b')][_0x74b8('0x40')]));_0x27d1df[_0x74b8('0x41')]=_0x27d1df['attributes']['length']?_0x27d1df[_0x74b8('0x41')]:_0x2c4101[_0x74b8('0x3f')];if(!_0x266367['query'][_0x74b8('0x42')](_0x74b8('0x43'))){_0x27d1df[_0x74b8('0x2c')]=qs[_0x74b8('0x2c')](_0x266367['query']['limit']);_0x27d1df[_0x74b8('0x2b')]=qs[_0x74b8('0x2b')](_0x266367[_0x74b8('0x3b')][_0x74b8('0x2b')]);}_0x27d1df[_0x74b8('0x44')]=qs[_0x74b8('0x45')](_0x266367['query'][_0x74b8('0x45')]);_0x27d1df[_0x74b8('0x46')]=qs[_0x74b8('0x3d')](_[_0x74b8('0x47')](_0x266367['query'],_0x2c4101[_0x74b8('0x3d')]));if(_0x266367[_0x74b8('0x3b')][_0x74b8('0x48')]){_0x27d1df[_0x74b8('0x46')]=_['merge'](_0x27d1df[_0x74b8('0x46')],{'$or':_[_0x74b8('0x36')](_0x8672b4,function(_0x2fb90b){if(_0x2fb90b['type']!=='VIRTUAL'){var _0x2be3f7={};_0x2be3f7[_0x2fb90b[_0x74b8('0x49')]]={'$like':'%'+_0x266367[_0x74b8('0x3b')]['filter']+'%'};return _0x2be3f7;}})});}_0x27d1df=_[_0x74b8('0x4a')]({},_0x27d1df,_0x266367[_0x74b8('0x4b')]);var _0x4d7f4c={'where':_0x27d1df[_0x74b8('0x46')]};return db[_0x74b8('0x37')]['count'](_0x4d7f4c)[_0x74b8('0x1a')](function(_0x2a945b){_0x585823[_0x74b8('0x2a')]=_0x2a945b;if(_0x266367['query']['includeAll']){_0x27d1df[_0x74b8('0x4c')]=[{'all':!![]}];}return db['VoiceContext'][_0x74b8('0x4d')](_0x27d1df);})[_0x74b8('0x1a')](function(_0x569e0c){_0x585823[_0x74b8('0x4e')]=_0x569e0c;return _0x585823;})[_0x74b8('0x1a')](respondWithFilteredResult(_0x375b7e,_0x27d1df))[_0x74b8('0x25')](handleError(_0x375b7e,null));};exports[_0x74b8('0x4f')]=function(_0x30abf5,_0x4f526e){var _0xfe4838={'raw':![],'where':{'id':_0x30abf5[_0x74b8('0x50')]['id']}},_0x505522={};_0x505522[_0x74b8('0x3f')]=_[_0x74b8('0x3c')](db[_0x74b8('0x37')][_0x74b8('0x51')]);_0x505522[_0x74b8('0x3b')]=_[_0x74b8('0x3c')](_0x30abf5[_0x74b8('0x3b')]);_0x505522[_0x74b8('0x3d')]=_[_0x74b8('0x3e')](_0x505522[_0x74b8('0x3f')],_0x505522[_0x74b8('0x3b')]);_0xfe4838['attributes']=_[_0x74b8('0x3e')](_0x505522['model'],qs[_0x74b8('0x40')](_0x30abf5[_0x74b8('0x3b')][_0x74b8('0x40')]));_0xfe4838[_0x74b8('0x41')]=_0xfe4838[_0x74b8('0x41')][_0x74b8('0x52')]?_0xfe4838[_0x74b8('0x41')]:_0x505522[_0x74b8('0x3f')];if(_0x30abf5[_0x74b8('0x3b')][_0x74b8('0x53')]){_0xfe4838['include']=[{'all':!![]}];}_0xfe4838=_[_0x74b8('0x4a')]({},_0xfe4838,_0x30abf5[_0x74b8('0x4b')]);return db['VoiceContext'][_0x74b8('0x54')](_0xfe4838)[_0x74b8('0x1a')](handleEntityNotFound(_0x4f526e,null))[_0x74b8('0x1a')](respondWithResult(_0x4f526e,null))[_0x74b8('0x25')](handleError(_0x4f526e,null));};exports[_0x74b8('0x55')]=function(_0x5c8597,_0xc056e9,_0x309d5e){var _0x1bdb65;return db[_0x74b8('0x37')]['create'](_0x5c8597[_0x74b8('0x56')],{'raw':!![]})['then'](function(_0x23ee20){_0x1bdb65=_0x23ee20;return db[_0x74b8('0x37')]['findAll']({'raw':!![]});})['then'](function(_0x251f2f){var _0x3f8996=fs['readFileSync'](path[_0x74b8('0x57')](config['root'],_0x74b8('0x58')),_0x74b8('0x59'));var _0x281548=ejs[_0x74b8('0x5a')](_0x3f8996,{'contexts':_0x251f2f||[]});fs[_0x74b8('0x5b')](_0x74b8('0x5c'),_0x281548);})['then'](function(){return respondWithRpcPromise(_0x74b8('0x5d'),'create',{'module':_0x74b8('0x5e')});})[_0x74b8('0x1a')](function(){var _0x511e95=_0x5c8597['user'][_0x74b8('0x33')]({'plain':!![]});if(!_0x511e95)throw new Error(_0x74b8('0x5f'));if(_0x511e95[_0x74b8('0x60')]===_0x74b8('0x61')){var _0x2ab7ce=_0x1bdb65[_0x74b8('0x33')]({'plain':!![]});return db[_0x74b8('0x62')][_0x74b8('0x54')]({'where':{'name':'Contexts','userProfileId':_0x511e95[_0x74b8('0x63')]},'raw':!![]})['then'](function(_0x158e5e){if(_0x158e5e&&_0x158e5e[_0x74b8('0x64')]===0x0){return db[_0x74b8('0x34')][_0x74b8('0x55')]({'name':_0x2ab7ce[_0x74b8('0x49')],'resourceId':_0x2ab7ce['id'],'type':_0x158e5e[_0x74b8('0x49')],'sectionId':_0x158e5e['id']},{})[_0x74b8('0x1a')](function(){return _0x1bdb65;});}else{return _0x1bdb65;}})[_0x74b8('0x25')](function(_0x41fa60){logger['error'](_0x74b8('0x65'),_0x41fa60);throw _0x41fa60;});}return _0x1bdb65;})[_0x74b8('0x1a')](respondWithResult(_0xc056e9,0xc9))[_0x74b8('0x25')](handleError(_0xc056e9,null));};exports[_0x74b8('0x31')]=function(_0x28c2f8,_0x5accb8,_0x5af252){var _0x3e2d01;return db['VoiceContext'][_0x74b8('0x54')]({'where':{'id':_0x28c2f8['params']['id']}})['then'](handleEntityNotFound(_0x5accb8,null))[_0x74b8('0x1a')](saveUpdates(_0x28c2f8['body'],null))[_0x74b8('0x1a')](function(_0x164218){if(_0x164218){_0x3e2d01=_0x164218;return db[_0x74b8('0x37')][_0x74b8('0x4d')]({'raw':!![]});}})['then'](function(_0x528914){var _0x2a3a5b=fs[_0x74b8('0x66')](path[_0x74b8('0x57')](config[_0x74b8('0x67')],_0x74b8('0x58')),_0x74b8('0x59'));var _0x43b888=ejs[_0x74b8('0x5a')](_0x2a3a5b,{'contexts':_0x528914||[]});fs[_0x74b8('0x5b')](_0x74b8('0x5c'),_0x43b888);})[_0x74b8('0x1a')](function(){return respondWithRpcPromise(_0x74b8('0x5d'),_0x74b8('0x31'),{'module':_0x74b8('0x5e')});})[_0x74b8('0x1a')](function(){return _0x3e2d01;})[_0x74b8('0x1a')](respondWithResult(_0x5accb8,null))[_0x74b8('0x25')](handleError(_0x5accb8,null));};exports[_0x74b8('0x32')]=function(_0x17e2b0,_0x565e70,_0x5f029e){var _0xff73a0;return db[_0x74b8('0x37')]['find']({'where':{'id':_0x17e2b0[_0x74b8('0x50')]['id']}})['then'](handleEntityNotFound(_0x565e70,null))['then'](removeEntity(_0x565e70,null))['then'](function(){return db[_0x74b8('0x37')][_0x74b8('0x4d')]({'raw':!![]});})['then'](function(_0x365456){var _0x1b57e8=fs['readFileSync'](path[_0x74b8('0x57')](config[_0x74b8('0x67')],_0x74b8('0x58')),_0x74b8('0x59'));var _0x3e6541=ejs[_0x74b8('0x5a')](_0x1b57e8,{'contexts':_0x365456});fs[_0x74b8('0x5b')](_0x74b8('0x5c'),_0x3e6541);return respondWithRpcPromise(_0x74b8('0x5d'),_0x74b8('0x32'),{'module':_0x74b8('0x5e')});})[_0x74b8('0x25')](handleError(_0x565e70,null));};