Built motion from commit (unavailable).|2.5.16
[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 _0x8c38=['params','rawAttributes','includeAll','create','body','readFileSync','join','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','get','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','find','findAll','root','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','lodash','squel','jsforce','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','http','request','then','info','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','error','code','message','VoiceContext,\x20%s,\x20%s','result','catch','sendStatus','end','status','json','count','offset','limit','set','Content-Range','apply','save','Contexts','destroy','stack','name','send','index','map','VoiceContext','fieldName','type','model','query','keys','filters','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','include','rows','show'];(function(_0x43c8b8,_0x5e8934){var _0x413be3=function(_0x23969c){while(--_0x23969c){_0x43c8b8['push'](_0x43c8b8['shift']());}};_0x413be3(++_0x5e8934);}(_0x8c38,0x83));var _0x88c3=function(_0x3a4f58,_0x2fb858){_0x3a4f58=_0x3a4f58-0x0;var _0x41295=_0x8c38[_0x3a4f58];return _0x41295;};'use strict';var pdf=require(_0x88c3('0x0'));var emlformat=require(_0x88c3('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x88c3('0x2'));var jsonpatch=require(_0x88c3('0x3'));var rp=require(_0x88c3('0x4'));var moment=require(_0x88c3('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x88c3('0x6'));var util=require(_0x88c3('0x7'));var path=require(_0x88c3('0x8'));var sox=require(_0x88c3('0x9'));var csv=require(_0x88c3('0xa'));var ejs=require(_0x88c3('0xb'));var fs=require('fs');var _=require(_0x88c3('0xc'));var squel=require(_0x88c3('0xd'));var crypto=require('crypto');var jsforce=require(_0x88c3('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x88c3('0xa'));var querystring=require('querystring');var Papa=require(_0x88c3('0xf'));var Redis=require('ioredis');var authService=require(_0x88c3('0x10'));var qs=require(_0x88c3('0x11'));var as=require(_0x88c3('0x12'));var hardwareService=require(_0x88c3('0x13'));var logger=require('../../config/logger')(_0x88c3('0x14'));var utils=require(_0x88c3('0x15'));var config=require(_0x88c3('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x88c3('0x17'))['db'];var jayson=require('jayson/promise');var client=jayson['client'][_0x88c3('0x18')]({'port':0x232a});function respondWithRpcPromise(_0x295071,_0x42ac0a,_0x17f60c,_0x7ab2b1){return new BPromise(function(_0x524f2a,_0x3620e3){var _0x3a282c=_0x7ab2b1||client;return _0x3a282c[_0x88c3('0x19')](_0x295071,_0x17f60c)[_0x88c3('0x1a')](function(_0x55458e){logger[_0x88c3('0x1b')]('VoiceContext,\x20%s,\x20%s',_0x42ac0a,_0x88c3('0x1c'));logger[_0x88c3('0x1d')](_0x88c3('0x1e'),_0x42ac0a,_0x88c3('0x1c'),JSON['stringify'](_0x55458e));if(_0x55458e['error']){if(_0x55458e[_0x88c3('0x1f')][_0x88c3('0x20')]===0x1f4){logger[_0x88c3('0x1f')]('VoiceContext,\x20%s,\x20%s',_0x42ac0a,_0x55458e[_0x88c3('0x1f')][_0x88c3('0x21')]);return _0x3620e3(_0x55458e[_0x88c3('0x1f')][_0x88c3('0x21')]);}logger['error']('VoiceContext,\x20%s,\x20%s',_0x42ac0a,_0x55458e[_0x88c3('0x1f')]['message']);return _0x524f2a(_0x55458e['error'][_0x88c3('0x21')]);}else{logger[_0x88c3('0x1b')](_0x88c3('0x22'),_0x42ac0a,_0x88c3('0x1c'));_0x524f2a(_0x55458e[_0x88c3('0x23')][_0x88c3('0x21')]);}})[_0x88c3('0x24')](function(_0x43a933){logger[_0x88c3('0x1f')](_0x88c3('0x22'),_0x42ac0a,_0x43a933);_0x3620e3(_0x43a933);});});}function respondWithStatusCode(_0x173a97,_0x24b867){_0x24b867=_0x24b867||0xcc;return function(_0x5aa804){if(_0x5aa804){return _0x173a97[_0x88c3('0x25')](_0x24b867);}return _0x173a97['status'](_0x24b867)[_0x88c3('0x26')]();};}function respondWithResult(_0xde936d,_0x3ccddc){_0x3ccddc=_0x3ccddc||0xc8;return function(_0x5ef07f){if(_0x5ef07f){return _0xde936d[_0x88c3('0x27')](_0x3ccddc)[_0x88c3('0x28')](_0x5ef07f);}};}function respondWithFilteredResult(_0x3caa2b,_0x20b567){return function(_0xf0784e){if(_0xf0784e){var _0x14a386=_0xf0784e[_0x88c3('0x29')],_0x18e03f=_0x20b567[_0x88c3('0x2a')],_0x454372=_0x20b567[_0x88c3('0x2a')]+_0x20b567[_0x88c3('0x2b')],_0x193e2d;if(_0x454372>=_0x14a386){_0x454372=_0x14a386;_0x193e2d=0xc8;}else{_0x193e2d=0xce;}_0x3caa2b['status'](_0x193e2d);return _0x3caa2b[_0x88c3('0x2c')](_0x88c3('0x2d'),_0x18e03f+'-'+_0x454372+'/'+_0x14a386)[_0x88c3('0x28')](_0xf0784e);}return null;};}function patchUpdates(_0x753c0b){return function(_0x687800){try{jsonpatch[_0x88c3('0x2e')](_0x687800,_0x753c0b,!![]);}catch(_0x144be0){return BPromise['reject'](_0x144be0);}return _0x687800[_0x88c3('0x2f')]();};}function saveUpdates(_0x17abfe,_0xd00aa7){return function(_0x5a76f5){if(_0x5a76f5){return _0x5a76f5['update'](_0x17abfe)[_0x88c3('0x1a')](function(_0x5f01e7){return _0x5f01e7;});}return null;};}function removeEntity(_0x124a30,_0x39e4ec){return function(_0x1e76de){if(_0x1e76de){return _0x1e76de['destroy']()[_0x88c3('0x1a')](function(){var _0x221257=_0x1e76de['get']({'plain':!![]});var _0x43e096=_0x88c3('0x30');return db['UserProfileResource'][_0x88c3('0x31')]({'where':{'type':_0x43e096,'resourceId':_0x221257['id']}})['then'](function(){return _0x1e76de;});})['then'](function(){_0x124a30[_0x88c3('0x27')](0xcc)[_0x88c3('0x26')]();});}};}function handleEntityNotFound(_0x5c384f,_0x592556){return function(_0x33df93){if(!_0x33df93){_0x5c384f[_0x88c3('0x25')](0x194);}return _0x33df93;};}function handleError(_0x3fcbf6,_0x4fb0a9){_0x4fb0a9=_0x4fb0a9||0x1f4;return function(_0x23f763){logger[_0x88c3('0x1f')](_0x23f763[_0x88c3('0x32')]);if(_0x23f763[_0x88c3('0x33')]){delete _0x23f763[_0x88c3('0x33')];}_0x3fcbf6[_0x88c3('0x27')](_0x4fb0a9)[_0x88c3('0x34')](_0x23f763);};}exports[_0x88c3('0x35')]=function(_0x5a7d9b,_0x3ce88a){var _0x409a26={},_0x1db37a={},_0x24f5ae={'count':0x0,'rows':[]};var _0x35bfb1=_[_0x88c3('0x36')](db[_0x88c3('0x37')]['rawAttributes'],function(_0x35f590){return{'name':_0x35f590[_0x88c3('0x38')],'type':_0x35f590[_0x88c3('0x39')]['key']};});_0x1db37a[_0x88c3('0x3a')]=_[_0x88c3('0x36')](_0x35bfb1,_0x88c3('0x33'));_0x1db37a[_0x88c3('0x3b')]=_[_0x88c3('0x3c')](_0x5a7d9b[_0x88c3('0x3b')]);_0x1db37a[_0x88c3('0x3d')]=_['intersection'](_0x1db37a[_0x88c3('0x3a')],_0x1db37a[_0x88c3('0x3b')]);_0x409a26[_0x88c3('0x3e')]=_['intersection'](_0x1db37a[_0x88c3('0x3a')],qs[_0x88c3('0x3f')](_0x5a7d9b[_0x88c3('0x3b')][_0x88c3('0x3f')]));_0x409a26['attributes']=_0x409a26['attributes'][_0x88c3('0x40')]?_0x409a26['attributes']:_0x1db37a[_0x88c3('0x3a')];if(!_0x5a7d9b['query'][_0x88c3('0x41')]('nolimit')){_0x409a26['limit']=qs[_0x88c3('0x2b')](_0x5a7d9b[_0x88c3('0x3b')][_0x88c3('0x2b')]);_0x409a26[_0x88c3('0x2a')]=qs[_0x88c3('0x2a')](_0x5a7d9b[_0x88c3('0x3b')][_0x88c3('0x2a')]);}_0x409a26[_0x88c3('0x42')]=qs['sort'](_0x5a7d9b[_0x88c3('0x3b')][_0x88c3('0x43')]);_0x409a26[_0x88c3('0x44')]=qs[_0x88c3('0x3d')](_[_0x88c3('0x45')](_0x5a7d9b['query'],_0x1db37a[_0x88c3('0x3d')]),_0x35bfb1);if(_0x5a7d9b[_0x88c3('0x3b')][_0x88c3('0x46')]){_0x409a26[_0x88c3('0x44')]=_[_0x88c3('0x47')](_0x409a26[_0x88c3('0x44')],{'$or':_['map'](_0x35bfb1,function(_0x1a6294){if(_0x1a6294[_0x88c3('0x39')]!==_0x88c3('0x48')){var _0xceabc9={};_0xceabc9[_0x1a6294['name']]={'$like':'%'+_0x5a7d9b[_0x88c3('0x3b')]['filter']+'%'};return _0xceabc9;}})});}_0x409a26=_[_0x88c3('0x47')]({},_0x409a26,_0x5a7d9b[_0x88c3('0x49')]);var _0x56c241={'where':_0x409a26[_0x88c3('0x44')]};return db[_0x88c3('0x37')][_0x88c3('0x29')](_0x56c241)[_0x88c3('0x1a')](function(_0x3f409e){_0x24f5ae[_0x88c3('0x29')]=_0x3f409e;if(_0x5a7d9b[_0x88c3('0x3b')]['includeAll']){_0x409a26[_0x88c3('0x4a')]=[{'all':!![]}];}return db['VoiceContext']['findAll'](_0x409a26);})[_0x88c3('0x1a')](function(_0xc9bf0a){_0x24f5ae[_0x88c3('0x4b')]=_0xc9bf0a;return _0x24f5ae;})[_0x88c3('0x1a')](respondWithFilteredResult(_0x3ce88a,_0x409a26))[_0x88c3('0x24')](handleError(_0x3ce88a,null));};exports[_0x88c3('0x4c')]=function(_0x526f4c,_0x38afd2){var _0x5d0973={'raw':![],'where':{'id':_0x526f4c[_0x88c3('0x4d')]['id']}},_0x240985={};_0x240985[_0x88c3('0x3a')]=_['keys'](db[_0x88c3('0x37')][_0x88c3('0x4e')]);_0x240985['query']=_[_0x88c3('0x3c')](_0x526f4c[_0x88c3('0x3b')]);_0x240985['filters']=_['intersection'](_0x240985[_0x88c3('0x3a')],_0x240985[_0x88c3('0x3b')]);_0x5d0973['attributes']=_['intersection'](_0x240985['model'],qs[_0x88c3('0x3f')](_0x526f4c[_0x88c3('0x3b')][_0x88c3('0x3f')]));_0x5d0973[_0x88c3('0x3e')]=_0x5d0973[_0x88c3('0x3e')][_0x88c3('0x40')]?_0x5d0973[_0x88c3('0x3e')]:_0x240985[_0x88c3('0x3a')];if(_0x526f4c[_0x88c3('0x3b')][_0x88c3('0x4f')]){_0x5d0973[_0x88c3('0x4a')]=[{'all':!![]}];}_0x5d0973=_[_0x88c3('0x47')]({},_0x5d0973,_0x526f4c['options']);return db[_0x88c3('0x37')]['find'](_0x5d0973)[_0x88c3('0x1a')](handleEntityNotFound(_0x38afd2,null))[_0x88c3('0x1a')](respondWithResult(_0x38afd2,null))[_0x88c3('0x24')](handleError(_0x38afd2,null));};exports[_0x88c3('0x50')]=function(_0x1a6aaa,_0x174307,_0x47faa4){var _0x156ec2;return db[_0x88c3('0x37')][_0x88c3('0x50')](_0x1a6aaa[_0x88c3('0x51')],{'raw':!![]})['then'](function(_0x40b44b){_0x156ec2=_0x40b44b;return db[_0x88c3('0x37')]['findAll']({'raw':!![]});})[_0x88c3('0x1a')](function(_0x54f9fe){var _0x7976e4=fs[_0x88c3('0x52')](path[_0x88c3('0x53')](config['root'],_0x88c3('0x54')),_0x88c3('0x55'));var _0x4a02a9=ejs[_0x88c3('0x56')](_0x7976e4,{'contexts':_0x54f9fe||[]});fs[_0x88c3('0x57')](_0x88c3('0x58'),_0x4a02a9);})[_0x88c3('0x1a')](function(){return respondWithRpcPromise(_0x88c3('0x59'),_0x88c3('0x50'),{'module':_0x88c3('0x5a')});})[_0x88c3('0x1a')](function(){var _0x151cec=_0x1a6aaa[_0x88c3('0x5b')]['get']({'plain':!![]});if(!_0x151cec)throw new Error(_0x88c3('0x5c'));if(_0x151cec[_0x88c3('0x5d')]==='user'){var _0x20779d=_0x156ec2[_0x88c3('0x5e')]({'plain':!![]});return db[_0x88c3('0x5f')]['find']({'where':{'name':_0x88c3('0x30'),'userProfileId':_0x151cec[_0x88c3('0x60')]},'raw':!![]})[_0x88c3('0x1a')](function(_0x418954){if(_0x418954&&_0x418954[_0x88c3('0x61')]===0x0){return db[_0x88c3('0x62')][_0x88c3('0x50')]({'name':_0x20779d[_0x88c3('0x33')],'resourceId':_0x20779d['id'],'type':_0x418954[_0x88c3('0x33')],'sectionId':_0x418954['id']},{})[_0x88c3('0x1a')](function(){return _0x156ec2;});}else{return _0x156ec2;}})[_0x88c3('0x24')](function(_0x4c7a6a){logger[_0x88c3('0x1f')](_0x88c3('0x63'),_0x4c7a6a);throw _0x4c7a6a;});}return _0x156ec2;})[_0x88c3('0x1a')](respondWithResult(_0x174307,0xc9))[_0x88c3('0x24')](handleError(_0x174307,null));};exports[_0x88c3('0x64')]=function(_0x5ca804,_0x175c41,_0x245469){var _0x5bcf8f;return db[_0x88c3('0x37')][_0x88c3('0x65')]({'where':{'id':_0x5ca804[_0x88c3('0x4d')]['id']}})[_0x88c3('0x1a')](handleEntityNotFound(_0x175c41,null))[_0x88c3('0x1a')](saveUpdates(_0x5ca804['body'],null))[_0x88c3('0x1a')](function(_0x536201){if(_0x536201){_0x5bcf8f=_0x536201;return db['VoiceContext'][_0x88c3('0x66')]({'raw':!![]});}})[_0x88c3('0x1a')](function(_0xf3478e){var _0x3456a6=fs[_0x88c3('0x52')](path[_0x88c3('0x53')](config['root'],_0x88c3('0x54')),_0x88c3('0x55'));var _0x57e579=ejs[_0x88c3('0x56')](_0x3456a6,{'contexts':_0xf3478e||[]});fs['writeFileSync'](_0x88c3('0x58'),_0x57e579);})['then'](function(){return respondWithRpcPromise(_0x88c3('0x59'),_0x88c3('0x64'),{'module':'chan_sip.so'});})[_0x88c3('0x1a')](function(){return _0x5bcf8f;})[_0x88c3('0x1a')](respondWithResult(_0x175c41,null))[_0x88c3('0x24')](handleError(_0x175c41,null));};exports[_0x88c3('0x31')]=function(_0xaff446,_0x1a0aff,_0x3477f3){var _0x2b0b31;return db[_0x88c3('0x37')][_0x88c3('0x65')]({'where':{'id':_0xaff446[_0x88c3('0x4d')]['id']}})[_0x88c3('0x1a')](handleEntityNotFound(_0x1a0aff,null))[_0x88c3('0x1a')](removeEntity(_0x1a0aff,null))[_0x88c3('0x1a')](function(){return db[_0x88c3('0x37')][_0x88c3('0x66')]({'raw':!![]});})[_0x88c3('0x1a')](function(_0x254c56){var _0xcea289=fs[_0x88c3('0x52')](path[_0x88c3('0x53')](config[_0x88c3('0x67')],'server/files/templates/context.ejs'),_0x88c3('0x55'));var _0x48509d=ejs[_0x88c3('0x56')](_0xcea289,{'contexts':_0x254c56});fs[_0x88c3('0x57')](_0x88c3('0x58'),_0x48509d);return respondWithRpcPromise('Reload',_0x88c3('0x31'),{'module':'chan_sip.so'});})['catch'](handleError(_0x1a0aff,null));};