Built motion from commit eddce310.|2.6.12
[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 _0x5076=['chan_sip.so','role','UserProfileSection','Contexts','userProfileId','utf8','writeFileSync','Reload','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','client','http','then','info','request\x20sent','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','code','VoiceContext,\x20%s,\x20%s','message','result','catch','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','destroy','get','UserProfileResource','stack','name','send','index','map','VoiceContext','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','where','merge','VIRTUAL','filter','options','include','findAll','rows','show','params','includeAll','find','create','readFileSync','join','root','server/files/templates/context.ejs','render','/etc/asterisk/extensions_xcally_contexts.conf'];(function(_0x21f07f,_0x5c5ae1){var _0x4dd94c=function(_0xf4e022){while(--_0xf4e022){_0x21f07f['push'](_0x21f07f['shift']());}};_0x4dd94c(++_0x5c5ae1);}(_0x5076,0x140));var _0x6507=function(_0x54beb0,_0x5623ad){_0x54beb0=_0x54beb0-0x0;var _0xefc804=_0x5076[_0x54beb0];return _0xefc804;};'use strict';var emlformat=require(_0x6507('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x6507('0x1'));var jsonpatch=require(_0x6507('0x2'));var rp=require(_0x6507('0x3'));var moment=require(_0x6507('0x4'));var BPromise=require(_0x6507('0x5'));var Mustache=require(_0x6507('0x6'));var util=require(_0x6507('0x7'));var path=require(_0x6507('0x8'));var sox=require('sox');var csv=require(_0x6507('0x9'));var ejs=require(_0x6507('0xa'));var fs=require('fs');var fs_extra=require(_0x6507('0xb'));var _=require(_0x6507('0xc'));var squel=require('squel');var crypto=require(_0x6507('0xd'));var jsforce=require(_0x6507('0xe'));var deskjs=require(_0x6507('0xf'));var toCsv=require(_0x6507('0x9'));var querystring=require(_0x6507('0x10'));var Papa=require(_0x6507('0x11'));var Redis=require('ioredis');var authService=require(_0x6507('0x12'));var qs=require(_0x6507('0x13'));var as=require(_0x6507('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x6507('0x15'))(_0x6507('0x16'));var utils=require('../../config/utils');var config=require(_0x6507('0x17'));var licenseUtil=require(_0x6507('0x18'));var db=require(_0x6507('0x19'))['db'];var jayson=require('jayson/promise');var client=jayson[_0x6507('0x1a')][_0x6507('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0xe8eb30,_0x4359c9,_0x28acff,_0x461f21){return new BPromise(function(_0x54d4d9,_0x2df7d6){var _0x56e6f9=_0x461f21||client;return _0x56e6f9['request'](_0xe8eb30,_0x28acff)[_0x6507('0x1c')](function(_0x552859){logger[_0x6507('0x1d')]('VoiceContext,\x20%s,\x20%s',_0x4359c9,_0x6507('0x1e'));logger['debug'](_0x6507('0x1f'),_0x4359c9,_0x6507('0x1e'),JSON[_0x6507('0x20')](_0x552859));if(_0x552859[_0x6507('0x21')]){if(_0x552859[_0x6507('0x21')][_0x6507('0x22')]===0x1f4){logger[_0x6507('0x21')](_0x6507('0x23'),_0x4359c9,_0x552859[_0x6507('0x21')][_0x6507('0x24')]);return _0x2df7d6(_0x552859[_0x6507('0x21')][_0x6507('0x24')]);}logger[_0x6507('0x21')](_0x6507('0x23'),_0x4359c9,_0x552859['error']['message']);return _0x54d4d9(_0x552859[_0x6507('0x21')][_0x6507('0x24')]);}else{logger[_0x6507('0x1d')]('VoiceContext,\x20%s,\x20%s',_0x4359c9,_0x6507('0x1e'));_0x54d4d9(_0x552859[_0x6507('0x25')]['message']);}})[_0x6507('0x26')](function(_0x1e446d){logger[_0x6507('0x21')](_0x6507('0x23'),_0x4359c9,_0x1e446d);_0x2df7d6(_0x1e446d);});});}function respondWithStatusCode(_0x4a3e10,_0x4cff80){_0x4cff80=_0x4cff80||0xcc;return function(_0x2f2f36){if(_0x2f2f36){return _0x4a3e10[_0x6507('0x27')](_0x4cff80);}return _0x4a3e10['status'](_0x4cff80)[_0x6507('0x28')]();};}function respondWithResult(_0x3ea624,_0x489934){_0x489934=_0x489934||0xc8;return function(_0x5a89ff){if(_0x5a89ff){return _0x3ea624[_0x6507('0x29')](_0x489934)[_0x6507('0x2a')](_0x5a89ff);}};}function respondWithFilteredResult(_0x18b7dc,_0x38c82a){return function(_0x1df850){if(_0x1df850){var _0x30d615=typeof _0x38c82a[_0x6507('0x2b')]===_0x6507('0x2c')&&typeof _0x38c82a[_0x6507('0x2d')]===_0x6507('0x2c');var _0x357297=_0x1df850[_0x6507('0x2e')];var _0x16b2d3=_0x30d615?0x0:_0x38c82a['offset'];var _0x11ce25=_0x30d615?_0x1df850[_0x6507('0x2e')]:_0x38c82a[_0x6507('0x2b')]+_0x38c82a[_0x6507('0x2d')];var _0x505908;if(_0x11ce25>=_0x357297){_0x11ce25=_0x357297;_0x505908=0xc8;}else{_0x505908=0xce;}_0x18b7dc[_0x6507('0x29')](_0x505908);return _0x18b7dc[_0x6507('0x2f')](_0x6507('0x30'),_0x16b2d3+'-'+_0x11ce25+'/'+_0x357297)['json'](_0x1df850);}return null;};}function patchUpdates(_0x371c45){return function(_0x1b4b43){try{jsonpatch[_0x6507('0x31')](_0x1b4b43,_0x371c45,!![]);}catch(_0x487080){return BPromise[_0x6507('0x32')](_0x487080);}return _0x1b4b43['save']();};}function saveUpdates(_0x4de2a4,_0x2333f1){return function(_0x426d1a){if(_0x426d1a){return _0x426d1a[_0x6507('0x33')](_0x4de2a4)[_0x6507('0x1c')](function(_0x7c98df){return _0x7c98df;});}return null;};}function removeEntity(_0x46c6eb,_0x5a1e8e){return function(_0x28d8f6){if(_0x28d8f6){return _0x28d8f6[_0x6507('0x34')]()[_0x6507('0x1c')](function(){var _0x42872a=_0x28d8f6[_0x6507('0x35')]({'plain':!![]});var _0x2827c4='Contexts';return db[_0x6507('0x36')][_0x6507('0x34')]({'where':{'type':_0x2827c4,'resourceId':_0x42872a['id']}})[_0x6507('0x1c')](function(){return _0x28d8f6;});})[_0x6507('0x1c')](function(){_0x46c6eb[_0x6507('0x29')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4ea89b,_0x1ad662){return function(_0x2a97fc){if(!_0x2a97fc){_0x4ea89b['sendStatus'](0x194);}return _0x2a97fc;};}function handleError(_0x5cc930,_0x602607){_0x602607=_0x602607||0x1f4;return function(_0x4acbfc){logger[_0x6507('0x21')](_0x4acbfc[_0x6507('0x37')]);if(_0x4acbfc[_0x6507('0x38')]){delete _0x4acbfc[_0x6507('0x38')];}_0x5cc930[_0x6507('0x29')](_0x602607)[_0x6507('0x39')](_0x4acbfc);};}exports[_0x6507('0x3a')]=function(_0x45a947,_0x252702){var _0x10f98c={},_0x4b6907={},_0x237994={'count':0x0,'rows':[]};var _0x5ca757=_[_0x6507('0x3b')](db[_0x6507('0x3c')][_0x6507('0x3d')],function(_0x4b6ee3){return{'name':_0x4b6ee3[_0x6507('0x3e')],'type':_0x4b6ee3[_0x6507('0x3f')]['key']};});_0x4b6907[_0x6507('0x40')]=_[_0x6507('0x3b')](_0x5ca757,'name');_0x4b6907[_0x6507('0x41')]=_[_0x6507('0x42')](_0x45a947[_0x6507('0x41')]);_0x4b6907[_0x6507('0x43')]=_[_0x6507('0x44')](_0x4b6907[_0x6507('0x40')],_0x4b6907[_0x6507('0x41')]);_0x10f98c[_0x6507('0x45')]=_[_0x6507('0x44')](_0x4b6907[_0x6507('0x40')],qs['fields'](_0x45a947[_0x6507('0x41')][_0x6507('0x46')]));_0x10f98c[_0x6507('0x45')]=_0x10f98c[_0x6507('0x45')][_0x6507('0x47')]?_0x10f98c[_0x6507('0x45')]:_0x4b6907[_0x6507('0x40')];if(!_0x45a947[_0x6507('0x41')][_0x6507('0x48')](_0x6507('0x49'))){_0x10f98c[_0x6507('0x2d')]=qs['limit'](_0x45a947[_0x6507('0x41')][_0x6507('0x2d')]);_0x10f98c['offset']=qs[_0x6507('0x2b')](_0x45a947[_0x6507('0x41')]['offset']);}_0x10f98c[_0x6507('0x4a')]=qs['sort'](_0x45a947['query'][_0x6507('0x4b')]);_0x10f98c['where']=qs[_0x6507('0x43')](_[_0x6507('0x4c')](_0x45a947[_0x6507('0x41')],_0x4b6907[_0x6507('0x43')]),_0x5ca757);if(_0x45a947['query']['filter']){_0x10f98c[_0x6507('0x4d')]=_[_0x6507('0x4e')](_0x10f98c[_0x6507('0x4d')],{'$or':_[_0x6507('0x3b')](_0x5ca757,function(_0x53a88b){if(_0x53a88b['type']!==_0x6507('0x4f')){var _0x1e8e34={};_0x1e8e34[_0x53a88b[_0x6507('0x38')]]={'$like':'%'+_0x45a947['query'][_0x6507('0x50')]+'%'};return _0x1e8e34;}})});}_0x10f98c=_[_0x6507('0x4e')]({},_0x10f98c,_0x45a947[_0x6507('0x51')]);var _0x7f2f0c={'where':_0x10f98c[_0x6507('0x4d')]};return db[_0x6507('0x3c')][_0x6507('0x2e')](_0x7f2f0c)[_0x6507('0x1c')](function(_0xbe3b0b){_0x237994[_0x6507('0x2e')]=_0xbe3b0b;if(_0x45a947['query']['includeAll']){_0x10f98c[_0x6507('0x52')]=[{'all':!![]}];}return db[_0x6507('0x3c')][_0x6507('0x53')](_0x10f98c);})['then'](function(_0x4679d1){_0x237994[_0x6507('0x54')]=_0x4679d1;return _0x237994;})['then'](respondWithFilteredResult(_0x252702,_0x10f98c))[_0x6507('0x26')](handleError(_0x252702,null));};exports[_0x6507('0x55')]=function(_0x27bc1a,_0x383d32){var _0x31b662={'raw':![],'where':{'id':_0x27bc1a[_0x6507('0x56')]['id']}},_0x4bc101={};_0x4bc101[_0x6507('0x40')]=_[_0x6507('0x42')](db['VoiceContext'][_0x6507('0x3d')]);_0x4bc101['query']=_[_0x6507('0x42')](_0x27bc1a[_0x6507('0x41')]);_0x4bc101[_0x6507('0x43')]=_['intersection'](_0x4bc101[_0x6507('0x40')],_0x4bc101['query']);_0x31b662[_0x6507('0x45')]=_[_0x6507('0x44')](_0x4bc101[_0x6507('0x40')],qs[_0x6507('0x46')](_0x27bc1a['query'][_0x6507('0x46')]));_0x31b662[_0x6507('0x45')]=_0x31b662[_0x6507('0x45')]['length']?_0x31b662['attributes']:_0x4bc101[_0x6507('0x40')];if(_0x27bc1a[_0x6507('0x41')][_0x6507('0x57')]){_0x31b662[_0x6507('0x52')]=[{'all':!![]}];}_0x31b662=_[_0x6507('0x4e')]({},_0x31b662,_0x27bc1a[_0x6507('0x51')]);return db[_0x6507('0x3c')][_0x6507('0x58')](_0x31b662)[_0x6507('0x1c')](handleEntityNotFound(_0x383d32,null))['then'](respondWithResult(_0x383d32,null))['catch'](handleError(_0x383d32,null));};exports[_0x6507('0x59')]=function(_0x445b7d,_0x39a405,_0x10e6c7){var _0x53438f;return db[_0x6507('0x3c')][_0x6507('0x59')](_0x445b7d['body'],{'raw':!![]})['then'](function(_0x4d7529){_0x53438f=_0x4d7529;return db[_0x6507('0x3c')]['findAll']({'raw':!![]});})[_0x6507('0x1c')](function(_0x266f2c){var _0x36246e=fs[_0x6507('0x5a')](path[_0x6507('0x5b')](config[_0x6507('0x5c')],_0x6507('0x5d')),'utf8');var _0x2808e7=ejs[_0x6507('0x5e')](_0x36246e,{'contexts':_0x266f2c||[]});fs['writeFileSync'](_0x6507('0x5f'),_0x2808e7);})[_0x6507('0x1c')](function(){return respondWithRpcPromise('Reload',_0x6507('0x59'),{'module':_0x6507('0x60')});})[_0x6507('0x1c')](function(){var _0x499f21=_0x445b7d['user'][_0x6507('0x35')]({'plain':!![]});if(!_0x499f21)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x499f21[_0x6507('0x61')]==='user'){var _0x549c4f=_0x53438f[_0x6507('0x35')]({'plain':!![]});return db[_0x6507('0x62')][_0x6507('0x58')]({'where':{'name':_0x6507('0x63'),'userProfileId':_0x499f21[_0x6507('0x64')]},'raw':!![]})['then'](function(_0x25e036){if(_0x25e036&&_0x25e036['autoAssociation']===0x0){return db[_0x6507('0x36')][_0x6507('0x59')]({'name':_0x549c4f[_0x6507('0x38')],'resourceId':_0x549c4f['id'],'type':_0x25e036['name'],'sectionId':_0x25e036['id']},{})[_0x6507('0x1c')](function(){return _0x53438f;});}else{return _0x53438f;}})['catch'](function(_0x5ec6ec){logger[_0x6507('0x21')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x5ec6ec);throw _0x5ec6ec;});}return _0x53438f;})[_0x6507('0x1c')](respondWithResult(_0x39a405,0xc9))[_0x6507('0x26')](handleError(_0x39a405,null));};exports['update']=function(_0x38bfcf,_0x2c4f92,_0x2a51a7){var _0x285a2a;return db[_0x6507('0x3c')][_0x6507('0x58')]({'where':{'id':_0x38bfcf[_0x6507('0x56')]['id']}})['then'](handleEntityNotFound(_0x2c4f92,null))[_0x6507('0x1c')](saveUpdates(_0x38bfcf['body'],null))[_0x6507('0x1c')](function(_0x457ff9){if(_0x457ff9){_0x285a2a=_0x457ff9;return db['VoiceContext'][_0x6507('0x53')]({'raw':!![]});}})['then'](function(_0x2bf28f){var _0x25746e=fs[_0x6507('0x5a')](path['join'](config[_0x6507('0x5c')],_0x6507('0x5d')),_0x6507('0x65'));var _0x55b52=ejs[_0x6507('0x5e')](_0x25746e,{'contexts':_0x2bf28f||[]});fs[_0x6507('0x66')](_0x6507('0x5f'),_0x55b52);})[_0x6507('0x1c')](function(){return respondWithRpcPromise(_0x6507('0x67'),_0x6507('0x33'),{'module':_0x6507('0x60')});})[_0x6507('0x1c')](function(){return _0x285a2a;})[_0x6507('0x1c')](respondWithResult(_0x2c4f92,null))[_0x6507('0x26')](handleError(_0x2c4f92,null));};exports[_0x6507('0x34')]=function(_0x2cc2b9,_0x1dae5e,_0x2405d4){var _0x4a0e1d;return db[_0x6507('0x3c')][_0x6507('0x58')]({'where':{'id':_0x2cc2b9[_0x6507('0x56')]['id']}})[_0x6507('0x1c')](handleEntityNotFound(_0x1dae5e,null))[_0x6507('0x1c')](removeEntity(_0x1dae5e,null))[_0x6507('0x1c')](function(){return db[_0x6507('0x3c')][_0x6507('0x53')]({'raw':!![]});})[_0x6507('0x1c')](function(_0x240462){var _0x3d93ef=fs[_0x6507('0x5a')](path[_0x6507('0x5b')](config[_0x6507('0x5c')],_0x6507('0x5d')),_0x6507('0x65'));var _0x3d4a84=ejs[_0x6507('0x5e')](_0x3d93ef,{'contexts':_0x240462});fs['writeFileSync'](_0x6507('0x5f'),_0x3d4a84);return respondWithRpcPromise(_0x6507('0x67'),_0x6507('0x34'),{'module':'chan_sip.so'});})[_0x6507('0x26')](handleError(_0x1dae5e,null));};