Built motion from commit (unavailable).|2.5.8
[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 _0x4584=['order','sort','pick','filter','VIRTUAL','merge','options','where','includeAll','include','findAll','rows','catch','show','params','length','find','create','body','readFileSync','join','root','server/files/templates/context.ejs','utf8','render','writeFileSync','Reload','chan_sip.so','role','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','/etc/asterisk/extensions_xcally_contexts.conf','html-pdf','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','jayson/promise','http','request','then','info','VoiceContext,\x20%s,\x20%s','request\x20sent','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','message','result','status','json','count','offset','limit','set','apply','reject','save','update','destroy','get','Contexts','UserProfileResource','end','sendStatus','stack','name','send','map','VoiceContext','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','intersection','fields','hasOwnProperty','nolimit'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x4584,0x1cf));var _0x4458=function(_0x396acd,_0x24c844){_0x396acd=_0x396acd-0x0;var _0x25efc1=_0x4584[_0x396acd];return _0x25efc1;};'use strict';var pdf=require(_0x4458('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x4458('0x1'));var zipdir=require(_0x4458('0x2'));var jsonpatch=require(_0x4458('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x4458('0x4'));var Mustache=require(_0x4458('0x5'));var util=require(_0x4458('0x6'));var path=require(_0x4458('0x7'));var sox=require(_0x4458('0x8'));var csv=require(_0x4458('0x9'));var ejs=require(_0x4458('0xa'));var fs=require('fs');var _=require(_0x4458('0xb'));var squel=require(_0x4458('0xc'));var crypto=require('crypto');var jsforce=require(_0x4458('0xd'));var deskjs=require(_0x4458('0xe'));var toCsv=require(_0x4458('0x9'));var querystring=require(_0x4458('0xf'));var Papa=require(_0x4458('0x10'));var Redis=require(_0x4458('0x11'));var authService=require(_0x4458('0x12'));var qs=require(_0x4458('0x13'));var as=require(_0x4458('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x4458('0x15'))(_0x4458('0x16'));var utils=require(_0x4458('0x17'));var config=require(_0x4458('0x18'));var licenseUtil=require(_0x4458('0x19'));var db=require('../../mysqldb')['db'];var jayson=require(_0x4458('0x1a'));var client=jayson['client'][_0x4458('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0x511f6c,_0x1089ff,_0x162c33,_0x4abaf9){return new BPromise(function(_0x5e2f05,_0x42771e){var _0xffc5f9=_0x4abaf9||client;return _0xffc5f9[_0x4458('0x1c')](_0x511f6c,_0x162c33)[_0x4458('0x1d')](function(_0x30d440){logger[_0x4458('0x1e')](_0x4458('0x1f'),_0x1089ff,_0x4458('0x20'));logger['debug'](_0x4458('0x21'),_0x1089ff,'request\x20sent',JSON[_0x4458('0x22')](_0x30d440));if(_0x30d440[_0x4458('0x23')]){if(_0x30d440[_0x4458('0x23')]['code']===0x1f4){logger[_0x4458('0x23')](_0x4458('0x1f'),_0x1089ff,_0x30d440[_0x4458('0x23')][_0x4458('0x24')]);return _0x42771e(_0x30d440[_0x4458('0x23')][_0x4458('0x24')]);}logger[_0x4458('0x23')](_0x4458('0x1f'),_0x1089ff,_0x30d440[_0x4458('0x23')][_0x4458('0x24')]);return _0x5e2f05(_0x30d440['error'][_0x4458('0x24')]);}else{logger[_0x4458('0x1e')](_0x4458('0x1f'),_0x1089ff,'request\x20sent');_0x5e2f05(_0x30d440[_0x4458('0x25')][_0x4458('0x24')]);}})['catch'](function(_0x3eceba){logger[_0x4458('0x23')]('VoiceContext,\x20%s,\x20%s',_0x1089ff,_0x3eceba);_0x42771e(_0x3eceba);});});}function respondWithStatusCode(_0xcf668c,_0x17e482){_0x17e482=_0x17e482||0xcc;return function(_0x3e7945){if(_0x3e7945){return _0xcf668c['sendStatus'](_0x17e482);}return _0xcf668c[_0x4458('0x26')](_0x17e482)['end']();};}function respondWithResult(_0x170d9e,_0x504a86){_0x504a86=_0x504a86||0xc8;return function(_0x543e21){if(_0x543e21){return _0x170d9e[_0x4458('0x26')](_0x504a86)[_0x4458('0x27')](_0x543e21);}};}function respondWithFilteredResult(_0x1631d3,_0x25ade9){return function(_0x153a98){if(_0x153a98){var _0x1d79b1=_0x153a98[_0x4458('0x28')],_0xa1f81e=_0x25ade9[_0x4458('0x29')],_0x63bef=_0x25ade9['offset']+_0x25ade9[_0x4458('0x2a')],_0x452ec4;if(_0x63bef>=_0x1d79b1){_0x63bef=_0x1d79b1;_0x452ec4=0xc8;}else{_0x452ec4=0xce;}_0x1631d3['status'](_0x452ec4);return _0x1631d3[_0x4458('0x2b')]('Content-Range',_0xa1f81e+'-'+_0x63bef+'/'+_0x1d79b1)[_0x4458('0x27')](_0x153a98);}return null;};}function patchUpdates(_0x6bdb4c){return function(_0x222abd){try{jsonpatch[_0x4458('0x2c')](_0x222abd,_0x6bdb4c,!![]);}catch(_0x652afc){return BPromise[_0x4458('0x2d')](_0x652afc);}return _0x222abd[_0x4458('0x2e')]();};}function saveUpdates(_0x164b01,_0xe21853){return function(_0x3ea32d){if(_0x3ea32d){return _0x3ea32d[_0x4458('0x2f')](_0x164b01)[_0x4458('0x1d')](function(_0x34f765){return _0x34f765;});}return null;};}function removeEntity(_0x328a9f,_0x5c53aa){return function(_0x395572){if(_0x395572){return _0x395572[_0x4458('0x30')]()[_0x4458('0x1d')](function(){var _0x20b850=_0x395572[_0x4458('0x31')]({'plain':!![]});var _0x277e41=_0x4458('0x32');return db[_0x4458('0x33')]['destroy']({'where':{'type':_0x277e41,'resourceId':_0x20b850['id']}})['then'](function(){return _0x395572;});})['then'](function(){_0x328a9f[_0x4458('0x26')](0xcc)[_0x4458('0x34')]();});}};}function handleEntityNotFound(_0x4401fe,_0x390caa){return function(_0x3fcd3a){if(!_0x3fcd3a){_0x4401fe[_0x4458('0x35')](0x194);}return _0x3fcd3a;};}function handleError(_0x3796ab,_0x2e2343){_0x2e2343=_0x2e2343||0x1f4;return function(_0x755e3b){logger[_0x4458('0x23')](_0x755e3b[_0x4458('0x36')]);if(_0x755e3b[_0x4458('0x37')]){delete _0x755e3b[_0x4458('0x37')];}_0x3796ab['status'](_0x2e2343)[_0x4458('0x38')](_0x755e3b);};}exports['index']=function(_0x18e101,_0x320ff1){var _0x22985a={},_0x45c36b={},_0x4f6a2d={'count':0x0,'rows':[]};var _0x4d08d8=_[_0x4458('0x39')](db[_0x4458('0x3a')][_0x4458('0x3b')],function(_0x517475){return{'name':_0x517475[_0x4458('0x3c')],'type':_0x517475[_0x4458('0x3d')][_0x4458('0x3e')]};});_0x45c36b[_0x4458('0x3f')]=_[_0x4458('0x39')](_0x4d08d8,_0x4458('0x37'));_0x45c36b[_0x4458('0x40')]=_[_0x4458('0x41')](_0x18e101[_0x4458('0x40')]);_0x45c36b[_0x4458('0x42')]=_['intersection'](_0x45c36b['model'],_0x45c36b[_0x4458('0x40')]);_0x22985a[_0x4458('0x43')]=_[_0x4458('0x44')](_0x45c36b[_0x4458('0x3f')],qs[_0x4458('0x45')](_0x18e101[_0x4458('0x40')][_0x4458('0x45')]));_0x22985a[_0x4458('0x43')]=_0x22985a[_0x4458('0x43')]['length']?_0x22985a[_0x4458('0x43')]:_0x45c36b[_0x4458('0x3f')];if(!_0x18e101[_0x4458('0x40')][_0x4458('0x46')](_0x4458('0x47'))){_0x22985a[_0x4458('0x2a')]=qs[_0x4458('0x2a')](_0x18e101[_0x4458('0x40')][_0x4458('0x2a')]);_0x22985a[_0x4458('0x29')]=qs['offset'](_0x18e101[_0x4458('0x40')][_0x4458('0x29')]);}_0x22985a[_0x4458('0x48')]=qs[_0x4458('0x49')](_0x18e101[_0x4458('0x40')]['sort']);_0x22985a['where']=qs['filters'](_[_0x4458('0x4a')](_0x18e101[_0x4458('0x40')],_0x45c36b[_0x4458('0x42')]),_0x4d08d8);if(_0x18e101['query'][_0x4458('0x4b')]){_0x22985a['where']=_['merge'](_0x22985a['where'],{'$or':_[_0x4458('0x39')](_0x4d08d8,function(_0x452836){if(_0x452836['type']!==_0x4458('0x4c')){var _0x129b33={};_0x129b33[_0x452836['name']]={'$like':'%'+_0x18e101['query'][_0x4458('0x4b')]+'%'};return _0x129b33;}})});}_0x22985a=_[_0x4458('0x4d')]({},_0x22985a,_0x18e101[_0x4458('0x4e')]);var _0x24805b={'where':_0x22985a[_0x4458('0x4f')]};return db['VoiceContext'][_0x4458('0x28')](_0x24805b)['then'](function(_0x4cf636){_0x4f6a2d['count']=_0x4cf636;if(_0x18e101['query'][_0x4458('0x50')]){_0x22985a[_0x4458('0x51')]=[{'all':!![]}];}return db['VoiceContext'][_0x4458('0x52')](_0x22985a);})['then'](function(_0x1db8b6){_0x4f6a2d[_0x4458('0x53')]=_0x1db8b6;return _0x4f6a2d;})[_0x4458('0x1d')](respondWithFilteredResult(_0x320ff1,_0x22985a))[_0x4458('0x54')](handleError(_0x320ff1,null));};exports[_0x4458('0x55')]=function(_0x455931,_0x3dd938){var _0x24eb44={'raw':![],'where':{'id':_0x455931[_0x4458('0x56')]['id']}},_0x195d0b={};_0x195d0b[_0x4458('0x3f')]=_[_0x4458('0x41')](db[_0x4458('0x3a')][_0x4458('0x3b')]);_0x195d0b[_0x4458('0x40')]=_[_0x4458('0x41')](_0x455931['query']);_0x195d0b[_0x4458('0x42')]=_['intersection'](_0x195d0b[_0x4458('0x3f')],_0x195d0b[_0x4458('0x40')]);_0x24eb44[_0x4458('0x43')]=_['intersection'](_0x195d0b[_0x4458('0x3f')],qs[_0x4458('0x45')](_0x455931['query'][_0x4458('0x45')]));_0x24eb44[_0x4458('0x43')]=_0x24eb44[_0x4458('0x43')][_0x4458('0x57')]?_0x24eb44[_0x4458('0x43')]:_0x195d0b[_0x4458('0x3f')];if(_0x455931['query']['includeAll']){_0x24eb44[_0x4458('0x51')]=[{'all':!![]}];}_0x24eb44=_[_0x4458('0x4d')]({},_0x24eb44,_0x455931[_0x4458('0x4e')]);return db[_0x4458('0x3a')][_0x4458('0x58')](_0x24eb44)[_0x4458('0x1d')](handleEntityNotFound(_0x3dd938,null))['then'](respondWithResult(_0x3dd938,null))[_0x4458('0x54')](handleError(_0x3dd938,null));};exports[_0x4458('0x59')]=function(_0x493af5,_0x214384,_0x344ead){var _0x3076bf;return db['VoiceContext'][_0x4458('0x59')](_0x493af5[_0x4458('0x5a')],{'raw':!![]})[_0x4458('0x1d')](function(_0x4de794){_0x3076bf=_0x4de794;return db['VoiceContext']['findAll']({'raw':!![]});})[_0x4458('0x1d')](function(_0xd89fae){var _0x4a37b=fs[_0x4458('0x5b')](path[_0x4458('0x5c')](config[_0x4458('0x5d')],_0x4458('0x5e')),_0x4458('0x5f'));var _0x261cfc=ejs[_0x4458('0x60')](_0x4a37b,{'contexts':_0xd89fae||[]});fs[_0x4458('0x61')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x261cfc);})[_0x4458('0x1d')](function(){return respondWithRpcPromise(_0x4458('0x62'),_0x4458('0x59'),{'module':_0x4458('0x63')});})[_0x4458('0x1d')](function(){var _0x21e15e=_0x493af5['user'][_0x4458('0x31')]({'plain':!![]});if(!_0x21e15e)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x21e15e[_0x4458('0x64')]===_0x4458('0x65')){var _0x1225d7=_0x3076bf[_0x4458('0x31')]({'plain':!![]});return db[_0x4458('0x66')][_0x4458('0x58')]({'where':{'name':_0x4458('0x32'),'userProfileId':_0x21e15e[_0x4458('0x67')]},'raw':!![]})[_0x4458('0x1d')](function(_0x542447){if(_0x542447&&_0x542447[_0x4458('0x68')]===0x0){return db[_0x4458('0x33')][_0x4458('0x59')]({'name':_0x1225d7[_0x4458('0x37')],'resourceId':_0x1225d7['id'],'type':_0x542447[_0x4458('0x37')],'sectionId':_0x542447['id']},{})['then'](function(){return _0x3076bf;});}else{return _0x3076bf;}})[_0x4458('0x54')](function(_0x15c3c8){logger['error'](_0x4458('0x69'),_0x15c3c8);throw _0x15c3c8;});}return _0x3076bf;})[_0x4458('0x1d')](respondWithResult(_0x214384,0xc9))[_0x4458('0x54')](handleError(_0x214384,null));};exports[_0x4458('0x2f')]=function(_0x1f03d0,_0x2f5b20,_0x1af4a1){var _0xe503a0;return db[_0x4458('0x3a')][_0x4458('0x58')]({'where':{'id':_0x1f03d0[_0x4458('0x56')]['id']}})[_0x4458('0x1d')](handleEntityNotFound(_0x2f5b20,null))[_0x4458('0x1d')](saveUpdates(_0x1f03d0[_0x4458('0x5a')],null))['then'](function(_0x45aaba){if(_0x45aaba){_0xe503a0=_0x45aaba;return db['VoiceContext'][_0x4458('0x52')]({'raw':!![]});}})[_0x4458('0x1d')](function(_0x278299){var _0x1ccaf2=fs[_0x4458('0x5b')](path[_0x4458('0x5c')](config[_0x4458('0x5d')],'server/files/templates/context.ejs'),_0x4458('0x5f'));var _0x4c0886=ejs['render'](_0x1ccaf2,{'contexts':_0x278299||[]});fs[_0x4458('0x61')](_0x4458('0x6a'),_0x4c0886);})['then'](function(){return respondWithRpcPromise(_0x4458('0x62'),_0x4458('0x2f'),{'module':_0x4458('0x63')});})[_0x4458('0x1d')](function(){return _0xe503a0;})[_0x4458('0x1d')](respondWithResult(_0x2f5b20,null))[_0x4458('0x54')](handleError(_0x2f5b20,null));};exports['destroy']=function(_0xed8b61,_0x164987,_0x455f76){var _0x17b1d4;return db[_0x4458('0x3a')][_0x4458('0x58')]({'where':{'id':_0xed8b61[_0x4458('0x56')]['id']}})[_0x4458('0x1d')](handleEntityNotFound(_0x164987,null))[_0x4458('0x1d')](removeEntity(_0x164987,null))['then'](function(){return db['VoiceContext']['findAll']({'raw':!![]});})['then'](function(_0x3655cd){var _0x256f5f=fs[_0x4458('0x5b')](path[_0x4458('0x5c')](config[_0x4458('0x5d')],_0x4458('0x5e')),_0x4458('0x5f'));var _0x44d834=ejs[_0x4458('0x60')](_0x256f5f,{'contexts':_0x3655cd});fs[_0x4458('0x61')](_0x4458('0x6a'),_0x44d834);return respondWithRpcPromise(_0x4458('0x62'),_0x4458('0x30'),{'module':_0x4458('0x63')});})['catch'](handleError(_0x164987,null));};