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 _0x63b2=['squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','then','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','error','code','message','catch','end','status','offset','undefined','limit','count','set','json','save','update','destroy','get','UserProfileResource','stack','name','send','index','map','VoiceContext','rawAttributes','type','key','query','intersection','attributes','model','fields','length','nolimit','order','sort','filters','pick','filter','where','merge','include','findAll','show','params','keys','options','find','body','readFileSync','join','root','server/files/templates/context.ejs','render','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','Reload','create','chan_sip.so','role','user','UserProfileSection','Contexts','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','utf8','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','util','path','sox','to-csv','ejs','fs-extra'];(function(_0x20f503,_0xa04692){var _0x4365d3=function(_0x3e3c1b){while(--_0x3e3c1b){_0x20f503['push'](_0x20f503['shift']());}};_0x4365d3(++_0xa04692);}(_0x63b2,0x185));var _0x263b=function(_0x2564fd,_0x9fdb63){_0x2564fd=_0x2564fd-0x0;var _0x278b0b=_0x63b2[_0x2564fd];return _0x278b0b;};'use strict';var emlformat=require(_0x263b('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x263b('0x1'));var jsonpatch=require(_0x263b('0x2'));var rp=require(_0x263b('0x3'));var moment=require('moment');var BPromise=require(_0x263b('0x4'));var Mustache=require('mustache');var util=require(_0x263b('0x5'));var path=require(_0x263b('0x6'));var sox=require(_0x263b('0x7'));var csv=require(_0x263b('0x8'));var ejs=require(_0x263b('0x9'));var fs=require('fs');var fs_extra=require(_0x263b('0xa'));var _=require('lodash');var squel=require(_0x263b('0xb'));var crypto=require(_0x263b('0xc'));var jsforce=require(_0x263b('0xd'));var deskjs=require(_0x263b('0xe'));var toCsv=require(_0x263b('0x8'));var querystring=require(_0x263b('0xf'));var Papa=require(_0x263b('0x10'));var Redis=require('ioredis');var authService=require(_0x263b('0x11'));var qs=require(_0x263b('0x12'));var as=require(_0x263b('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x263b('0x14'))(_0x263b('0x15'));var utils=require(_0x263b('0x16'));var config=require(_0x263b('0x17'));var licenseUtil=require(_0x263b('0x18'));var db=require(_0x263b('0x19'))['db'];var jayson=require(_0x263b('0x1a'));var client=jayson[_0x263b('0x1b')][_0x263b('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x4b5b99,_0x288a64,_0xce02e0,_0x57bf5d){return new BPromise(function(_0x5e6629,_0x44e8d5){var _0x4b372a=_0x57bf5d||client;return _0x4b372a['request'](_0x4b5b99,_0xce02e0)[_0x263b('0x1d')](function(_0x2d6a49){logger['info'](_0x263b('0x1e'),_0x288a64,_0x263b('0x1f'));logger[_0x263b('0x20')](_0x263b('0x21'),_0x288a64,'request\x20sent',JSON['stringify'](_0x2d6a49));if(_0x2d6a49[_0x263b('0x22')]){if(_0x2d6a49['error'][_0x263b('0x23')]===0x1f4){logger[_0x263b('0x22')](_0x263b('0x1e'),_0x288a64,_0x2d6a49[_0x263b('0x22')][_0x263b('0x24')]);return _0x44e8d5(_0x2d6a49['error'][_0x263b('0x24')]);}logger[_0x263b('0x22')](_0x263b('0x1e'),_0x288a64,_0x2d6a49['error'][_0x263b('0x24')]);return _0x5e6629(_0x2d6a49['error'][_0x263b('0x24')]);}else{logger['info'](_0x263b('0x1e'),_0x288a64,_0x263b('0x1f'));_0x5e6629(_0x2d6a49['result'][_0x263b('0x24')]);}})[_0x263b('0x25')](function(_0x53dbb4){logger[_0x263b('0x22')](_0x263b('0x1e'),_0x288a64,_0x53dbb4);_0x44e8d5(_0x53dbb4);});});}function respondWithStatusCode(_0x59b034,_0x406712){_0x406712=_0x406712||0xcc;return function(_0x1ebb2d){if(_0x1ebb2d){return _0x59b034['sendStatus'](_0x406712);}return _0x59b034['status'](_0x406712)[_0x263b('0x26')]();};}function respondWithResult(_0x5a8ec1,_0x41f3b7){_0x41f3b7=_0x41f3b7||0xc8;return function(_0x5acad0){if(_0x5acad0){return _0x5a8ec1[_0x263b('0x27')](_0x41f3b7)['json'](_0x5acad0);}};}function respondWithFilteredResult(_0x4ed986,_0xd87b2a){return function(_0x271b1d){if(_0x271b1d){var _0x395bc3=typeof _0xd87b2a[_0x263b('0x28')]===_0x263b('0x29')&&typeof _0xd87b2a[_0x263b('0x2a')]===_0x263b('0x29');var _0x5368c1=_0x271b1d['count'];var _0x5dcf20=_0x395bc3?0x0:_0xd87b2a['offset'];var _0x5c6f91=_0x395bc3?_0x271b1d[_0x263b('0x2b')]:_0xd87b2a[_0x263b('0x28')]+_0xd87b2a['limit'];var _0x5e85ac;if(_0x5c6f91>=_0x5368c1){_0x5c6f91=_0x5368c1;_0x5e85ac=0xc8;}else{_0x5e85ac=0xce;}_0x4ed986[_0x263b('0x27')](_0x5e85ac);return _0x4ed986[_0x263b('0x2c')]('Content-Range',_0x5dcf20+'-'+_0x5c6f91+'/'+_0x5368c1)[_0x263b('0x2d')](_0x271b1d);}return null;};}function patchUpdates(_0x4f1336){return function(_0x26096c){try{jsonpatch['apply'](_0x26096c,_0x4f1336,!![]);}catch(_0xddbfd8){return BPromise['reject'](_0xddbfd8);}return _0x26096c[_0x263b('0x2e')]();};}function saveUpdates(_0x34e09c,_0xbeb0f1){return function(_0x32026a){if(_0x32026a){return _0x32026a[_0x263b('0x2f')](_0x34e09c)[_0x263b('0x1d')](function(_0x23b8f0){return _0x23b8f0;});}return null;};}function removeEntity(_0x1698e2,_0x2adf6f){return function(_0xc27bea){if(_0xc27bea){return _0xc27bea[_0x263b('0x30')]()[_0x263b('0x1d')](function(){var _0x28167c=_0xc27bea[_0x263b('0x31')]({'plain':!![]});var _0x39c759='Contexts';return db[_0x263b('0x32')][_0x263b('0x30')]({'where':{'type':_0x39c759,'resourceId':_0x28167c['id']}})[_0x263b('0x1d')](function(){return _0xc27bea;});})[_0x263b('0x1d')](function(){_0x1698e2[_0x263b('0x27')](0xcc)[_0x263b('0x26')]();});}};}function handleEntityNotFound(_0x3fab94,_0x136fc3){return function(_0x3ceb65){if(!_0x3ceb65){_0x3fab94['sendStatus'](0x194);}return _0x3ceb65;};}function handleError(_0x5570a4,_0x4bcf23){_0x4bcf23=_0x4bcf23||0x1f4;return function(_0x214706){logger[_0x263b('0x22')](_0x214706[_0x263b('0x33')]);if(_0x214706[_0x263b('0x34')]){delete _0x214706['name'];}_0x5570a4[_0x263b('0x27')](_0x4bcf23)[_0x263b('0x35')](_0x214706);};}exports[_0x263b('0x36')]=function(_0x2cf4bd,_0xc01dd5){var _0xa8474={},_0x43b46b={},_0x3f3daf={'count':0x0,'rows':[]};var _0x5e6d7a=_[_0x263b('0x37')](db[_0x263b('0x38')][_0x263b('0x39')],function(_0x343f4d){return{'name':_0x343f4d['fieldName'],'type':_0x343f4d[_0x263b('0x3a')][_0x263b('0x3b')]};});_0x43b46b['model']=_['map'](_0x5e6d7a,_0x263b('0x34'));_0x43b46b[_0x263b('0x3c')]=_['keys'](_0x2cf4bd['query']);_0x43b46b['filters']=_[_0x263b('0x3d')](_0x43b46b['model'],_0x43b46b[_0x263b('0x3c')]);_0xa8474[_0x263b('0x3e')]=_['intersection'](_0x43b46b[_0x263b('0x3f')],qs[_0x263b('0x40')](_0x2cf4bd[_0x263b('0x3c')][_0x263b('0x40')]));_0xa8474[_0x263b('0x3e')]=_0xa8474[_0x263b('0x3e')][_0x263b('0x41')]?_0xa8474[_0x263b('0x3e')]:_0x43b46b[_0x263b('0x3f')];if(!_0x2cf4bd[_0x263b('0x3c')]['hasOwnProperty'](_0x263b('0x42'))){_0xa8474[_0x263b('0x2a')]=qs[_0x263b('0x2a')](_0x2cf4bd['query'][_0x263b('0x2a')]);_0xa8474[_0x263b('0x28')]=qs[_0x263b('0x28')](_0x2cf4bd[_0x263b('0x3c')]['offset']);}_0xa8474[_0x263b('0x43')]=qs[_0x263b('0x44')](_0x2cf4bd[_0x263b('0x3c')][_0x263b('0x44')]);_0xa8474['where']=qs[_0x263b('0x45')](_[_0x263b('0x46')](_0x2cf4bd[_0x263b('0x3c')],_0x43b46b[_0x263b('0x45')]),_0x5e6d7a);if(_0x2cf4bd[_0x263b('0x3c')][_0x263b('0x47')]){_0xa8474[_0x263b('0x48')]=_[_0x263b('0x49')](_0xa8474['where'],{'$or':_[_0x263b('0x37')](_0x5e6d7a,function(_0xb5a133){if(_0xb5a133[_0x263b('0x3a')]!=='VIRTUAL'){var _0xdfc6f0={};_0xdfc6f0[_0xb5a133[_0x263b('0x34')]]={'$like':'%'+_0x2cf4bd[_0x263b('0x3c')][_0x263b('0x47')]+'%'};return _0xdfc6f0;}})});}_0xa8474=_[_0x263b('0x49')]({},_0xa8474,_0x2cf4bd['options']);var _0xab124={'where':_0xa8474[_0x263b('0x48')]};return db[_0x263b('0x38')]['count'](_0xab124)[_0x263b('0x1d')](function(_0x114555){_0x3f3daf[_0x263b('0x2b')]=_0x114555;if(_0x2cf4bd['query']['includeAll']){_0xa8474[_0x263b('0x4a')]=[{'all':!![]}];}return db['VoiceContext'][_0x263b('0x4b')](_0xa8474);})[_0x263b('0x1d')](function(_0x16e80f){_0x3f3daf['rows']=_0x16e80f;return _0x3f3daf;})[_0x263b('0x1d')](respondWithFilteredResult(_0xc01dd5,_0xa8474))[_0x263b('0x25')](handleError(_0xc01dd5,null));};exports[_0x263b('0x4c')]=function(_0x4e178c,_0x1298d2){var _0x427183={'raw':![],'where':{'id':_0x4e178c[_0x263b('0x4d')]['id']}},_0x537ea5={};_0x537ea5[_0x263b('0x3f')]=_[_0x263b('0x4e')](db[_0x263b('0x38')][_0x263b('0x39')]);_0x537ea5['query']=_[_0x263b('0x4e')](_0x4e178c['query']);_0x537ea5['filters']=_[_0x263b('0x3d')](_0x537ea5[_0x263b('0x3f')],_0x537ea5['query']);_0x427183[_0x263b('0x3e')]=_[_0x263b('0x3d')](_0x537ea5[_0x263b('0x3f')],qs[_0x263b('0x40')](_0x4e178c[_0x263b('0x3c')][_0x263b('0x40')]));_0x427183['attributes']=_0x427183['attributes'][_0x263b('0x41')]?_0x427183['attributes']:_0x537ea5[_0x263b('0x3f')];if(_0x4e178c[_0x263b('0x3c')]['includeAll']){_0x427183[_0x263b('0x4a')]=[{'all':!![]}];}_0x427183=_[_0x263b('0x49')]({},_0x427183,_0x4e178c[_0x263b('0x4f')]);return db[_0x263b('0x38')][_0x263b('0x50')](_0x427183)[_0x263b('0x1d')](handleEntityNotFound(_0x1298d2,null))[_0x263b('0x1d')](respondWithResult(_0x1298d2,null))[_0x263b('0x25')](handleError(_0x1298d2,null));};exports['create']=function(_0x1c79a2,_0x7c600d,_0xebc767){var _0x3e2439;return db[_0x263b('0x38')]['create'](_0x1c79a2[_0x263b('0x51')],{'raw':!![]})[_0x263b('0x1d')](function(_0x5eee5e){_0x3e2439=_0x5eee5e;return db[_0x263b('0x38')][_0x263b('0x4b')]({'raw':!![]});})[_0x263b('0x1d')](function(_0x351cf9){var _0x81a479=fs[_0x263b('0x52')](path[_0x263b('0x53')](config[_0x263b('0x54')],_0x263b('0x55')),'utf8');var _0x43d0ac=ejs[_0x263b('0x56')](_0x81a479,{'contexts':_0x351cf9||[]});fs[_0x263b('0x57')](_0x263b('0x58'),_0x43d0ac);})[_0x263b('0x1d')](function(){return respondWithRpcPromise(_0x263b('0x59'),_0x263b('0x5a'),{'module':_0x263b('0x5b')});})[_0x263b('0x1d')](function(){var _0x436214=_0x1c79a2['user'][_0x263b('0x31')]({'plain':!![]});if(!_0x436214)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x436214[_0x263b('0x5c')]===_0x263b('0x5d')){var _0x53fc5d=_0x3e2439[_0x263b('0x31')]({'plain':!![]});return db[_0x263b('0x5e')][_0x263b('0x50')]({'where':{'name':_0x263b('0x5f'),'userProfileId':_0x436214[_0x263b('0x60')]},'raw':!![]})[_0x263b('0x1d')](function(_0x3a5e93){if(_0x3a5e93&&_0x3a5e93[_0x263b('0x61')]===0x0){return db[_0x263b('0x32')][_0x263b('0x5a')]({'name':_0x53fc5d['name'],'resourceId':_0x53fc5d['id'],'type':_0x3a5e93['name'],'sectionId':_0x3a5e93['id']},{})[_0x263b('0x1d')](function(){return _0x3e2439;});}else{return _0x3e2439;}})['catch'](function(_0x49c422){logger[_0x263b('0x22')](_0x263b('0x62'),_0x49c422);throw _0x49c422;});}return _0x3e2439;})[_0x263b('0x1d')](respondWithResult(_0x7c600d,0xc9))['catch'](handleError(_0x7c600d,null));};exports[_0x263b('0x2f')]=function(_0x56a73d,_0x104588,_0x4f4b4a){var _0xcdcf80;return db[_0x263b('0x38')]['find']({'where':{'id':_0x56a73d['params']['id']}})['then'](handleEntityNotFound(_0x104588,null))['then'](saveUpdates(_0x56a73d[_0x263b('0x51')],null))['then'](function(_0x27ccde){if(_0x27ccde){_0xcdcf80=_0x27ccde;return db['VoiceContext'][_0x263b('0x4b')]({'raw':!![]});}})[_0x263b('0x1d')](function(_0x2a92e8){var _0x218609=fs['readFileSync'](path[_0x263b('0x53')](config['root'],_0x263b('0x55')),_0x263b('0x63'));var _0x5f012d=ejs[_0x263b('0x56')](_0x218609,{'contexts':_0x2a92e8||[]});fs['writeFileSync']('/etc/asterisk/extensions_xcally_contexts.conf',_0x5f012d);})[_0x263b('0x1d')](function(){return respondWithRpcPromise(_0x263b('0x59'),'update',{'module':_0x263b('0x5b')});})[_0x263b('0x1d')](function(){return _0xcdcf80;})['then'](respondWithResult(_0x104588,null))[_0x263b('0x25')](handleError(_0x104588,null));};exports[_0x263b('0x30')]=function(_0xc73f71,_0x321d60,_0x51b952){var _0x3fc21f;return db['VoiceContext']['find']({'where':{'id':_0xc73f71[_0x263b('0x4d')]['id']}})[_0x263b('0x1d')](handleEntityNotFound(_0x321d60,null))[_0x263b('0x1d')](removeEntity(_0x321d60,null))['then'](function(){return db[_0x263b('0x38')][_0x263b('0x4b')]({'raw':!![]});})[_0x263b('0x1d')](function(_0x4f0353){var _0x2e668c=fs['readFileSync'](path['join'](config['root'],_0x263b('0x55')),_0x263b('0x63'));var _0x3d3d59=ejs[_0x263b('0x56')](_0x2e668c,{'contexts':_0x4f0353});fs['writeFileSync'](_0x263b('0x58'),_0x3d3d59);return respondWithRpcPromise('Reload',_0x263b('0x30'),{'module':'chan_sip.so'});})[_0x263b('0x25')](handleError(_0x321d60,null));};