Built motion from commit (unavailable).|2.5.7
[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 _0x6b61=['save','update','then','destroy','get','Contexts','UserProfileResource','end','stack','name','send','index','map','VoiceContext','fieldName','key','model','query','intersection','attributes','fields','length','nolimit','order','sort','where','filters','pick','merge','type','filter','options','count','includeAll','include','findAll','rows','show','keys','rawAttributes','find','create','body','readFileSync','join','root','server/files/templates/context.ejs','utf8','render','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','Reload','chan_sip.so','user','role','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','lodash','squel','jsforce','desk.js','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','client','http','debug','error','code','VoiceContext,\x20%s,\x20%s','message','info','request\x20sent','result','catch','sendStatus','status','json','offset','limit','set','Content-Range','reject'];(function(_0x3132e8,_0x499a0e){var _0x43eb8c=function(_0x2321e1){while(--_0x2321e1){_0x3132e8['push'](_0x3132e8['shift']());}};_0x43eb8c(++_0x499a0e);}(_0x6b61,0x16a));var _0x16b6=function(_0x4eec9b,_0x4aea09){_0x4eec9b=_0x4eec9b-0x0;var _0x2e3849=_0x6b61[_0x4eec9b];return _0x2e3849;};'use strict';var pdf=require(_0x16b6('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x16b6('0x1'));var zipdir=require(_0x16b6('0x2'));var jsonpatch=require(_0x16b6('0x3'));var rp=require(_0x16b6('0x4'));var moment=require(_0x16b6('0x5'));var BPromise=require(_0x16b6('0x6'));var Mustache=require(_0x16b6('0x7'));var util=require(_0x16b6('0x8'));var path=require('path');var sox=require(_0x16b6('0x9'));var csv=require(_0x16b6('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x16b6('0xb'));var squel=require(_0x16b6('0xc'));var crypto=require('crypto');var jsforce=require(_0x16b6('0xd'));var deskjs=require(_0x16b6('0xe'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x16b6('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x16b6('0x10'));var as=require(_0x16b6('0x11'));var hardwareService=require(_0x16b6('0x12'));var logger=require(_0x16b6('0x13'))(_0x16b6('0x14'));var utils=require(_0x16b6('0x15'));var config=require(_0x16b6('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var jayson=require('jayson/promise');var client=jayson[_0x16b6('0x17')][_0x16b6('0x18')]({'port':0x232a});function respondWithRpcPromise(_0x22cfba,_0x250b7b,_0x132d71,_0x13158a){return new BPromise(function(_0x37e479,_0x5434c8){var _0x43600e=_0x13158a||client;return _0x43600e['request'](_0x22cfba,_0x132d71)['then'](function(_0x4f8a1e){logger['info']('VoiceContext,\x20%s,\x20%s',_0x250b7b,'request\x20sent');logger[_0x16b6('0x19')]('VoiceContext,\x20%s,\x20%s,\x20%s',_0x250b7b,'request\x20sent',JSON['stringify'](_0x4f8a1e));if(_0x4f8a1e[_0x16b6('0x1a')]){if(_0x4f8a1e[_0x16b6('0x1a')][_0x16b6('0x1b')]===0x1f4){logger[_0x16b6('0x1a')](_0x16b6('0x1c'),_0x250b7b,_0x4f8a1e[_0x16b6('0x1a')][_0x16b6('0x1d')]);return _0x5434c8(_0x4f8a1e[_0x16b6('0x1a')][_0x16b6('0x1d')]);}logger['error'](_0x16b6('0x1c'),_0x250b7b,_0x4f8a1e['error'][_0x16b6('0x1d')]);return _0x37e479(_0x4f8a1e['error']['message']);}else{logger[_0x16b6('0x1e')](_0x16b6('0x1c'),_0x250b7b,_0x16b6('0x1f'));_0x37e479(_0x4f8a1e[_0x16b6('0x20')][_0x16b6('0x1d')]);}})[_0x16b6('0x21')](function(_0x293a67){logger[_0x16b6('0x1a')]('VoiceContext,\x20%s,\x20%s',_0x250b7b,_0x293a67);_0x5434c8(_0x293a67);});});}function respondWithStatusCode(_0x20a807,_0xb56485){_0xb56485=_0xb56485||0xcc;return function(_0x47fcf0){if(_0x47fcf0){return _0x20a807[_0x16b6('0x22')](_0xb56485);}return _0x20a807[_0x16b6('0x23')](_0xb56485)['end']();};}function respondWithResult(_0x35c00e,_0x20995e){_0x20995e=_0x20995e||0xc8;return function(_0x4bb1b1){if(_0x4bb1b1){return _0x35c00e[_0x16b6('0x23')](_0x20995e)[_0x16b6('0x24')](_0x4bb1b1);}};}function respondWithFilteredResult(_0x4be96d,_0x4394e9){return function(_0x2c12aa){if(_0x2c12aa){var _0x4451a1=_0x2c12aa['count'],_0x35b127=_0x4394e9[_0x16b6('0x25')],_0x599aa0=_0x4394e9['offset']+_0x4394e9[_0x16b6('0x26')],_0x44fa79;if(_0x599aa0>=_0x4451a1){_0x599aa0=_0x4451a1;_0x44fa79=0xc8;}else{_0x44fa79=0xce;}_0x4be96d['status'](_0x44fa79);return _0x4be96d[_0x16b6('0x27')](_0x16b6('0x28'),_0x35b127+'-'+_0x599aa0+'/'+_0x4451a1)[_0x16b6('0x24')](_0x2c12aa);}return null;};}function patchUpdates(_0x2c1e63){return function(_0x4e3191){try{jsonpatch['apply'](_0x4e3191,_0x2c1e63,!![]);}catch(_0x278a8c){return BPromise[_0x16b6('0x29')](_0x278a8c);}return _0x4e3191[_0x16b6('0x2a')]();};}function saveUpdates(_0x2314bb,_0x2f1be8){return function(_0x3d6957){if(_0x3d6957){return _0x3d6957[_0x16b6('0x2b')](_0x2314bb)[_0x16b6('0x2c')](function(_0x1c870e){return _0x1c870e;});}return null;};}function removeEntity(_0x4fa98e,_0x2149a3){return function(_0x279047){if(_0x279047){return _0x279047[_0x16b6('0x2d')]()[_0x16b6('0x2c')](function(){var _0x3519cc=_0x279047[_0x16b6('0x2e')]({'plain':!![]});var _0x49ac87=_0x16b6('0x2f');return db[_0x16b6('0x30')]['destroy']({'where':{'type':_0x49ac87,'resourceId':_0x3519cc['id']}})[_0x16b6('0x2c')](function(){return _0x279047;});})['then'](function(){_0x4fa98e[_0x16b6('0x23')](0xcc)[_0x16b6('0x31')]();});}};}function handleEntityNotFound(_0x2b7e36,_0x13af30){return function(_0x197a5b){if(!_0x197a5b){_0x2b7e36[_0x16b6('0x22')](0x194);}return _0x197a5b;};}function handleError(_0x3950ed,_0x1de239){_0x1de239=_0x1de239||0x1f4;return function(_0x163b49){logger[_0x16b6('0x1a')](_0x163b49[_0x16b6('0x32')]);if(_0x163b49[_0x16b6('0x33')]){delete _0x163b49[_0x16b6('0x33')];}_0x3950ed[_0x16b6('0x23')](_0x1de239)[_0x16b6('0x34')](_0x163b49);};}exports[_0x16b6('0x35')]=function(_0x2460fb,_0x34ade4){var _0x5a8be3={},_0x540d28={},_0x71e904={'count':0x0,'rows':[]};var _0x14c640=_[_0x16b6('0x36')](db[_0x16b6('0x37')]['rawAttributes'],function(_0x5af29e){return{'name':_0x5af29e[_0x16b6('0x38')],'type':_0x5af29e['type'][_0x16b6('0x39')]};});_0x540d28[_0x16b6('0x3a')]=_[_0x16b6('0x36')](_0x14c640,'name');_0x540d28[_0x16b6('0x3b')]=_['keys'](_0x2460fb[_0x16b6('0x3b')]);_0x540d28['filters']=_[_0x16b6('0x3c')](_0x540d28[_0x16b6('0x3a')],_0x540d28[_0x16b6('0x3b')]);_0x5a8be3[_0x16b6('0x3d')]=_['intersection'](_0x540d28['model'],qs[_0x16b6('0x3e')](_0x2460fb[_0x16b6('0x3b')]['fields']));_0x5a8be3[_0x16b6('0x3d')]=_0x5a8be3['attributes'][_0x16b6('0x3f')]?_0x5a8be3['attributes']:_0x540d28['model'];if(!_0x2460fb[_0x16b6('0x3b')]['hasOwnProperty'](_0x16b6('0x40'))){_0x5a8be3[_0x16b6('0x26')]=qs[_0x16b6('0x26')](_0x2460fb[_0x16b6('0x3b')][_0x16b6('0x26')]);_0x5a8be3[_0x16b6('0x25')]=qs[_0x16b6('0x25')](_0x2460fb[_0x16b6('0x3b')][_0x16b6('0x25')]);}_0x5a8be3[_0x16b6('0x41')]=qs[_0x16b6('0x42')](_0x2460fb[_0x16b6('0x3b')][_0x16b6('0x42')]);_0x5a8be3[_0x16b6('0x43')]=qs[_0x16b6('0x44')](_[_0x16b6('0x45')](_0x2460fb[_0x16b6('0x3b')],_0x540d28[_0x16b6('0x44')]),_0x14c640);if(_0x2460fb['query']['filter']){_0x5a8be3['where']=_[_0x16b6('0x46')](_0x5a8be3['where'],{'$or':_['map'](_0x14c640,function(_0x33c5b7){if(_0x33c5b7[_0x16b6('0x47')]!=='VIRTUAL'){var _0xea7112={};_0xea7112[_0x33c5b7[_0x16b6('0x33')]]={'$like':'%'+_0x2460fb['query'][_0x16b6('0x48')]+'%'};return _0xea7112;}})});}_0x5a8be3=_[_0x16b6('0x46')]({},_0x5a8be3,_0x2460fb[_0x16b6('0x49')]);var _0x58ee76={'where':_0x5a8be3[_0x16b6('0x43')]};return db[_0x16b6('0x37')][_0x16b6('0x4a')](_0x58ee76)['then'](function(_0x269f94){_0x71e904['count']=_0x269f94;if(_0x2460fb[_0x16b6('0x3b')][_0x16b6('0x4b')]){_0x5a8be3[_0x16b6('0x4c')]=[{'all':!![]}];}return db[_0x16b6('0x37')][_0x16b6('0x4d')](_0x5a8be3);})['then'](function(_0x3fa71b){_0x71e904[_0x16b6('0x4e')]=_0x3fa71b;return _0x71e904;})[_0x16b6('0x2c')](respondWithFilteredResult(_0x34ade4,_0x5a8be3))['catch'](handleError(_0x34ade4,null));};exports[_0x16b6('0x4f')]=function(_0x24b9f3,_0x53d2ca){var _0x445877={'raw':![],'where':{'id':_0x24b9f3['params']['id']}},_0x37b4fb={};_0x37b4fb['model']=_[_0x16b6('0x50')](db[_0x16b6('0x37')][_0x16b6('0x51')]);_0x37b4fb[_0x16b6('0x3b')]=_[_0x16b6('0x50')](_0x24b9f3[_0x16b6('0x3b')]);_0x37b4fb[_0x16b6('0x44')]=_['intersection'](_0x37b4fb[_0x16b6('0x3a')],_0x37b4fb[_0x16b6('0x3b')]);_0x445877['attributes']=_[_0x16b6('0x3c')](_0x37b4fb[_0x16b6('0x3a')],qs[_0x16b6('0x3e')](_0x24b9f3[_0x16b6('0x3b')]['fields']));_0x445877['attributes']=_0x445877[_0x16b6('0x3d')][_0x16b6('0x3f')]?_0x445877[_0x16b6('0x3d')]:_0x37b4fb[_0x16b6('0x3a')];if(_0x24b9f3[_0x16b6('0x3b')][_0x16b6('0x4b')]){_0x445877[_0x16b6('0x4c')]=[{'all':!![]}];}_0x445877=_[_0x16b6('0x46')]({},_0x445877,_0x24b9f3[_0x16b6('0x49')]);return db['VoiceContext'][_0x16b6('0x52')](_0x445877)[_0x16b6('0x2c')](handleEntityNotFound(_0x53d2ca,null))[_0x16b6('0x2c')](respondWithResult(_0x53d2ca,null))[_0x16b6('0x21')](handleError(_0x53d2ca,null));};exports[_0x16b6('0x53')]=function(_0x4b7ad4,_0x141fe9,_0x47f8e5){var _0x199285;return db[_0x16b6('0x37')][_0x16b6('0x53')](_0x4b7ad4[_0x16b6('0x54')],{'raw':!![]})[_0x16b6('0x2c')](function(_0x5c49bc){_0x199285=_0x5c49bc;return db[_0x16b6('0x37')][_0x16b6('0x4d')]({'raw':!![]});})[_0x16b6('0x2c')](function(_0x2d9b2f){var _0x39d621=fs[_0x16b6('0x55')](path[_0x16b6('0x56')](config[_0x16b6('0x57')],_0x16b6('0x58')),_0x16b6('0x59'));var _0x110a2e=ejs[_0x16b6('0x5a')](_0x39d621,{'contexts':_0x2d9b2f||[]});fs[_0x16b6('0x5b')](_0x16b6('0x5c'),_0x110a2e);})[_0x16b6('0x2c')](function(){return respondWithRpcPromise(_0x16b6('0x5d'),_0x16b6('0x53'),{'module':_0x16b6('0x5e')});})[_0x16b6('0x2c')](function(){var _0x4e61d8=_0x4b7ad4[_0x16b6('0x5f')][_0x16b6('0x2e')]({'plain':!![]});if(!_0x4e61d8)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x4e61d8[_0x16b6('0x60')]===_0x16b6('0x5f')){var _0x47d5ba=_0x199285[_0x16b6('0x2e')]({'plain':!![]});return db[_0x16b6('0x61')][_0x16b6('0x52')]({'where':{'name':_0x16b6('0x2f'),'userProfileId':_0x4e61d8['userProfileId']},'raw':!![]})[_0x16b6('0x2c')](function(_0x314699){if(_0x314699&&_0x314699[_0x16b6('0x62')]===0x0){return db[_0x16b6('0x30')][_0x16b6('0x53')]({'name':_0x47d5ba[_0x16b6('0x33')],'resourceId':_0x47d5ba['id'],'type':_0x314699['name'],'sectionId':_0x314699['id']},{})[_0x16b6('0x2c')](function(){return _0x199285;});}else{return _0x199285;}})[_0x16b6('0x21')](function(_0x3f26a0){logger[_0x16b6('0x1a')](_0x16b6('0x63'),_0x3f26a0);throw _0x3f26a0;});}return _0x199285;})[_0x16b6('0x2c')](respondWithResult(_0x141fe9,0xc9))[_0x16b6('0x21')](handleError(_0x141fe9,null));};exports[_0x16b6('0x2b')]=function(_0x496e34,_0x12f658,_0x84022){var _0x477ae5;return db[_0x16b6('0x37')][_0x16b6('0x52')]({'where':{'id':_0x496e34[_0x16b6('0x64')]['id']}})['then'](handleEntityNotFound(_0x12f658,null))['then'](saveUpdates(_0x496e34[_0x16b6('0x54')],null))['then'](function(_0x150607){if(_0x150607){_0x477ae5=_0x150607;return db[_0x16b6('0x37')][_0x16b6('0x4d')]({'raw':!![]});}})[_0x16b6('0x2c')](function(_0x2bf2da){var _0x348fa8=fs[_0x16b6('0x55')](path[_0x16b6('0x56')](config[_0x16b6('0x57')],_0x16b6('0x58')),_0x16b6('0x59'));var _0x3e099a=ejs[_0x16b6('0x5a')](_0x348fa8,{'contexts':_0x2bf2da||[]});fs['writeFileSync']('/etc/asterisk/extensions_xcally_contexts.conf',_0x3e099a);})['then'](function(){return respondWithRpcPromise('Reload','update',{'module':_0x16b6('0x5e')});})[_0x16b6('0x2c')](function(){return _0x477ae5;})['then'](respondWithResult(_0x12f658,null))[_0x16b6('0x21')](handleError(_0x12f658,null));};exports['destroy']=function(_0x580c26,_0x23803a,_0x39d2c9){var _0x1535ad;return db[_0x16b6('0x37')][_0x16b6('0x52')]({'where':{'id':_0x580c26[_0x16b6('0x64')]['id']}})[_0x16b6('0x2c')](handleEntityNotFound(_0x23803a,null))[_0x16b6('0x2c')](removeEntity(_0x23803a,null))['then'](function(){return db[_0x16b6('0x37')][_0x16b6('0x4d')]({'raw':!![]});})[_0x16b6('0x2c')](function(_0x541a5c){var _0x398e6f=fs[_0x16b6('0x55')](path[_0x16b6('0x56')](config['root'],'server/files/templates/context.ejs'),_0x16b6('0x59'));var _0x18193f=ejs[_0x16b6('0x5a')](_0x398e6f,{'contexts':_0x541a5c});fs[_0x16b6('0x5b')](_0x16b6('0x5c'),_0x18193f);return respondWithRpcPromise(_0x16b6('0x5d'),'destroy',{'module':_0x16b6('0x5e')});})[_0x16b6('0x21')](handleError(_0x23803a,null));};