Built motion from commit (unavailable).|2.4.21
[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 _0xa5ef=['status','end','json','count','offset','limit','apply','save','update','destroy','get','Contexts','UserProfileResource','name','send','index','VoiceContext','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','merge','VIRTUAL','options','where','includeAll','include','findAll','rows','catch','show','params','create','readFileSync','join','root','server/files/templates/context.ejs','utf8','render','/etc/asterisk/extensions_xcally_contexts.conf','Reload','chan_sip.so','user','role','UserProfileSection','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','writeFileSync','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','jayson/promise','http','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','info','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','code','VoiceContext,\x20%s,\x20%s','message','result','sendStatus'];(function(_0x4b2436,_0x452299){var _0x4f5ab2=function(_0x5c6679){while(--_0x5c6679){_0x4b2436['push'](_0x4b2436['shift']());}};_0x4f5ab2(++_0x452299);}(_0xa5ef,0x18e));var _0xfa5e=function(_0x5b58d6,_0x3043cd){_0x5b58d6=_0x5b58d6-0x0;var _0x13e026=_0xa5ef[_0x5b58d6];return _0x13e026;};'use strict';var pdf=require(_0xfa5e('0x0'));var emlformat=require(_0xfa5e('0x1'));var rimraf=require(_0xfa5e('0x2'));var zipdir=require(_0xfa5e('0x3'));var jsonpatch=require(_0xfa5e('0x4'));var rp=require(_0xfa5e('0x5'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xfa5e('0x6'));var util=require(_0xfa5e('0x7'));var path=require(_0xfa5e('0x8'));var sox=require(_0xfa5e('0x9'));var csv=require(_0xfa5e('0xa'));var ejs=require(_0xfa5e('0xb'));var fs=require('fs');var _=require(_0xfa5e('0xc'));var squel=require(_0xfa5e('0xd'));var crypto=require(_0xfa5e('0xe'));var jsforce=require(_0xfa5e('0xf'));var deskjs=require(_0xfa5e('0x10'));var toCsv=require(_0xfa5e('0xa'));var querystring=require(_0xfa5e('0x11'));var Papa=require(_0xfa5e('0x12'));var Redis=require(_0xfa5e('0x13'));var authService=require('../../components/auth/service');var qs=require(_0xfa5e('0x14'));var as=require(_0xfa5e('0x15'));var hardwareService=require(_0xfa5e('0x16'));var logger=require(_0xfa5e('0x17'))(_0xfa5e('0x18'));var utils=require(_0xfa5e('0x19'));var config=require(_0xfa5e('0x1a'));var db=require('../../mysqldb')['db'];var jayson=require(_0xfa5e('0x1b'));var client=jayson['client'][_0xfa5e('0x1c')]({'port':0x232a});function checkPasswordPattern(_0x586560,_0x3ef69a,_0x5e0a21){if(_0x5e0a21){var _0x107e89=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x107e89[_0xfa5e('0x1d')](_0x3ef69a)){return _0x586560;}else{throw new db[(_0xfa5e('0x1e'))][(_0xfa5e('0x1f'))](_0xfa5e('0x20'));}}else{return _0x586560;}}function respondWithRpcPromise(_0x8f5b68,_0x21162e,_0xc913c4,_0x40439d){return new BPromise(function(_0x17fc74,_0x51b05a){var _0x57f92b=_0x40439d||client;return _0x57f92b[_0xfa5e('0x21')](_0x8f5b68,_0xc913c4)[_0xfa5e('0x22')](function(_0x4d53b7){logger[_0xfa5e('0x23')]('VoiceContext,\x20%s,\x20%s',_0x21162e,_0xfa5e('0x24'));logger[_0xfa5e('0x25')](_0xfa5e('0x26'),_0x21162e,_0xfa5e('0x24'),JSON[_0xfa5e('0x27')](_0x4d53b7));if(_0x4d53b7[_0xfa5e('0x28')]){if(_0x4d53b7[_0xfa5e('0x28')][_0xfa5e('0x29')]===0x1f4){logger['error'](_0xfa5e('0x2a'),_0x21162e,_0x4d53b7[_0xfa5e('0x28')][_0xfa5e('0x2b')]);return _0x51b05a(_0x4d53b7[_0xfa5e('0x28')][_0xfa5e('0x2b')]);}logger['error'](_0xfa5e('0x2a'),_0x21162e,_0x4d53b7[_0xfa5e('0x28')][_0xfa5e('0x2b')]);return _0x17fc74(_0x4d53b7['error'][_0xfa5e('0x2b')]);}else{logger[_0xfa5e('0x23')](_0xfa5e('0x2a'),_0x21162e,_0xfa5e('0x24'));_0x17fc74(_0x4d53b7[_0xfa5e('0x2c')]['message']);}})['catch'](function(_0x3d3a6b){logger[_0xfa5e('0x28')]('VoiceContext,\x20%s,\x20%s',_0x21162e,_0x3d3a6b);_0x51b05a(_0x3d3a6b);});});}function respondWithStatusCode(_0x28e1b8,_0x1db6c5){_0x1db6c5=_0x1db6c5||0xcc;return function(_0x22b667){if(_0x22b667){return _0x28e1b8[_0xfa5e('0x2d')](_0x1db6c5);}return _0x28e1b8[_0xfa5e('0x2e')](_0x1db6c5)[_0xfa5e('0x2f')]();};}function respondWithResult(_0x2e1a7a,_0x1571e6){_0x1571e6=_0x1571e6||0xc8;return function(_0x2fb8aa){if(_0x2fb8aa){return _0x2e1a7a[_0xfa5e('0x2e')](_0x1571e6)[_0xfa5e('0x30')](_0x2fb8aa);}};}function respondWithFilteredResult(_0xb8775b,_0x9ab7fc){return function(_0xf89c93){if(_0xf89c93){var _0x46bf58=_0xf89c93[_0xfa5e('0x31')],_0xf0bb8a=_0x9ab7fc['offset'],_0x32d258=_0x9ab7fc[_0xfa5e('0x32')]+_0x9ab7fc[_0xfa5e('0x33')],_0x2356c7;if(_0x32d258>=_0x46bf58){_0x32d258=_0x46bf58;_0x2356c7=0xc8;}else{_0x2356c7=0xce;}_0xb8775b[_0xfa5e('0x2e')](_0x2356c7);return _0xb8775b['set']('Content-Range',_0xf0bb8a+'-'+_0x32d258+'/'+_0x46bf58)[_0xfa5e('0x30')](_0xf89c93);}return null;};}function patchUpdates(_0xdc64de){return function(_0x512a20){try{jsonpatch[_0xfa5e('0x34')](_0x512a20,_0xdc64de,!![]);}catch(_0x40a1e5){return BPromise['reject'](_0x40a1e5);}return _0x512a20[_0xfa5e('0x35')]();};}function saveUpdates(_0x5eac18,_0x53abfd){return function(_0x51f0e4){if(_0x51f0e4){return _0x51f0e4[_0xfa5e('0x36')](_0x5eac18)[_0xfa5e('0x22')](function(_0x3fafba){return _0x3fafba;});}return null;};}function removeEntity(_0x32d9a0,_0x362882){return function(_0x1d4530){if(_0x1d4530){return _0x1d4530[_0xfa5e('0x37')]()['then'](function(){var _0x150d21=_0x1d4530[_0xfa5e('0x38')]({'plain':!![]});var _0x1f41cd=_0xfa5e('0x39');return db[_0xfa5e('0x3a')][_0xfa5e('0x37')]({'where':{'type':_0x1f41cd,'resourceId':_0x150d21['id']}})[_0xfa5e('0x22')](function(){return _0x1d4530;});})[_0xfa5e('0x22')](function(){_0x32d9a0[_0xfa5e('0x2e')](0xcc)[_0xfa5e('0x2f')]();});}};}function handleEntityNotFound(_0x25dcba,_0x1a933c){return function(_0x58a9b6){if(!_0x58a9b6){_0x25dcba[_0xfa5e('0x2d')](0x194);}return _0x58a9b6;};}function handleError(_0x1ed764,_0x4e778d){_0x4e778d=_0x4e778d||0x1f4;return function(_0x36ef12){logger[_0xfa5e('0x28')](_0x36ef12['stack']);if(_0x36ef12[_0xfa5e('0x3b')]){delete _0x36ef12[_0xfa5e('0x3b')];}_0x1ed764[_0xfa5e('0x2e')](_0x4e778d)[_0xfa5e('0x3c')](_0x36ef12);};}exports[_0xfa5e('0x3d')]=function(_0xc50e54,_0x22e0b6){var _0x186b39={},_0xbb99c2={},_0x52e8d6={'count':0x0,'rows':[]};var _0x1c3c7a=_['map'](db[_0xfa5e('0x3e')][_0xfa5e('0x3f')],function(_0x126ac5){return{'name':_0x126ac5[_0xfa5e('0x40')],'type':_0x126ac5[_0xfa5e('0x41')][_0xfa5e('0x42')]};});_0xbb99c2[_0xfa5e('0x43')]=_['map'](_0x1c3c7a,_0xfa5e('0x3b'));_0xbb99c2['query']=_[_0xfa5e('0x44')](_0xc50e54[_0xfa5e('0x45')]);_0xbb99c2[_0xfa5e('0x46')]=_[_0xfa5e('0x47')](_0xbb99c2['model'],_0xbb99c2[_0xfa5e('0x45')]);_0x186b39[_0xfa5e('0x48')]=_[_0xfa5e('0x47')](_0xbb99c2['model'],qs[_0xfa5e('0x49')](_0xc50e54[_0xfa5e('0x45')][_0xfa5e('0x49')]));_0x186b39[_0xfa5e('0x48')]=_0x186b39[_0xfa5e('0x48')][_0xfa5e('0x4a')]?_0x186b39[_0xfa5e('0x48')]:_0xbb99c2[_0xfa5e('0x43')];if(!_0xc50e54['query'][_0xfa5e('0x4b')](_0xfa5e('0x4c'))){_0x186b39[_0xfa5e('0x33')]=qs[_0xfa5e('0x33')](_0xc50e54[_0xfa5e('0x45')][_0xfa5e('0x33')]);_0x186b39[_0xfa5e('0x32')]=qs[_0xfa5e('0x32')](_0xc50e54[_0xfa5e('0x45')]['offset']);}_0x186b39[_0xfa5e('0x4d')]=qs[_0xfa5e('0x4e')](_0xc50e54['query'][_0xfa5e('0x4e')]);_0x186b39['where']=qs[_0xfa5e('0x46')](_[_0xfa5e('0x4f')](_0xc50e54[_0xfa5e('0x45')],_0xbb99c2['filters']));if(_0xc50e54[_0xfa5e('0x45')][_0xfa5e('0x50')]){_0x186b39['where']=_[_0xfa5e('0x51')](_0x186b39['where'],{'$or':_['map'](_0x1c3c7a,function(_0x11da2c){if(_0x11da2c[_0xfa5e('0x41')]!==_0xfa5e('0x52')){var _0x343c81={};_0x343c81[_0x11da2c['name']]={'$like':'%'+_0xc50e54[_0xfa5e('0x45')]['filter']+'%'};return _0x343c81;}})});}_0x186b39=_[_0xfa5e('0x51')]({},_0x186b39,_0xc50e54[_0xfa5e('0x53')]);var _0xcf116d={'where':_0x186b39[_0xfa5e('0x54')]};return db[_0xfa5e('0x3e')][_0xfa5e('0x31')](_0xcf116d)['then'](function(_0xac55c6){_0x52e8d6[_0xfa5e('0x31')]=_0xac55c6;if(_0xc50e54[_0xfa5e('0x45')][_0xfa5e('0x55')]){_0x186b39[_0xfa5e('0x56')]=[{'all':!![]}];}return db['VoiceContext'][_0xfa5e('0x57')](_0x186b39);})[_0xfa5e('0x22')](function(_0x4a6466){_0x52e8d6[_0xfa5e('0x58')]=_0x4a6466;return _0x52e8d6;})[_0xfa5e('0x22')](respondWithFilteredResult(_0x22e0b6,_0x186b39))[_0xfa5e('0x59')](handleError(_0x22e0b6,null));};exports[_0xfa5e('0x5a')]=function(_0x4e02d7,_0x5ba1e5){var _0x3ef5dd={'raw':![],'where':{'id':_0x4e02d7[_0xfa5e('0x5b')]['id']}},_0x401995={};_0x401995['model']=_[_0xfa5e('0x44')](db['VoiceContext'][_0xfa5e('0x3f')]);_0x401995[_0xfa5e('0x45')]=_[_0xfa5e('0x44')](_0x4e02d7['query']);_0x401995[_0xfa5e('0x46')]=_['intersection'](_0x401995['model'],_0x401995[_0xfa5e('0x45')]);_0x3ef5dd[_0xfa5e('0x48')]=_['intersection'](_0x401995['model'],qs[_0xfa5e('0x49')](_0x4e02d7[_0xfa5e('0x45')]['fields']));_0x3ef5dd[_0xfa5e('0x48')]=_0x3ef5dd[_0xfa5e('0x48')][_0xfa5e('0x4a')]?_0x3ef5dd[_0xfa5e('0x48')]:_0x401995[_0xfa5e('0x43')];if(_0x4e02d7[_0xfa5e('0x45')][_0xfa5e('0x55')]){_0x3ef5dd['include']=[{'all':!![]}];}_0x3ef5dd=_[_0xfa5e('0x51')]({},_0x3ef5dd,_0x4e02d7[_0xfa5e('0x53')]);return db[_0xfa5e('0x3e')]['find'](_0x3ef5dd)[_0xfa5e('0x22')](handleEntityNotFound(_0x5ba1e5,null))[_0xfa5e('0x22')](respondWithResult(_0x5ba1e5,null))[_0xfa5e('0x59')](handleError(_0x5ba1e5,null));};exports[_0xfa5e('0x5c')]=function(_0x5c174f,_0x1f1c00,_0x3ba57a){var _0x92d5d2;return db[_0xfa5e('0x3e')][_0xfa5e('0x5c')](_0x5c174f['body'],{'raw':!![]})['then'](function(_0x562cf4){_0x92d5d2=_0x562cf4;return db['VoiceContext'][_0xfa5e('0x57')]({'raw':!![]});})[_0xfa5e('0x22')](function(_0x4c75bb){var _0x3c7ea5=fs[_0xfa5e('0x5d')](path[_0xfa5e('0x5e')](config[_0xfa5e('0x5f')],_0xfa5e('0x60')),_0xfa5e('0x61'));var _0x4cb7a7=ejs[_0xfa5e('0x62')](_0x3c7ea5,{'contexts':_0x4c75bb||[]});fs['writeFileSync'](_0xfa5e('0x63'),_0x4cb7a7);})['then'](function(){return respondWithRpcPromise(_0xfa5e('0x64'),'create',{'module':_0xfa5e('0x65')});})[_0xfa5e('0x22')](function(){var _0x12ff20=_0x5c174f[_0xfa5e('0x66')][_0xfa5e('0x38')]({'plain':!![]});if(!_0x12ff20)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x12ff20[_0xfa5e('0x67')]===_0xfa5e('0x66')){var _0xf4f406=_0x92d5d2[_0xfa5e('0x38')]({'plain':!![]});return db[_0xfa5e('0x68')][_0xfa5e('0x69')]({'where':{'name':'Contexts','userProfileId':_0x12ff20[_0xfa5e('0x6a')]},'raw':!![]})[_0xfa5e('0x22')](function(_0x25cdb8){if(_0x25cdb8&&_0x25cdb8[_0xfa5e('0x6b')]===0x0){return db[_0xfa5e('0x3a')][_0xfa5e('0x5c')]({'name':_0xf4f406['name'],'resourceId':_0xf4f406['id'],'type':_0x25cdb8[_0xfa5e('0x3b')],'sectionId':_0x25cdb8['id']},{})[_0xfa5e('0x22')](function(){return _0x92d5d2;});}else{return _0x92d5d2;}})[_0xfa5e('0x59')](function(_0x587048){logger[_0xfa5e('0x28')](_0xfa5e('0x6c'),_0x587048);throw _0x587048;});}return _0x92d5d2;})['then'](respondWithResult(_0x1f1c00,0xc9))[_0xfa5e('0x59')](handleError(_0x1f1c00,null));};exports[_0xfa5e('0x36')]=function(_0x4ce5fc,_0x44db70,_0x44868b){var _0x3e5576;return db[_0xfa5e('0x3e')]['find']({'where':{'id':_0x4ce5fc[_0xfa5e('0x5b')]['id']}})[_0xfa5e('0x22')](handleEntityNotFound(_0x44db70,null))[_0xfa5e('0x22')](saveUpdates(_0x4ce5fc[_0xfa5e('0x6d')],null))['then'](function(_0x148fee){if(_0x148fee){_0x3e5576=_0x148fee;return db[_0xfa5e('0x3e')][_0xfa5e('0x57')]({'raw':!![]});}})[_0xfa5e('0x22')](function(_0x3bf1b8){var _0x3f7d59=fs[_0xfa5e('0x5d')](path['join'](config[_0xfa5e('0x5f')],_0xfa5e('0x60')),_0xfa5e('0x61'));var _0x2a903b=ejs[_0xfa5e('0x62')](_0x3f7d59,{'contexts':_0x3bf1b8||[]});fs[_0xfa5e('0x6e')](_0xfa5e('0x63'),_0x2a903b);})[_0xfa5e('0x22')](function(){return respondWithRpcPromise(_0xfa5e('0x64'),_0xfa5e('0x36'),{'module':_0xfa5e('0x65')});})[_0xfa5e('0x22')](function(){return _0x3e5576;})[_0xfa5e('0x22')](respondWithResult(_0x44db70,null))[_0xfa5e('0x59')](handleError(_0x44db70,null));};exports[_0xfa5e('0x37')]=function(_0x2185b9,_0x40a87c,_0x46200d){var _0x3aa552;return db[_0xfa5e('0x3e')][_0xfa5e('0x69')]({'where':{'id':_0x2185b9[_0xfa5e('0x5b')]['id']}})[_0xfa5e('0x22')](handleEntityNotFound(_0x40a87c,null))[_0xfa5e('0x22')](removeEntity(_0x40a87c,null))[_0xfa5e('0x22')](function(){return db[_0xfa5e('0x3e')][_0xfa5e('0x57')]({'raw':!![]});})[_0xfa5e('0x22')](function(_0x499858){var _0x425aad=fs[_0xfa5e('0x5d')](path[_0xfa5e('0x5e')](config[_0xfa5e('0x5f')],_0xfa5e('0x60')),_0xfa5e('0x61'));var _0x3beba0=ejs[_0xfa5e('0x62')](_0x425aad,{'contexts':_0x499858});fs[_0xfa5e('0x6e')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x3beba0);return respondWithRpcPromise(_0xfa5e('0x64'),'destroy',{'module':_0xfa5e('0x65')});})[_0xfa5e('0x59')](handleError(_0x40a87c,null));};