Built motion from commit b5413ace.|2.6.9
[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 _0x310e=['name','send','map','VoiceContext','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','count','includeAll','include','rows','catch','show','find','create','body','findAll','join','server/files/templates/context.ejs','utf8','render','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','Reload','chan_sip.so','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','Contexts','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','readFileSync','root','destroy','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','client','request','then','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','error','code','message','info','result','sendStatus','status','end','offset','undefined','limit','set','json','apply','reject','update','stack'];(function(_0x3005d5,_0xf588c7){var _0x547c7e=function(_0x4514dc){while(--_0x4514dc){_0x3005d5['push'](_0x3005d5['shift']());}};_0x547c7e(++_0xf588c7);}(_0x310e,0x1e9));var _0xe310=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x310e[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0xe310('0x0'));var rimraf=require(_0xe310('0x1'));var zipdir=require(_0xe310('0x2'));var jsonpatch=require(_0xe310('0x3'));var rp=require('request-promise');var moment=require(_0xe310('0x4'));var BPromise=require(_0xe310('0x5'));var Mustache=require('mustache');var util=require(_0xe310('0x6'));var path=require(_0xe310('0x7'));var sox=require(_0xe310('0x8'));var csv=require(_0xe310('0x9'));var ejs=require(_0xe310('0xa'));var fs=require('fs');var fs_extra=require(_0xe310('0xb'));var _=require(_0xe310('0xc'));var squel=require(_0xe310('0xd'));var crypto=require('crypto');var jsforce=require(_0xe310('0xe'));var deskjs=require(_0xe310('0xf'));var toCsv=require(_0xe310('0x9'));var querystring=require(_0xe310('0x10'));var Papa=require(_0xe310('0x11'));var Redis=require(_0xe310('0x12'));var authService=require(_0xe310('0x13'));var qs=require(_0xe310('0x14'));var as=require(_0xe310('0x15'));var hardwareService=require(_0xe310('0x16'));var logger=require(_0xe310('0x17'))('api');var utils=require('../../config/utils');var config=require(_0xe310('0x18'));var licenseUtil=require(_0xe310('0x19'));var db=require(_0xe310('0x1a'))['db'];var jayson=require('jayson/promise');var client=jayson[_0xe310('0x1b')]['http']({'port':0x232a});function respondWithRpcPromise(_0x31626e,_0xd5f7ca,_0x3cfe42,_0x3b41c8){return new BPromise(function(_0xf11edc,_0x2f0c7f){var _0x508092=_0x3b41c8||client;return _0x508092[_0xe310('0x1c')](_0x31626e,_0x3cfe42)[_0xe310('0x1d')](function(_0x68e02e){logger['info'](_0xe310('0x1e'),_0xd5f7ca,_0xe310('0x1f'));logger[_0xe310('0x20')](_0xe310('0x21'),_0xd5f7ca,_0xe310('0x1f'),JSON['stringify'](_0x68e02e));if(_0x68e02e[_0xe310('0x22')]){if(_0x68e02e['error'][_0xe310('0x23')]===0x1f4){logger[_0xe310('0x22')](_0xe310('0x1e'),_0xd5f7ca,_0x68e02e[_0xe310('0x22')][_0xe310('0x24')]);return _0x2f0c7f(_0x68e02e['error'][_0xe310('0x24')]);}logger[_0xe310('0x22')](_0xe310('0x1e'),_0xd5f7ca,_0x68e02e[_0xe310('0x22')][_0xe310('0x24')]);return _0xf11edc(_0x68e02e[_0xe310('0x22')]['message']);}else{logger[_0xe310('0x25')]('VoiceContext,\x20%s,\x20%s',_0xd5f7ca,_0xe310('0x1f'));_0xf11edc(_0x68e02e[_0xe310('0x26')][_0xe310('0x24')]);}})['catch'](function(_0x52485a){logger[_0xe310('0x22')](_0xe310('0x1e'),_0xd5f7ca,_0x52485a);_0x2f0c7f(_0x52485a);});});}function respondWithStatusCode(_0x1b5d41,_0x11592a){_0x11592a=_0x11592a||0xcc;return function(_0x2a6661){if(_0x2a6661){return _0x1b5d41[_0xe310('0x27')](_0x11592a);}return _0x1b5d41[_0xe310('0x28')](_0x11592a)[_0xe310('0x29')]();};}function respondWithResult(_0x591e4d,_0x2c1cb4){_0x2c1cb4=_0x2c1cb4||0xc8;return function(_0xaf5b7b){if(_0xaf5b7b){return _0x591e4d['status'](_0x2c1cb4)['json'](_0xaf5b7b);}};}function respondWithFilteredResult(_0x205950,_0x49a288){return function(_0x39334e){if(_0x39334e){var _0x5dd014=typeof _0x49a288[_0xe310('0x2a')]===_0xe310('0x2b')&&typeof _0x49a288[_0xe310('0x2c')]===_0xe310('0x2b');var _0x4284f7=_0x39334e['count'];var _0x3610d8=_0x5dd014?0x0:_0x49a288['offset'];var _0x32f04c=_0x5dd014?_0x39334e['count']:_0x49a288[_0xe310('0x2a')]+_0x49a288[_0xe310('0x2c')];var _0x2febae;if(_0x32f04c>=_0x4284f7){_0x32f04c=_0x4284f7;_0x2febae=0xc8;}else{_0x2febae=0xce;}_0x205950['status'](_0x2febae);return _0x205950[_0xe310('0x2d')]('Content-Range',_0x3610d8+'-'+_0x32f04c+'/'+_0x4284f7)[_0xe310('0x2e')](_0x39334e);}return null;};}function patchUpdates(_0x494f26){return function(_0x5bb944){try{jsonpatch[_0xe310('0x2f')](_0x5bb944,_0x494f26,!![]);}catch(_0x3e4830){return BPromise[_0xe310('0x30')](_0x3e4830);}return _0x5bb944['save']();};}function saveUpdates(_0x555d83,_0x35657f){return function(_0x2dd63f){if(_0x2dd63f){return _0x2dd63f[_0xe310('0x31')](_0x555d83)[_0xe310('0x1d')](function(_0xa02f64){return _0xa02f64;});}return null;};}function removeEntity(_0x2c5230,_0x2417a4){return function(_0x55fcbc){if(_0x55fcbc){return _0x55fcbc['destroy']()[_0xe310('0x1d')](function(){var _0x11c6ad=_0x55fcbc['get']({'plain':!![]});var _0x8aaac6='Contexts';return db['UserProfileResource']['destroy']({'where':{'type':_0x8aaac6,'resourceId':_0x11c6ad['id']}})[_0xe310('0x1d')](function(){return _0x55fcbc;});})[_0xe310('0x1d')](function(){_0x2c5230[_0xe310('0x28')](0xcc)[_0xe310('0x29')]();});}};}function handleEntityNotFound(_0x32a33c,_0x5e7d52){return function(_0x5da38c){if(!_0x5da38c){_0x32a33c[_0xe310('0x27')](0x194);}return _0x5da38c;};}function handleError(_0x3dafc0,_0x4a0fae){_0x4a0fae=_0x4a0fae||0x1f4;return function(_0x3a41e9){logger['error'](_0x3a41e9[_0xe310('0x32')]);if(_0x3a41e9[_0xe310('0x33')]){delete _0x3a41e9[_0xe310('0x33')];}_0x3dafc0[_0xe310('0x28')](_0x4a0fae)[_0xe310('0x34')](_0x3a41e9);};}exports['index']=function(_0x4a38c7,_0x2ab6e2){var _0x472c26={},_0x1cd4c4={},_0xb4a1cf={'count':0x0,'rows':[]};var _0x57a037=_[_0xe310('0x35')](db[_0xe310('0x36')][_0xe310('0x37')],function(_0x4692aa){return{'name':_0x4692aa[_0xe310('0x38')],'type':_0x4692aa['type'][_0xe310('0x39')]};});_0x1cd4c4[_0xe310('0x3a')]=_[_0xe310('0x35')](_0x57a037,_0xe310('0x33'));_0x1cd4c4[_0xe310('0x3b')]=_[_0xe310('0x3c')](_0x4a38c7[_0xe310('0x3b')]);_0x1cd4c4[_0xe310('0x3d')]=_[_0xe310('0x3e')](_0x1cd4c4[_0xe310('0x3a')],_0x1cd4c4['query']);_0x472c26[_0xe310('0x3f')]=_['intersection'](_0x1cd4c4[_0xe310('0x3a')],qs[_0xe310('0x40')](_0x4a38c7[_0xe310('0x3b')][_0xe310('0x40')]));_0x472c26['attributes']=_0x472c26[_0xe310('0x3f')][_0xe310('0x41')]?_0x472c26[_0xe310('0x3f')]:_0x1cd4c4['model'];if(!_0x4a38c7[_0xe310('0x3b')][_0xe310('0x42')](_0xe310('0x43'))){_0x472c26[_0xe310('0x2c')]=qs[_0xe310('0x2c')](_0x4a38c7[_0xe310('0x3b')][_0xe310('0x2c')]);_0x472c26[_0xe310('0x2a')]=qs['offset'](_0x4a38c7['query'][_0xe310('0x2a')]);}_0x472c26[_0xe310('0x44')]=qs[_0xe310('0x45')](_0x4a38c7['query'][_0xe310('0x45')]);_0x472c26[_0xe310('0x46')]=qs[_0xe310('0x3d')](_[_0xe310('0x47')](_0x4a38c7['query'],_0x1cd4c4[_0xe310('0x3d')]),_0x57a037);if(_0x4a38c7[_0xe310('0x3b')][_0xe310('0x48')]){_0x472c26['where']=_[_0xe310('0x49')](_0x472c26[_0xe310('0x46')],{'$or':_['map'](_0x57a037,function(_0x3b4448){if(_0x3b4448[_0xe310('0x4a')]!==_0xe310('0x4b')){var _0x2e5924={};_0x2e5924[_0x3b4448[_0xe310('0x33')]]={'$like':'%'+_0x4a38c7[_0xe310('0x3b')][_0xe310('0x48')]+'%'};return _0x2e5924;}})});}_0x472c26=_['merge']({},_0x472c26,_0x4a38c7[_0xe310('0x4c')]);var _0x417186={'where':_0x472c26[_0xe310('0x46')]};return db[_0xe310('0x36')]['count'](_0x417186)[_0xe310('0x1d')](function(_0x6c0d5f){_0xb4a1cf[_0xe310('0x4d')]=_0x6c0d5f;if(_0x4a38c7[_0xe310('0x3b')][_0xe310('0x4e')]){_0x472c26[_0xe310('0x4f')]=[{'all':!![]}];}return db[_0xe310('0x36')]['findAll'](_0x472c26);})['then'](function(_0x350729){_0xb4a1cf[_0xe310('0x50')]=_0x350729;return _0xb4a1cf;})[_0xe310('0x1d')](respondWithFilteredResult(_0x2ab6e2,_0x472c26))[_0xe310('0x51')](handleError(_0x2ab6e2,null));};exports[_0xe310('0x52')]=function(_0x5ae7fe,_0x4a9d6a){var _0x1bea87={'raw':![],'where':{'id':_0x5ae7fe['params']['id']}},_0x442f3d={};_0x442f3d[_0xe310('0x3a')]=_[_0xe310('0x3c')](db[_0xe310('0x36')]['rawAttributes']);_0x442f3d[_0xe310('0x3b')]=_[_0xe310('0x3c')](_0x5ae7fe['query']);_0x442f3d[_0xe310('0x3d')]=_[_0xe310('0x3e')](_0x442f3d['model'],_0x442f3d[_0xe310('0x3b')]);_0x1bea87[_0xe310('0x3f')]=_[_0xe310('0x3e')](_0x442f3d[_0xe310('0x3a')],qs[_0xe310('0x40')](_0x5ae7fe[_0xe310('0x3b')][_0xe310('0x40')]));_0x1bea87[_0xe310('0x3f')]=_0x1bea87['attributes']['length']?_0x1bea87[_0xe310('0x3f')]:_0x442f3d[_0xe310('0x3a')];if(_0x5ae7fe[_0xe310('0x3b')]['includeAll']){_0x1bea87['include']=[{'all':!![]}];}_0x1bea87=_[_0xe310('0x49')]({},_0x1bea87,_0x5ae7fe[_0xe310('0x4c')]);return db['VoiceContext'][_0xe310('0x53')](_0x1bea87)[_0xe310('0x1d')](handleEntityNotFound(_0x4a9d6a,null))[_0xe310('0x1d')](respondWithResult(_0x4a9d6a,null))[_0xe310('0x51')](handleError(_0x4a9d6a,null));};exports[_0xe310('0x54')]=function(_0x2fe74e,_0x58a864,_0x20716d){var _0x497e49;return db['VoiceContext']['create'](_0x2fe74e[_0xe310('0x55')],{'raw':!![]})[_0xe310('0x1d')](function(_0x42888d){_0x497e49=_0x42888d;return db[_0xe310('0x36')][_0xe310('0x56')]({'raw':!![]});})[_0xe310('0x1d')](function(_0x2a9f7e){var _0x844375=fs['readFileSync'](path[_0xe310('0x57')](config['root'],_0xe310('0x58')),_0xe310('0x59'));var _0xcbf6d9=ejs[_0xe310('0x5a')](_0x844375,{'contexts':_0x2a9f7e||[]});fs[_0xe310('0x5b')](_0xe310('0x5c'),_0xcbf6d9);})[_0xe310('0x1d')](function(){return respondWithRpcPromise(_0xe310('0x5d'),_0xe310('0x54'),{'module':_0xe310('0x5e')});})['then'](function(){var _0x139f9b=_0x2fe74e['user'][_0xe310('0x5f')]({'plain':!![]});if(!_0x139f9b)throw new Error(_0xe310('0x60'));if(_0x139f9b[_0xe310('0x61')]===_0xe310('0x62')){var _0x6440e1=_0x497e49['get']({'plain':!![]});return db[_0xe310('0x63')][_0xe310('0x53')]({'where':{'name':_0xe310('0x64'),'userProfileId':_0x139f9b[_0xe310('0x65')]},'raw':!![]})['then'](function(_0xa26fa6){if(_0xa26fa6&&_0xa26fa6[_0xe310('0x66')]===0x0){return db['UserProfileResource'][_0xe310('0x54')]({'name':_0x6440e1[_0xe310('0x33')],'resourceId':_0x6440e1['id'],'type':_0xa26fa6[_0xe310('0x33')],'sectionId':_0xa26fa6['id']},{})['then'](function(){return _0x497e49;});}else{return _0x497e49;}})[_0xe310('0x51')](function(_0x219b95){logger['error'](_0xe310('0x67'),_0x219b95);throw _0x219b95;});}return _0x497e49;})[_0xe310('0x1d')](respondWithResult(_0x58a864,0xc9))[_0xe310('0x51')](handleError(_0x58a864,null));};exports[_0xe310('0x31')]=function(_0x4a9954,_0x2c74d8,_0x49c033){var _0x1d9bab;return db[_0xe310('0x36')][_0xe310('0x53')]({'where':{'id':_0x4a9954[_0xe310('0x68')]['id']}})[_0xe310('0x1d')](handleEntityNotFound(_0x2c74d8,null))['then'](saveUpdates(_0x4a9954[_0xe310('0x55')],null))[_0xe310('0x1d')](function(_0x1be7e3){if(_0x1be7e3){_0x1d9bab=_0x1be7e3;return db[_0xe310('0x36')][_0xe310('0x56')]({'raw':!![]});}})[_0xe310('0x1d')](function(_0x420f86){var _0x4cb9df=fs[_0xe310('0x69')](path['join'](config[_0xe310('0x6a')],_0xe310('0x58')),'utf8');var _0x3f52c0=ejs[_0xe310('0x5a')](_0x4cb9df,{'contexts':_0x420f86||[]});fs['writeFileSync'](_0xe310('0x5c'),_0x3f52c0);})[_0xe310('0x1d')](function(){return respondWithRpcPromise('Reload',_0xe310('0x31'),{'module':'chan_sip.so'});})[_0xe310('0x1d')](function(){return _0x1d9bab;})[_0xe310('0x1d')](respondWithResult(_0x2c74d8,null))[_0xe310('0x51')](handleError(_0x2c74d8,null));};exports['destroy']=function(_0x4c52a7,_0x53ae2c,_0x385a38){var _0x56d8eb;return db['VoiceContext']['find']({'where':{'id':_0x4c52a7[_0xe310('0x68')]['id']}})['then'](handleEntityNotFound(_0x53ae2c,null))[_0xe310('0x1d')](removeEntity(_0x53ae2c,null))[_0xe310('0x1d')](function(){return db[_0xe310('0x36')]['findAll']({'raw':!![]});})['then'](function(_0x4625b8){var _0x3f56e4=fs[_0xe310('0x69')](path[_0xe310('0x57')](config[_0xe310('0x6a')],_0xe310('0x58')),_0xe310('0x59'));var _0x1587a9=ejs[_0xe310('0x5a')](_0x3f56e4,{'contexts':_0x4625b8});fs[_0xe310('0x5b')](_0xe310('0x5c'),_0x1587a9);return respondWithRpcPromise('Reload',_0xe310('0x6b'),{'module':_0xe310('0x5e')});})['catch'](handleError(_0x53ae2c,null));};