Built motion from commit (unavailable).|2.6.0
[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 _0x5ed4=['params','rawAttributes','find','create','body','findAll','join','root','server/files/templates/context.ejs','utf8','render','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','Reload','chan_sip.so','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','readFileSync','eml-format','rimraf','zip-dir','moment','mustache','util','path','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','then','info','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','destroy','get','Contexts','UserProfileResource','name','send','index','map','fieldName','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','filter','where','merge','type','VIRTUAL','options','VoiceContext','includeAll','include','rows','show'];(function(_0x25560c,_0x613d97){var _0x57884c=function(_0x4e478d){while(--_0x4e478d){_0x25560c['push'](_0x25560c['shift']());}};_0x57884c(++_0x613d97);}(_0x5ed4,0xf4));var _0x45ed=function(_0x29564a,_0x290f25){_0x29564a=_0x29564a-0x0;var _0x2396ce=_0x5ed4[_0x29564a];return _0x2396ce;};'use strict';var emlformat=require(_0x45ed('0x0'));var rimraf=require(_0x45ed('0x1'));var zipdir=require(_0x45ed('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x45ed('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x45ed('0x4'));var util=require(_0x45ed('0x5'));var path=require(_0x45ed('0x6'));var sox=require('sox');var csv=require(_0x45ed('0x7'));var ejs=require(_0x45ed('0x8'));var fs=require('fs');var fs_extra=require(_0x45ed('0x9'));var _=require('lodash');var squel=require(_0x45ed('0xa'));var crypto=require(_0x45ed('0xb'));var jsforce=require(_0x45ed('0xc'));var deskjs=require(_0x45ed('0xd'));var toCsv=require(_0x45ed('0x7'));var querystring=require('querystring');var Papa=require(_0x45ed('0xe'));var Redis=require(_0x45ed('0xf'));var authService=require(_0x45ed('0x10'));var qs=require(_0x45ed('0x11'));var as=require(_0x45ed('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x45ed('0x13'))(_0x45ed('0x14'));var utils=require(_0x45ed('0x15'));var config=require(_0x45ed('0x16'));var licenseUtil=require(_0x45ed('0x17'));var db=require(_0x45ed('0x18'))['db'];var jayson=require(_0x45ed('0x19'));var client=jayson[_0x45ed('0x1a')][_0x45ed('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0x2053c4,_0x410376,_0x1c4422,_0x359097){return new BPromise(function(_0x580eba,_0x36134d){var _0x4d2341=_0x359097||client;return _0x4d2341[_0x45ed('0x1c')](_0x2053c4,_0x1c4422)[_0x45ed('0x1d')](function(_0xa98827){logger[_0x45ed('0x1e')](_0x45ed('0x1f'),_0x410376,_0x45ed('0x20'));logger[_0x45ed('0x21')](_0x45ed('0x22'),_0x410376,_0x45ed('0x20'),JSON[_0x45ed('0x23')](_0xa98827));if(_0xa98827['error']){if(_0xa98827[_0x45ed('0x24')][_0x45ed('0x25')]===0x1f4){logger[_0x45ed('0x24')](_0x45ed('0x1f'),_0x410376,_0xa98827[_0x45ed('0x24')]['message']);return _0x36134d(_0xa98827['error']['message']);}logger[_0x45ed('0x24')](_0x45ed('0x1f'),_0x410376,_0xa98827['error'][_0x45ed('0x26')]);return _0x580eba(_0xa98827[_0x45ed('0x24')][_0x45ed('0x26')]);}else{logger[_0x45ed('0x1e')](_0x45ed('0x1f'),_0x410376,_0x45ed('0x20'));_0x580eba(_0xa98827[_0x45ed('0x27')]['message']);}})[_0x45ed('0x28')](function(_0x1c7e9e){logger['error'](_0x45ed('0x1f'),_0x410376,_0x1c7e9e);_0x36134d(_0x1c7e9e);});});}function respondWithStatusCode(_0x461a8b,_0x24f338){_0x24f338=_0x24f338||0xcc;return function(_0x545f89){if(_0x545f89){return _0x461a8b[_0x45ed('0x29')](_0x24f338);}return _0x461a8b[_0x45ed('0x2a')](_0x24f338)[_0x45ed('0x2b')]();};}function respondWithResult(_0x2d47ec,_0x3275a2){_0x3275a2=_0x3275a2||0xc8;return function(_0x4984dc){if(_0x4984dc){return _0x2d47ec[_0x45ed('0x2a')](_0x3275a2)['json'](_0x4984dc);}};}function respondWithFilteredResult(_0xaf0a54,_0x329d03){return function(_0x5f1b3b){if(_0x5f1b3b){var _0x514bce=typeof _0x329d03[_0x45ed('0x2c')]===_0x45ed('0x2d')&&typeof _0x329d03[_0x45ed('0x2e')]===_0x45ed('0x2d');var _0x40e275=_0x5f1b3b[_0x45ed('0x2f')];var _0x4dd1f0=_0x514bce?0x0:_0x329d03[_0x45ed('0x2c')];var _0x5e029c=_0x514bce?_0x5f1b3b[_0x45ed('0x2f')]:_0x329d03[_0x45ed('0x2c')]+_0x329d03[_0x45ed('0x2e')];var _0x1a0d27;if(_0x5e029c>=_0x40e275){_0x5e029c=_0x40e275;_0x1a0d27=0xc8;}else{_0x1a0d27=0xce;}_0xaf0a54['status'](_0x1a0d27);return _0xaf0a54[_0x45ed('0x30')](_0x45ed('0x31'),_0x4dd1f0+'-'+_0x5e029c+'/'+_0x40e275)[_0x45ed('0x32')](_0x5f1b3b);}return null;};}function patchUpdates(_0x9513be){return function(_0x58ac67){try{jsonpatch[_0x45ed('0x33')](_0x58ac67,_0x9513be,!![]);}catch(_0x13d1c8){return BPromise[_0x45ed('0x34')](_0x13d1c8);}return _0x58ac67[_0x45ed('0x35')]();};}function saveUpdates(_0x2d0100,_0x55f574){return function(_0x25b9bb){if(_0x25b9bb){return _0x25b9bb['update'](_0x2d0100)[_0x45ed('0x1d')](function(_0x444ea3){return _0x444ea3;});}return null;};}function removeEntity(_0xb8ff43,_0x417b0f){return function(_0x4547a5){if(_0x4547a5){return _0x4547a5[_0x45ed('0x36')]()[_0x45ed('0x1d')](function(){var _0xff106b=_0x4547a5[_0x45ed('0x37')]({'plain':!![]});var _0x3f2500=_0x45ed('0x38');return db[_0x45ed('0x39')][_0x45ed('0x36')]({'where':{'type':_0x3f2500,'resourceId':_0xff106b['id']}})[_0x45ed('0x1d')](function(){return _0x4547a5;});})[_0x45ed('0x1d')](function(){_0xb8ff43[_0x45ed('0x2a')](0xcc)[_0x45ed('0x2b')]();});}};}function handleEntityNotFound(_0x78cef5,_0x545a8f){return function(_0x2d3ac4){if(!_0x2d3ac4){_0x78cef5[_0x45ed('0x29')](0x194);}return _0x2d3ac4;};}function handleError(_0x56a150,_0x8c9cf5){_0x8c9cf5=_0x8c9cf5||0x1f4;return function(_0x3ed676){logger[_0x45ed('0x24')](_0x3ed676['stack']);if(_0x3ed676[_0x45ed('0x3a')]){delete _0x3ed676[_0x45ed('0x3a')];}_0x56a150['status'](_0x8c9cf5)[_0x45ed('0x3b')](_0x3ed676);};}exports[_0x45ed('0x3c')]=function(_0x1f7d40,_0x193215){var _0x52813b={},_0x4ce5f8={},_0x1b81e1={'count':0x0,'rows':[]};var _0x39b643=_[_0x45ed('0x3d')](db['VoiceContext']['rawAttributes'],function(_0x54f1ec){return{'name':_0x54f1ec[_0x45ed('0x3e')],'type':_0x54f1ec['type'][_0x45ed('0x3f')]};});_0x4ce5f8[_0x45ed('0x40')]=_[_0x45ed('0x3d')](_0x39b643,_0x45ed('0x3a'));_0x4ce5f8[_0x45ed('0x41')]=_[_0x45ed('0x42')](_0x1f7d40[_0x45ed('0x41')]);_0x4ce5f8[_0x45ed('0x43')]=_[_0x45ed('0x44')](_0x4ce5f8[_0x45ed('0x40')],_0x4ce5f8['query']);_0x52813b['attributes']=_[_0x45ed('0x44')](_0x4ce5f8[_0x45ed('0x40')],qs[_0x45ed('0x45')](_0x1f7d40[_0x45ed('0x41')][_0x45ed('0x45')]));_0x52813b[_0x45ed('0x46')]=_0x52813b[_0x45ed('0x46')][_0x45ed('0x47')]?_0x52813b['attributes']:_0x4ce5f8[_0x45ed('0x40')];if(!_0x1f7d40[_0x45ed('0x41')][_0x45ed('0x48')](_0x45ed('0x49'))){_0x52813b['limit']=qs[_0x45ed('0x2e')](_0x1f7d40['query']['limit']);_0x52813b[_0x45ed('0x2c')]=qs[_0x45ed('0x2c')](_0x1f7d40[_0x45ed('0x41')][_0x45ed('0x2c')]);}_0x52813b['order']=qs['sort'](_0x1f7d40[_0x45ed('0x41')][_0x45ed('0x4a')]);_0x52813b['where']=qs[_0x45ed('0x43')](_['pick'](_0x1f7d40[_0x45ed('0x41')],_0x4ce5f8['filters']),_0x39b643);if(_0x1f7d40[_0x45ed('0x41')][_0x45ed('0x4b')]){_0x52813b[_0x45ed('0x4c')]=_[_0x45ed('0x4d')](_0x52813b[_0x45ed('0x4c')],{'$or':_[_0x45ed('0x3d')](_0x39b643,function(_0xf04219){if(_0xf04219[_0x45ed('0x4e')]!==_0x45ed('0x4f')){var _0x3db9f5={};_0x3db9f5[_0xf04219['name']]={'$like':'%'+_0x1f7d40['query'][_0x45ed('0x4b')]+'%'};return _0x3db9f5;}})});}_0x52813b=_[_0x45ed('0x4d')]({},_0x52813b,_0x1f7d40[_0x45ed('0x50')]);var _0x3d7e17={'where':_0x52813b['where']};return db[_0x45ed('0x51')][_0x45ed('0x2f')](_0x3d7e17)[_0x45ed('0x1d')](function(_0x3cc80f){_0x1b81e1[_0x45ed('0x2f')]=_0x3cc80f;if(_0x1f7d40['query'][_0x45ed('0x52')]){_0x52813b[_0x45ed('0x53')]=[{'all':!![]}];}return db[_0x45ed('0x51')]['findAll'](_0x52813b);})[_0x45ed('0x1d')](function(_0x361cd7){_0x1b81e1[_0x45ed('0x54')]=_0x361cd7;return _0x1b81e1;})[_0x45ed('0x1d')](respondWithFilteredResult(_0x193215,_0x52813b))[_0x45ed('0x28')](handleError(_0x193215,null));};exports[_0x45ed('0x55')]=function(_0x407d81,_0x546a00){var _0x2f65c9={'raw':![],'where':{'id':_0x407d81[_0x45ed('0x56')]['id']}},_0x30fcb4={};_0x30fcb4[_0x45ed('0x40')]=_[_0x45ed('0x42')](db[_0x45ed('0x51')][_0x45ed('0x57')]);_0x30fcb4['query']=_['keys'](_0x407d81[_0x45ed('0x41')]);_0x30fcb4[_0x45ed('0x43')]=_[_0x45ed('0x44')](_0x30fcb4[_0x45ed('0x40')],_0x30fcb4[_0x45ed('0x41')]);_0x2f65c9[_0x45ed('0x46')]=_[_0x45ed('0x44')](_0x30fcb4[_0x45ed('0x40')],qs[_0x45ed('0x45')](_0x407d81[_0x45ed('0x41')][_0x45ed('0x45')]));_0x2f65c9[_0x45ed('0x46')]=_0x2f65c9[_0x45ed('0x46')][_0x45ed('0x47')]?_0x2f65c9[_0x45ed('0x46')]:_0x30fcb4['model'];if(_0x407d81[_0x45ed('0x41')][_0x45ed('0x52')]){_0x2f65c9[_0x45ed('0x53')]=[{'all':!![]}];}_0x2f65c9=_[_0x45ed('0x4d')]({},_0x2f65c9,_0x407d81[_0x45ed('0x50')]);return db['VoiceContext'][_0x45ed('0x58')](_0x2f65c9)[_0x45ed('0x1d')](handleEntityNotFound(_0x546a00,null))[_0x45ed('0x1d')](respondWithResult(_0x546a00,null))[_0x45ed('0x28')](handleError(_0x546a00,null));};exports[_0x45ed('0x59')]=function(_0xd41ace,_0x23fc35,_0x38b066){var _0x31f06a;return db[_0x45ed('0x51')]['create'](_0xd41ace[_0x45ed('0x5a')],{'raw':!![]})[_0x45ed('0x1d')](function(_0x2d45a7){_0x31f06a=_0x2d45a7;return db[_0x45ed('0x51')][_0x45ed('0x5b')]({'raw':!![]});})['then'](function(_0x14b5b6){var _0x171a31=fs['readFileSync'](path[_0x45ed('0x5c')](config[_0x45ed('0x5d')],_0x45ed('0x5e')),_0x45ed('0x5f'));var _0xf969c9=ejs[_0x45ed('0x60')](_0x171a31,{'contexts':_0x14b5b6||[]});fs[_0x45ed('0x61')](_0x45ed('0x62'),_0xf969c9);})[_0x45ed('0x1d')](function(){return respondWithRpcPromise(_0x45ed('0x63'),_0x45ed('0x59'),{'module':_0x45ed('0x64')});})[_0x45ed('0x1d')](function(){var _0x5c66c8=_0xd41ace[_0x45ed('0x65')][_0x45ed('0x37')]({'plain':!![]});if(!_0x5c66c8)throw new Error(_0x45ed('0x66'));if(_0x5c66c8[_0x45ed('0x67')]===_0x45ed('0x65')){var _0x12cb39=_0x31f06a[_0x45ed('0x37')]({'plain':!![]});return db[_0x45ed('0x68')]['find']({'where':{'name':'Contexts','userProfileId':_0x5c66c8[_0x45ed('0x69')]},'raw':!![]})[_0x45ed('0x1d')](function(_0x41620e){if(_0x41620e&&_0x41620e[_0x45ed('0x6a')]===0x0){return db['UserProfileResource'][_0x45ed('0x59')]({'name':_0x12cb39['name'],'resourceId':_0x12cb39['id'],'type':_0x41620e[_0x45ed('0x3a')],'sectionId':_0x41620e['id']},{})['then'](function(){return _0x31f06a;});}else{return _0x31f06a;}})[_0x45ed('0x28')](function(_0x311aa2){logger['error'](_0x45ed('0x6b'),_0x311aa2);throw _0x311aa2;});}return _0x31f06a;})['then'](respondWithResult(_0x23fc35,0xc9))['catch'](handleError(_0x23fc35,null));};exports[_0x45ed('0x6c')]=function(_0x3192e2,_0x36cc9c,_0x44bd73){var _0x146fe5;return db[_0x45ed('0x51')][_0x45ed('0x58')]({'where':{'id':_0x3192e2[_0x45ed('0x56')]['id']}})[_0x45ed('0x1d')](handleEntityNotFound(_0x36cc9c,null))['then'](saveUpdates(_0x3192e2[_0x45ed('0x5a')],null))[_0x45ed('0x1d')](function(_0x30227d){if(_0x30227d){_0x146fe5=_0x30227d;return db[_0x45ed('0x51')][_0x45ed('0x5b')]({'raw':!![]});}})['then'](function(_0x27c13e){var _0x548e17=fs[_0x45ed('0x6d')](path[_0x45ed('0x5c')](config[_0x45ed('0x5d')],_0x45ed('0x5e')),_0x45ed('0x5f'));var _0x3ae89c=ejs['render'](_0x548e17,{'contexts':_0x27c13e||[]});fs['writeFileSync'](_0x45ed('0x62'),_0x3ae89c);})[_0x45ed('0x1d')](function(){return respondWithRpcPromise(_0x45ed('0x63'),_0x45ed('0x6c'),{'module':_0x45ed('0x64')});})[_0x45ed('0x1d')](function(){return _0x146fe5;})['then'](respondWithResult(_0x36cc9c,null))[_0x45ed('0x28')](handleError(_0x36cc9c,null));};exports['destroy']=function(_0x41ada6,_0x191131,_0x37c6cf){var _0x268634;return db[_0x45ed('0x51')]['find']({'where':{'id':_0x41ada6[_0x45ed('0x56')]['id']}})[_0x45ed('0x1d')](handleEntityNotFound(_0x191131,null))['then'](removeEntity(_0x191131,null))[_0x45ed('0x1d')](function(){return db[_0x45ed('0x51')][_0x45ed('0x5b')]({'raw':!![]});})[_0x45ed('0x1d')](function(_0x53ab9e){var _0x2b1df5=fs[_0x45ed('0x6d')](path['join'](config[_0x45ed('0x5d')],_0x45ed('0x5e')),_0x45ed('0x5f'));var _0x36c8e8=ejs['render'](_0x2b1df5,{'contexts':_0x53ab9e});fs[_0x45ed('0x61')](_0x45ed('0x62'),_0x36c8e8);return respondWithRpcPromise(_0x45ed('0x63'),_0x45ed('0x36'),{'module':_0x45ed('0x64')});})[_0x45ed('0x28')](handleError(_0x191131,null));};