0d6f09001e6340c4211b69fa9dc1f3b30ff31d51
[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 _0x2966=['desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','http','then','info','VoiceContext,\x20%s,\x20%s','debug','VoiceContext,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','catch','sendStatus','status','end','json','offset','undefined','count','limit','set','apply','save','update','destroy','Contexts','UserProfileResource','stack','name','send','map','VoiceContext','rawAttributes','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','pick','filter','VIRTUAL','merge','includeAll','include','findAll','rows','options','create','body','readFileSync','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','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','find','params','join','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','ejs','squel','crypto','jsforce'];(function(_0x21d88d,_0x4ff19c){var _0x30a579=function(_0x24cf7a){while(--_0x24cf7a){_0x21d88d['push'](_0x21d88d['shift']());}};_0x30a579(++_0x4ff19c);}(_0x2966,0x128));var _0x6296=function(_0x5be25a,_0x2b8353){_0x5be25a=_0x5be25a-0x0;var _0x5bc4e4=_0x2966[_0x5be25a];return _0x5bc4e4;};'use strict';var emlformat=require(_0x6296('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x6296('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x6296('0x2'));var moment=require(_0x6296('0x3'));var BPromise=require(_0x6296('0x4'));var Mustache=require(_0x6296('0x5'));var util=require(_0x6296('0x6'));var path=require(_0x6296('0x7'));var sox=require(_0x6296('0x8'));var csv=require('to-csv');var ejs=require(_0x6296('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x6296('0xa'));var crypto=require(_0x6296('0xb'));var jsforce=require(_0x6296('0xc'));var deskjs=require(_0x6296('0xd'));var toCsv=require('to-csv');var querystring=require(_0x6296('0xe'));var Papa=require(_0x6296('0xf'));var Redis=require(_0x6296('0x10'));var authService=require(_0x6296('0x11'));var qs=require(_0x6296('0x12'));var as=require(_0x6296('0x13'));var hardwareService=require(_0x6296('0x14'));var logger=require(_0x6296('0x15'))('api');var utils=require(_0x6296('0x16'));var config=require(_0x6296('0x17'));var licenseUtil=require(_0x6296('0x18'));var db=require(_0x6296('0x19'))['db'];var jayson=require(_0x6296('0x1a'));var client=jayson['client'][_0x6296('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0x522630,_0x563ba4,_0x22bcff,_0x47a376){return new BPromise(function(_0x25d295,_0x4516a7){var _0x25de32=_0x47a376||client;return _0x25de32['request'](_0x522630,_0x22bcff)[_0x6296('0x1c')](function(_0x1fddde){logger[_0x6296('0x1d')](_0x6296('0x1e'),_0x563ba4,'request\x20sent');logger[_0x6296('0x1f')](_0x6296('0x20'),_0x563ba4,_0x6296('0x21'),JSON['stringify'](_0x1fddde));if(_0x1fddde[_0x6296('0x22')]){if(_0x1fddde[_0x6296('0x22')][_0x6296('0x23')]===0x1f4){logger[_0x6296('0x22')](_0x6296('0x1e'),_0x563ba4,_0x1fddde[_0x6296('0x22')][_0x6296('0x24')]);return _0x4516a7(_0x1fddde['error']['message']);}logger['error']('VoiceContext,\x20%s,\x20%s',_0x563ba4,_0x1fddde['error'][_0x6296('0x24')]);return _0x25d295(_0x1fddde['error'][_0x6296('0x24')]);}else{logger[_0x6296('0x1d')](_0x6296('0x1e'),_0x563ba4,_0x6296('0x21'));_0x25d295(_0x1fddde[_0x6296('0x25')][_0x6296('0x24')]);}})[_0x6296('0x26')](function(_0x2d4eda){logger['error'](_0x6296('0x1e'),_0x563ba4,_0x2d4eda);_0x4516a7(_0x2d4eda);});});}function respondWithStatusCode(_0x355d8f,_0x4a8d28){_0x4a8d28=_0x4a8d28||0xcc;return function(_0x5b6807){if(_0x5b6807){return _0x355d8f[_0x6296('0x27')](_0x4a8d28);}return _0x355d8f[_0x6296('0x28')](_0x4a8d28)[_0x6296('0x29')]();};}function respondWithResult(_0x355e59,_0x2486b2){_0x2486b2=_0x2486b2||0xc8;return function(_0xf1d1c3){if(_0xf1d1c3){return _0x355e59[_0x6296('0x28')](_0x2486b2)[_0x6296('0x2a')](_0xf1d1c3);}};}function respondWithFilteredResult(_0x28630e,_0x383cf9){return function(_0x131174){if(_0x131174){var _0xf1e839=typeof _0x383cf9[_0x6296('0x2b')]===_0x6296('0x2c')&&typeof _0x383cf9['limit']==='undefined';var _0x48dea5=_0x131174['count'];var _0x4bb92a=_0xf1e839?0x0:_0x383cf9[_0x6296('0x2b')];var _0x1e61e0=_0xf1e839?_0x131174[_0x6296('0x2d')]:_0x383cf9['offset']+_0x383cf9[_0x6296('0x2e')];var _0x4437e7;if(_0x1e61e0>=_0x48dea5){_0x1e61e0=_0x48dea5;_0x4437e7=0xc8;}else{_0x4437e7=0xce;}_0x28630e[_0x6296('0x28')](_0x4437e7);return _0x28630e[_0x6296('0x2f')]('Content-Range',_0x4bb92a+'-'+_0x1e61e0+'/'+_0x48dea5)[_0x6296('0x2a')](_0x131174);}return null;};}function patchUpdates(_0xf4c98){return function(_0x3d53eb){try{jsonpatch[_0x6296('0x30')](_0x3d53eb,_0xf4c98,!![]);}catch(_0x2cdcdf){return BPromise['reject'](_0x2cdcdf);}return _0x3d53eb[_0x6296('0x31')]();};}function saveUpdates(_0xb8c5d3,_0x2a56a8){return function(_0x571397){if(_0x571397){return _0x571397[_0x6296('0x32')](_0xb8c5d3)[_0x6296('0x1c')](function(_0x3520b6){return _0x3520b6;});}return null;};}function removeEntity(_0x485a20,_0x274af2){return function(_0x1b4a7f){if(_0x1b4a7f){return _0x1b4a7f[_0x6296('0x33')]()[_0x6296('0x1c')](function(){var _0x3586e3=_0x1b4a7f['get']({'plain':!![]});var _0x4c5b2c=_0x6296('0x34');return db[_0x6296('0x35')][_0x6296('0x33')]({'where':{'type':_0x4c5b2c,'resourceId':_0x3586e3['id']}})[_0x6296('0x1c')](function(){return _0x1b4a7f;});})[_0x6296('0x1c')](function(){_0x485a20[_0x6296('0x28')](0xcc)[_0x6296('0x29')]();});}};}function handleEntityNotFound(_0x282c6a,_0x190df6){return function(_0x225ebd){if(!_0x225ebd){_0x282c6a['sendStatus'](0x194);}return _0x225ebd;};}function handleError(_0x2d6358,_0x4721eb){_0x4721eb=_0x4721eb||0x1f4;return function(_0x23aaf5){logger[_0x6296('0x22')](_0x23aaf5[_0x6296('0x36')]);if(_0x23aaf5['name']){delete _0x23aaf5[_0x6296('0x37')];}_0x2d6358['status'](_0x4721eb)[_0x6296('0x38')](_0x23aaf5);};}exports['index']=function(_0x154640,_0xd199a2){var _0x16b1f1={},_0x1f1f0a={},_0x55e12d={'count':0x0,'rows':[]};var _0x5e605b=_[_0x6296('0x39')](db[_0x6296('0x3a')][_0x6296('0x3b')],function(_0xd03532){return{'name':_0xd03532['fieldName'],'type':_0xd03532[_0x6296('0x3c')][_0x6296('0x3d')]};});_0x1f1f0a[_0x6296('0x3e')]=_[_0x6296('0x39')](_0x5e605b,_0x6296('0x37'));_0x1f1f0a[_0x6296('0x3f')]=_[_0x6296('0x40')](_0x154640[_0x6296('0x3f')]);_0x1f1f0a[_0x6296('0x41')]=_[_0x6296('0x42')](_0x1f1f0a['model'],_0x1f1f0a['query']);_0x16b1f1['attributes']=_['intersection'](_0x1f1f0a['model'],qs['fields'](_0x154640[_0x6296('0x3f')][_0x6296('0x43')]));_0x16b1f1[_0x6296('0x44')]=_0x16b1f1[_0x6296('0x44')][_0x6296('0x45')]?_0x16b1f1[_0x6296('0x44')]:_0x1f1f0a[_0x6296('0x3e')];if(!_0x154640[_0x6296('0x3f')][_0x6296('0x46')]('nolimit')){_0x16b1f1[_0x6296('0x2e')]=qs['limit'](_0x154640[_0x6296('0x3f')][_0x6296('0x2e')]);_0x16b1f1[_0x6296('0x2b')]=qs[_0x6296('0x2b')](_0x154640['query'][_0x6296('0x2b')]);}_0x16b1f1[_0x6296('0x47')]=qs['sort'](_0x154640[_0x6296('0x3f')][_0x6296('0x48')]);_0x16b1f1[_0x6296('0x49')]=qs[_0x6296('0x41')](_[_0x6296('0x4a')](_0x154640[_0x6296('0x3f')],_0x1f1f0a['filters']),_0x5e605b);if(_0x154640[_0x6296('0x3f')][_0x6296('0x4b')]){_0x16b1f1['where']=_['merge'](_0x16b1f1[_0x6296('0x49')],{'$or':_[_0x6296('0x39')](_0x5e605b,function(_0x12ba46){if(_0x12ba46[_0x6296('0x3c')]!==_0x6296('0x4c')){var _0x33af7e={};_0x33af7e[_0x12ba46['name']]={'$like':'%'+_0x154640[_0x6296('0x3f')][_0x6296('0x4b')]+'%'};return _0x33af7e;}})});}_0x16b1f1=_[_0x6296('0x4d')]({},_0x16b1f1,_0x154640['options']);var _0x1d4f5e={'where':_0x16b1f1[_0x6296('0x49')]};return db[_0x6296('0x3a')][_0x6296('0x2d')](_0x1d4f5e)[_0x6296('0x1c')](function(_0x529f8d){_0x55e12d['count']=_0x529f8d;if(_0x154640[_0x6296('0x3f')][_0x6296('0x4e')]){_0x16b1f1[_0x6296('0x4f')]=[{'all':!![]}];}return db[_0x6296('0x3a')][_0x6296('0x50')](_0x16b1f1);})[_0x6296('0x1c')](function(_0x59ee12){_0x55e12d[_0x6296('0x51')]=_0x59ee12;return _0x55e12d;})[_0x6296('0x1c')](respondWithFilteredResult(_0xd199a2,_0x16b1f1))['catch'](handleError(_0xd199a2,null));};exports['show']=function(_0x24bc47,_0x2228ce){var _0x7b9bb0={'raw':![],'where':{'id':_0x24bc47['params']['id']}},_0x4278ba={};_0x4278ba['model']=_['keys'](db[_0x6296('0x3a')][_0x6296('0x3b')]);_0x4278ba[_0x6296('0x3f')]=_['keys'](_0x24bc47[_0x6296('0x3f')]);_0x4278ba[_0x6296('0x41')]=_[_0x6296('0x42')](_0x4278ba['model'],_0x4278ba[_0x6296('0x3f')]);_0x7b9bb0['attributes']=_[_0x6296('0x42')](_0x4278ba[_0x6296('0x3e')],qs[_0x6296('0x43')](_0x24bc47[_0x6296('0x3f')][_0x6296('0x43')]));_0x7b9bb0[_0x6296('0x44')]=_0x7b9bb0[_0x6296('0x44')][_0x6296('0x45')]?_0x7b9bb0[_0x6296('0x44')]:_0x4278ba[_0x6296('0x3e')];if(_0x24bc47[_0x6296('0x3f')][_0x6296('0x4e')]){_0x7b9bb0[_0x6296('0x4f')]=[{'all':!![]}];}_0x7b9bb0=_[_0x6296('0x4d')]({},_0x7b9bb0,_0x24bc47[_0x6296('0x52')]);return db[_0x6296('0x3a')]['find'](_0x7b9bb0)[_0x6296('0x1c')](handleEntityNotFound(_0x2228ce,null))[_0x6296('0x1c')](respondWithResult(_0x2228ce,null))['catch'](handleError(_0x2228ce,null));};exports[_0x6296('0x53')]=function(_0x29b57a,_0x204d00,_0x5c9a68){var _0x4a84a6;return db[_0x6296('0x3a')][_0x6296('0x53')](_0x29b57a[_0x6296('0x54')],{'raw':!![]})[_0x6296('0x1c')](function(_0x240577){_0x4a84a6=_0x240577;return db[_0x6296('0x3a')][_0x6296('0x50')]({'raw':!![]});})[_0x6296('0x1c')](function(_0x3c47f4){var _0x995fbb=fs[_0x6296('0x55')](path['join'](config[_0x6296('0x56')],_0x6296('0x57')),_0x6296('0x58'));var _0x2e133f=ejs[_0x6296('0x59')](_0x995fbb,{'contexts':_0x3c47f4||[]});fs[_0x6296('0x5a')](_0x6296('0x5b'),_0x2e133f);})[_0x6296('0x1c')](function(){return respondWithRpcPromise(_0x6296('0x5c'),_0x6296('0x53'),{'module':_0x6296('0x5d')});})['then'](function(){var _0x4b98b7=_0x29b57a[_0x6296('0x5e')]['get']({'plain':!![]});if(!_0x4b98b7)throw new Error(_0x6296('0x5f'));if(_0x4b98b7[_0x6296('0x60')]===_0x6296('0x5e')){var _0x49584e=_0x4a84a6['get']({'plain':!![]});return db[_0x6296('0x61')]['find']({'where':{'name':_0x6296('0x34'),'userProfileId':_0x4b98b7[_0x6296('0x62')]},'raw':!![]})[_0x6296('0x1c')](function(_0x165388){if(_0x165388&&_0x165388['autoAssociation']===0x0){return db[_0x6296('0x35')][_0x6296('0x53')]({'name':_0x49584e[_0x6296('0x37')],'resourceId':_0x49584e['id'],'type':_0x165388[_0x6296('0x37')],'sectionId':_0x165388['id']},{})['then'](function(){return _0x4a84a6;});}else{return _0x4a84a6;}})[_0x6296('0x26')](function(_0x2eb4f4){logger[_0x6296('0x22')](_0x6296('0x63'),_0x2eb4f4);throw _0x2eb4f4;});}return _0x4a84a6;})[_0x6296('0x1c')](respondWithResult(_0x204d00,0xc9))[_0x6296('0x26')](handleError(_0x204d00,null));};exports['update']=function(_0x29016e,_0x349f92,_0x5b09c1){var _0x3a2ca0;return db[_0x6296('0x3a')][_0x6296('0x64')]({'where':{'id':_0x29016e[_0x6296('0x65')]['id']}})['then'](handleEntityNotFound(_0x349f92,null))[_0x6296('0x1c')](saveUpdates(_0x29016e['body'],null))[_0x6296('0x1c')](function(_0x5795d0){if(_0x5795d0){_0x3a2ca0=_0x5795d0;return db['VoiceContext'][_0x6296('0x50')]({'raw':!![]});}})[_0x6296('0x1c')](function(_0x4083a9){var _0x1c491b=fs[_0x6296('0x55')](path[_0x6296('0x66')](config[_0x6296('0x56')],'server/files/templates/context.ejs'),'utf8');var _0x267da7=ejs['render'](_0x1c491b,{'contexts':_0x4083a9||[]});fs[_0x6296('0x5a')](_0x6296('0x5b'),_0x267da7);})[_0x6296('0x1c')](function(){return respondWithRpcPromise(_0x6296('0x5c'),_0x6296('0x32'),{'module':'chan_sip.so'});})[_0x6296('0x1c')](function(){return _0x3a2ca0;})[_0x6296('0x1c')](respondWithResult(_0x349f92,null))[_0x6296('0x26')](handleError(_0x349f92,null));};exports['destroy']=function(_0x5ce3b4,_0x599652,_0x3a8bc9){var _0x1aa4f2;return db['VoiceContext'][_0x6296('0x64')]({'where':{'id':_0x5ce3b4[_0x6296('0x65')]['id']}})[_0x6296('0x1c')](handleEntityNotFound(_0x599652,null))['then'](removeEntity(_0x599652,null))[_0x6296('0x1c')](function(){return db['VoiceContext'][_0x6296('0x50')]({'raw':!![]});})[_0x6296('0x1c')](function(_0x294a19){var _0x55bcb1=fs[_0x6296('0x55')](path[_0x6296('0x66')](config[_0x6296('0x56')],_0x6296('0x57')),_0x6296('0x58'));var _0x393e35=ejs[_0x6296('0x59')](_0x55bcb1,{'contexts':_0x294a19});fs[_0x6296('0x5a')](_0x6296('0x5b'),_0x393e35);return respondWithRpcPromise(_0x6296('0x5c'),'destroy',{'module':'chan_sip.so'});})[_0x6296('0x26')](handleError(_0x599652,null));};