230895b28019cce98d7ff9dc67569f3ba80181f5
[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 _0xe186=['rows','catch','show','params','includeAll','find','create','body','findAll','readFileSync','join','server/files/templates/context.ejs','utf8','render','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','Reload','chan_sip.so','user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','root','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','sox','to-csv','ejs','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','jayson/promise','client','http','then','info','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','error','message','result','sendStatus','status','end','json','offset','limit','Content-Range','apply','reject','save','update','destroy','get','Contexts','name','send','index','map','VoiceContext','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','intersection','fields','length','nolimit','pick','where','filter','merge','options','count'];(function(_0x218dbe,_0x4c7dbe){var _0x37bd48=function(_0xcfe2b9){while(--_0xcfe2b9){_0x218dbe['push'](_0x218dbe['shift']());}};_0x37bd48(++_0x4c7dbe);}(_0xe186,0x146));var _0x6e18=function(_0x13a1fd,_0x1fe47a){_0x13a1fd=_0x13a1fd-0x0;var _0xb0b7f4=_0xe186[_0x13a1fd];return _0xb0b7f4;};'use strict';var pdf=require(_0x6e18('0x0'));var emlformat=require(_0x6e18('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x6e18('0x2'));var jsonpatch=require(_0x6e18('0x3'));var rp=require(_0x6e18('0x4'));var moment=require(_0x6e18('0x5'));var BPromise=require(_0x6e18('0x6'));var Mustache=require('mustache');var util=require(_0x6e18('0x7'));var path=require('path');var sox=require(_0x6e18('0x8'));var csv=require(_0x6e18('0x9'));var ejs=require(_0x6e18('0xa'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0x6e18('0xb'));var jsforce=require(_0x6e18('0xc'));var deskjs=require(_0x6e18('0xd'));var toCsv=require(_0x6e18('0x9'));var querystring=require(_0x6e18('0xe'));var Papa=require(_0x6e18('0xf'));var Redis=require(_0x6e18('0x10'));var authService=require(_0x6e18('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x6e18('0x12'));var hardwareService=require(_0x6e18('0x13'));var logger=require(_0x6e18('0x14'))(_0x6e18('0x15'));var utils=require(_0x6e18('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x6e18('0x17'));var db=require('../../mysqldb')['db'];var jayson=require(_0x6e18('0x18'));var client=jayson[_0x6e18('0x19')][_0x6e18('0x1a')]({'port':0x232a});function respondWithRpcPromise(_0x37a1de,_0x227b81,_0x2bbc16,_0x515872){return new BPromise(function(_0x795515,_0x254bba){var _0x32c848=_0x515872||client;return _0x32c848['request'](_0x37a1de,_0x2bbc16)[_0x6e18('0x1b')](function(_0x339e17){logger[_0x6e18('0x1c')](_0x6e18('0x1d'),_0x227b81,_0x6e18('0x1e'));logger[_0x6e18('0x1f')](_0x6e18('0x20'),_0x227b81,'request\x20sent',JSON['stringify'](_0x339e17));if(_0x339e17[_0x6e18('0x21')]){if(_0x339e17['error']['code']===0x1f4){logger[_0x6e18('0x21')]('VoiceContext,\x20%s,\x20%s',_0x227b81,_0x339e17[_0x6e18('0x21')][_0x6e18('0x22')]);return _0x254bba(_0x339e17[_0x6e18('0x21')]['message']);}logger['error'](_0x6e18('0x1d'),_0x227b81,_0x339e17[_0x6e18('0x21')][_0x6e18('0x22')]);return _0x795515(_0x339e17[_0x6e18('0x21')][_0x6e18('0x22')]);}else{logger[_0x6e18('0x1c')](_0x6e18('0x1d'),_0x227b81,'request\x20sent');_0x795515(_0x339e17[_0x6e18('0x23')][_0x6e18('0x22')]);}})['catch'](function(_0x4d6c43){logger[_0x6e18('0x21')](_0x6e18('0x1d'),_0x227b81,_0x4d6c43);_0x254bba(_0x4d6c43);});});}function respondWithStatusCode(_0x24b3af,_0x36cb1f){_0x36cb1f=_0x36cb1f||0xcc;return function(_0x157a2d){if(_0x157a2d){return _0x24b3af[_0x6e18('0x24')](_0x36cb1f);}return _0x24b3af[_0x6e18('0x25')](_0x36cb1f)[_0x6e18('0x26')]();};}function respondWithResult(_0x39159e,_0x142c98){_0x142c98=_0x142c98||0xc8;return function(_0x28c82a){if(_0x28c82a){return _0x39159e[_0x6e18('0x25')](_0x142c98)[_0x6e18('0x27')](_0x28c82a);}};}function respondWithFilteredResult(_0x243508,_0x193051){return function(_0x42d910){if(_0x42d910){var _0x69ed5=_0x42d910['count'],_0x4a56b1=_0x193051[_0x6e18('0x28')],_0x113feb=_0x193051[_0x6e18('0x28')]+_0x193051[_0x6e18('0x29')],_0x2f4d11;if(_0x113feb>=_0x69ed5){_0x113feb=_0x69ed5;_0x2f4d11=0xc8;}else{_0x2f4d11=0xce;}_0x243508[_0x6e18('0x25')](_0x2f4d11);return _0x243508['set'](_0x6e18('0x2a'),_0x4a56b1+'-'+_0x113feb+'/'+_0x69ed5)[_0x6e18('0x27')](_0x42d910);}return null;};}function patchUpdates(_0x189aa2){return function(_0x265222){try{jsonpatch[_0x6e18('0x2b')](_0x265222,_0x189aa2,!![]);}catch(_0x39279a){return BPromise[_0x6e18('0x2c')](_0x39279a);}return _0x265222[_0x6e18('0x2d')]();};}function saveUpdates(_0x43a18d,_0x9acdc){return function(_0x8bfa59){if(_0x8bfa59){return _0x8bfa59[_0x6e18('0x2e')](_0x43a18d)[_0x6e18('0x1b')](function(_0x739a56){return _0x739a56;});}return null;};}function removeEntity(_0x301920,_0x2610b1){return function(_0x21daca){if(_0x21daca){return _0x21daca[_0x6e18('0x2f')]()[_0x6e18('0x1b')](function(){var _0x3c4c0f=_0x21daca[_0x6e18('0x30')]({'plain':!![]});var _0x415a93=_0x6e18('0x31');return db['UserProfileResource']['destroy']({'where':{'type':_0x415a93,'resourceId':_0x3c4c0f['id']}})[_0x6e18('0x1b')](function(){return _0x21daca;});})[_0x6e18('0x1b')](function(){_0x301920[_0x6e18('0x25')](0xcc)[_0x6e18('0x26')]();});}};}function handleEntityNotFound(_0x11be2f,_0x2113fa){return function(_0x4cc94d){if(!_0x4cc94d){_0x11be2f[_0x6e18('0x24')](0x194);}return _0x4cc94d;};}function handleError(_0x515e79,_0x1dcdab){_0x1dcdab=_0x1dcdab||0x1f4;return function(_0x5e2b10){logger[_0x6e18('0x21')](_0x5e2b10['stack']);if(_0x5e2b10[_0x6e18('0x32')]){delete _0x5e2b10[_0x6e18('0x32')];}_0x515e79['status'](_0x1dcdab)[_0x6e18('0x33')](_0x5e2b10);};}exports[_0x6e18('0x34')]=function(_0x2e16c5,_0x1208f7){var _0x2195af={},_0x4c171d={},_0x51157e={'count':0x0,'rows':[]};var _0x3afbae=_[_0x6e18('0x35')](db[_0x6e18('0x36')][_0x6e18('0x37')],function(_0x292a2a){return{'name':_0x292a2a[_0x6e18('0x38')],'type':_0x292a2a[_0x6e18('0x39')][_0x6e18('0x3a')]};});_0x4c171d[_0x6e18('0x3b')]=_[_0x6e18('0x35')](_0x3afbae,_0x6e18('0x32'));_0x4c171d[_0x6e18('0x3c')]=_[_0x6e18('0x3d')](_0x2e16c5['query']);_0x4c171d[_0x6e18('0x3e')]=_['intersection'](_0x4c171d[_0x6e18('0x3b')],_0x4c171d[_0x6e18('0x3c')]);_0x2195af[_0x6e18('0x3f')]=_[_0x6e18('0x40')](_0x4c171d['model'],qs[_0x6e18('0x41')](_0x2e16c5[_0x6e18('0x3c')][_0x6e18('0x41')]));_0x2195af[_0x6e18('0x3f')]=_0x2195af[_0x6e18('0x3f')][_0x6e18('0x42')]?_0x2195af['attributes']:_0x4c171d[_0x6e18('0x3b')];if(!_0x2e16c5[_0x6e18('0x3c')]['hasOwnProperty'](_0x6e18('0x43'))){_0x2195af[_0x6e18('0x29')]=qs['limit'](_0x2e16c5['query']['limit']);_0x2195af[_0x6e18('0x28')]=qs[_0x6e18('0x28')](_0x2e16c5[_0x6e18('0x3c')]['offset']);}_0x2195af['order']=qs['sort'](_0x2e16c5['query']['sort']);_0x2195af['where']=qs['filters'](_[_0x6e18('0x44')](_0x2e16c5[_0x6e18('0x3c')],_0x4c171d['filters']),_0x3afbae);if(_0x2e16c5[_0x6e18('0x3c')]['filter']){_0x2195af[_0x6e18('0x45')]=_['merge'](_0x2195af[_0x6e18('0x45')],{'$or':_[_0x6e18('0x35')](_0x3afbae,function(_0x4c93fa){if(_0x4c93fa[_0x6e18('0x39')]!=='VIRTUAL'){var _0x41794f={};_0x41794f[_0x4c93fa[_0x6e18('0x32')]]={'$like':'%'+_0x2e16c5[_0x6e18('0x3c')][_0x6e18('0x46')]+'%'};return _0x41794f;}})});}_0x2195af=_[_0x6e18('0x47')]({},_0x2195af,_0x2e16c5[_0x6e18('0x48')]);var _0x57c549={'where':_0x2195af[_0x6e18('0x45')]};return db['VoiceContext']['count'](_0x57c549)[_0x6e18('0x1b')](function(_0x7d0d65){_0x51157e[_0x6e18('0x49')]=_0x7d0d65;if(_0x2e16c5['query']['includeAll']){_0x2195af['include']=[{'all':!![]}];}return db['VoiceContext']['findAll'](_0x2195af);})[_0x6e18('0x1b')](function(_0x4c68e2){_0x51157e[_0x6e18('0x4a')]=_0x4c68e2;return _0x51157e;})[_0x6e18('0x1b')](respondWithFilteredResult(_0x1208f7,_0x2195af))[_0x6e18('0x4b')](handleError(_0x1208f7,null));};exports[_0x6e18('0x4c')]=function(_0x543594,_0x47ea3f){var _0x5d886f={'raw':![],'where':{'id':_0x543594[_0x6e18('0x4d')]['id']}},_0x342f8a={};_0x342f8a[_0x6e18('0x3b')]=_['keys'](db[_0x6e18('0x36')][_0x6e18('0x37')]);_0x342f8a[_0x6e18('0x3c')]=_[_0x6e18('0x3d')](_0x543594[_0x6e18('0x3c')]);_0x342f8a[_0x6e18('0x3e')]=_[_0x6e18('0x40')](_0x342f8a['model'],_0x342f8a[_0x6e18('0x3c')]);_0x5d886f[_0x6e18('0x3f')]=_[_0x6e18('0x40')](_0x342f8a[_0x6e18('0x3b')],qs[_0x6e18('0x41')](_0x543594[_0x6e18('0x3c')]['fields']));_0x5d886f['attributes']=_0x5d886f['attributes'][_0x6e18('0x42')]?_0x5d886f[_0x6e18('0x3f')]:_0x342f8a[_0x6e18('0x3b')];if(_0x543594[_0x6e18('0x3c')][_0x6e18('0x4e')]){_0x5d886f['include']=[{'all':!![]}];}_0x5d886f=_[_0x6e18('0x47')]({},_0x5d886f,_0x543594['options']);return db[_0x6e18('0x36')][_0x6e18('0x4f')](_0x5d886f)[_0x6e18('0x1b')](handleEntityNotFound(_0x47ea3f,null))[_0x6e18('0x1b')](respondWithResult(_0x47ea3f,null))['catch'](handleError(_0x47ea3f,null));};exports[_0x6e18('0x50')]=function(_0x525474,_0x45c491,_0x42d95b){var _0x107cc3;return db[_0x6e18('0x36')][_0x6e18('0x50')](_0x525474[_0x6e18('0x51')],{'raw':!![]})['then'](function(_0x70a6){_0x107cc3=_0x70a6;return db[_0x6e18('0x36')][_0x6e18('0x52')]({'raw':!![]});})['then'](function(_0x16e440){var _0x3b545e=fs[_0x6e18('0x53')](path[_0x6e18('0x54')](config['root'],_0x6e18('0x55')),_0x6e18('0x56'));var _0x549337=ejs[_0x6e18('0x57')](_0x3b545e,{'contexts':_0x16e440||[]});fs[_0x6e18('0x58')](_0x6e18('0x59'),_0x549337);})[_0x6e18('0x1b')](function(){return respondWithRpcPromise(_0x6e18('0x5a'),_0x6e18('0x50'),{'module':_0x6e18('0x5b')});})[_0x6e18('0x1b')](function(){var _0x153789=_0x525474[_0x6e18('0x5c')][_0x6e18('0x30')]({'plain':!![]});if(!_0x153789)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x153789[_0x6e18('0x5d')]==='user'){var _0x55d54d=_0x107cc3[_0x6e18('0x30')]({'plain':!![]});return db[_0x6e18('0x5e')]['find']({'where':{'name':_0x6e18('0x31'),'userProfileId':_0x153789[_0x6e18('0x5f')]},'raw':!![]})[_0x6e18('0x1b')](function(_0x52862c){if(_0x52862c&&_0x52862c[_0x6e18('0x60')]===0x0){return db[_0x6e18('0x61')][_0x6e18('0x50')]({'name':_0x55d54d[_0x6e18('0x32')],'resourceId':_0x55d54d['id'],'type':_0x52862c['name'],'sectionId':_0x52862c['id']},{})[_0x6e18('0x1b')](function(){return _0x107cc3;});}else{return _0x107cc3;}})[_0x6e18('0x4b')](function(_0x546c33){logger['error'](_0x6e18('0x62'),_0x546c33);throw _0x546c33;});}return _0x107cc3;})[_0x6e18('0x1b')](respondWithResult(_0x45c491,0xc9))[_0x6e18('0x4b')](handleError(_0x45c491,null));};exports[_0x6e18('0x2e')]=function(_0x2d8ad3,_0x42ef00,_0x55598c){var _0x8ae394;return db[_0x6e18('0x36')][_0x6e18('0x4f')]({'where':{'id':_0x2d8ad3[_0x6e18('0x4d')]['id']}})[_0x6e18('0x1b')](handleEntityNotFound(_0x42ef00,null))[_0x6e18('0x1b')](saveUpdates(_0x2d8ad3[_0x6e18('0x51')],null))[_0x6e18('0x1b')](function(_0x202764){if(_0x202764){_0x8ae394=_0x202764;return db['VoiceContext']['findAll']({'raw':!![]});}})['then'](function(_0xab5876){var _0x4ecd39=fs[_0x6e18('0x53')](path['join'](config[_0x6e18('0x63')],'server/files/templates/context.ejs'),_0x6e18('0x56'));var _0x1b2fc7=ejs[_0x6e18('0x57')](_0x4ecd39,{'contexts':_0xab5876||[]});fs['writeFileSync'](_0x6e18('0x59'),_0x1b2fc7);})['then'](function(){return respondWithRpcPromise(_0x6e18('0x5a'),_0x6e18('0x2e'),{'module':_0x6e18('0x5b')});})['then'](function(){return _0x8ae394;})[_0x6e18('0x1b')](respondWithResult(_0x42ef00,null))[_0x6e18('0x4b')](handleError(_0x42ef00,null));};exports[_0x6e18('0x2f')]=function(_0x223d97,_0x47b88e,_0x1558a2){var _0x3b460d;return db[_0x6e18('0x36')][_0x6e18('0x4f')]({'where':{'id':_0x223d97['params']['id']}})[_0x6e18('0x1b')](handleEntityNotFound(_0x47b88e,null))[_0x6e18('0x1b')](removeEntity(_0x47b88e,null))[_0x6e18('0x1b')](function(){return db[_0x6e18('0x36')][_0x6e18('0x52')]({'raw':!![]});})[_0x6e18('0x1b')](function(_0x332be4){var _0x5ce242=fs[_0x6e18('0x53')](path['join'](config[_0x6e18('0x63')],_0x6e18('0x55')),_0x6e18('0x56'));var _0x1b6d5e=ejs['render'](_0x5ce242,{'contexts':_0x332be4});fs[_0x6e18('0x58')](_0x6e18('0x59'),_0x1b6d5e);return respondWithRpcPromise(_0x6e18('0x5a'),_0x6e18('0x2f'),{'module':_0x6e18('0x5b')});})[_0x6e18('0x4b')](handleError(_0x47b88e,null));};