Built motion from commit (unavailable).|2.5.0
[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 _0x9494=['map','VIRTUAL','merge','options','includeAll','include','findAll','rows','show','params','find','readFileSync','join','root','render','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','create','chan_sip.so','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','server/files/templates/context.ejs','utf8','Reload','html-pdf','eml-format','zip-dir','fast-json-patch','bluebird','util','sox','to-csv','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','jayson/promise','http','test','Sequelize','ValidationError','request','then','info','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','catch','status','end','count','offset','limit','json','apply','update','get','Contexts','UserProfileResource','destroy','sendStatus','stack','name','send','index','VoiceContext','rawAttributes','fieldName','type','key','query','keys','filters','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','sort','pick','filter','where'];(function(_0x2f855e,_0x242df7){var _0x41f5dc=function(_0x1d9910){while(--_0x1d9910){_0x2f855e['push'](_0x2f855e['shift']());}};_0x41f5dc(++_0x242df7);}(_0x9494,0x1a7));var _0x4949=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x9494[_0x3dd15e];return _0x231fd0;};'use strict';var pdf=require(_0x4949('0x0'));var emlformat=require(_0x4949('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x4949('0x2'));var jsonpatch=require(_0x4949('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x4949('0x4'));var Mustache=require('mustache');var util=require(_0x4949('0x5'));var path=require('path');var sox=require(_0x4949('0x6'));var csv=require(_0x4949('0x7'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x4949('0x8'));var crypto=require(_0x4949('0x9'));var jsforce=require(_0x4949('0xa'));var deskjs=require(_0x4949('0xb'));var toCsv=require(_0x4949('0x7'));var querystring=require(_0x4949('0xc'));var Papa=require(_0x4949('0xd'));var Redis=require(_0x4949('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x4949('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x4949('0x10'));var logger=require(_0x4949('0x11'))(_0x4949('0x12'));var utils=require('../../config/utils');var config=require(_0x4949('0x13'));var db=require('../../mysqldb')['db'];var jayson=require(_0x4949('0x14'));var client=jayson['client'][_0x4949('0x15')]({'port':0x232a});function checkPasswordPattern(_0x3317ae,_0x4e1bfa,_0x151c39){if(_0x151c39){var _0x1fc517=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x1fc517[_0x4949('0x16')](_0x4e1bfa)){return _0x3317ae;}else{throw new db[(_0x4949('0x17'))][(_0x4949('0x18'))]('The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.');}}else{return _0x3317ae;}}function respondWithRpcPromise(_0x331c75,_0x288000,_0x11537a,_0x3ae0af){return new BPromise(function(_0x5c5745,_0x5de3be){var _0x3064fa=_0x3ae0af||client;return _0x3064fa[_0x4949('0x19')](_0x331c75,_0x11537a)[_0x4949('0x1a')](function(_0x311aaf){logger[_0x4949('0x1b')](_0x4949('0x1c'),_0x288000,_0x4949('0x1d'));logger[_0x4949('0x1e')]('VoiceContext,\x20%s,\x20%s,\x20%s',_0x288000,_0x4949('0x1d'),JSON[_0x4949('0x1f')](_0x311aaf));if(_0x311aaf[_0x4949('0x20')]){if(_0x311aaf[_0x4949('0x20')][_0x4949('0x21')]===0x1f4){logger['error'](_0x4949('0x1c'),_0x288000,_0x311aaf[_0x4949('0x20')][_0x4949('0x22')]);return _0x5de3be(_0x311aaf['error'][_0x4949('0x22')]);}logger['error'](_0x4949('0x1c'),_0x288000,_0x311aaf[_0x4949('0x20')][_0x4949('0x22')]);return _0x5c5745(_0x311aaf[_0x4949('0x20')][_0x4949('0x22')]);}else{logger[_0x4949('0x1b')](_0x4949('0x1c'),_0x288000,_0x4949('0x1d'));_0x5c5745(_0x311aaf['result'][_0x4949('0x22')]);}})[_0x4949('0x23')](function(_0x2c2207){logger[_0x4949('0x20')](_0x4949('0x1c'),_0x288000,_0x2c2207);_0x5de3be(_0x2c2207);});});}function respondWithStatusCode(_0x339597,_0x57c443){_0x57c443=_0x57c443||0xcc;return function(_0x19148f){if(_0x19148f){return _0x339597['sendStatus'](_0x57c443);}return _0x339597[_0x4949('0x24')](_0x57c443)[_0x4949('0x25')]();};}function respondWithResult(_0x352ccd,_0x1a7d3e){_0x1a7d3e=_0x1a7d3e||0xc8;return function(_0x4dfe1b){if(_0x4dfe1b){return _0x352ccd[_0x4949('0x24')](_0x1a7d3e)['json'](_0x4dfe1b);}};}function respondWithFilteredResult(_0x51b790,_0xb8bca6){return function(_0x35af0b){if(_0x35af0b){var _0x3782cf=_0x35af0b[_0x4949('0x26')],_0x4c9bb3=_0xb8bca6[_0x4949('0x27')],_0x19f577=_0xb8bca6[_0x4949('0x27')]+_0xb8bca6[_0x4949('0x28')],_0x22b0eb;if(_0x19f577>=_0x3782cf){_0x19f577=_0x3782cf;_0x22b0eb=0xc8;}else{_0x22b0eb=0xce;}_0x51b790[_0x4949('0x24')](_0x22b0eb);return _0x51b790['set']('Content-Range',_0x4c9bb3+'-'+_0x19f577+'/'+_0x3782cf)[_0x4949('0x29')](_0x35af0b);}return null;};}function patchUpdates(_0x818287){return function(_0x5abc02){try{jsonpatch[_0x4949('0x2a')](_0x5abc02,_0x818287,!![]);}catch(_0x41a21d){return BPromise['reject'](_0x41a21d);}return _0x5abc02['save']();};}function saveUpdates(_0x34d0f8,_0x57a4af){return function(_0x43940b){if(_0x43940b){return _0x43940b[_0x4949('0x2b')](_0x34d0f8)['then'](function(_0x9f6cfc){return _0x9f6cfc;});}return null;};}function removeEntity(_0x13d9c1,_0x3ee03e){return function(_0x4f3dbb){if(_0x4f3dbb){return _0x4f3dbb['destroy']()['then'](function(){var _0x37e53e=_0x4f3dbb[_0x4949('0x2c')]({'plain':!![]});var _0x2f0d97=_0x4949('0x2d');return db[_0x4949('0x2e')][_0x4949('0x2f')]({'where':{'type':_0x2f0d97,'resourceId':_0x37e53e['id']}})[_0x4949('0x1a')](function(){return _0x4f3dbb;});})[_0x4949('0x1a')](function(){_0x13d9c1[_0x4949('0x24')](0xcc)[_0x4949('0x25')]();});}};}function handleEntityNotFound(_0x1808c4,_0x4ad2c7){return function(_0x4afa4e){if(!_0x4afa4e){_0x1808c4[_0x4949('0x30')](0x194);}return _0x4afa4e;};}function handleError(_0x2de446,_0x1dea1f){_0x1dea1f=_0x1dea1f||0x1f4;return function(_0x225aec){logger[_0x4949('0x20')](_0x225aec[_0x4949('0x31')]);if(_0x225aec[_0x4949('0x32')]){delete _0x225aec[_0x4949('0x32')];}_0x2de446[_0x4949('0x24')](_0x1dea1f)[_0x4949('0x33')](_0x225aec);};}exports[_0x4949('0x34')]=function(_0x5e34cb,_0x24b357){var _0x1038b3={},_0xbb03f={},_0x41f4a6={'count':0x0,'rows':[]};var _0x50d2eb=_['map'](db[_0x4949('0x35')][_0x4949('0x36')],function(_0x29207a){return{'name':_0x29207a[_0x4949('0x37')],'type':_0x29207a[_0x4949('0x38')][_0x4949('0x39')]};});_0xbb03f['model']=_['map'](_0x50d2eb,_0x4949('0x32'));_0xbb03f[_0x4949('0x3a')]=_[_0x4949('0x3b')](_0x5e34cb[_0x4949('0x3a')]);_0xbb03f[_0x4949('0x3c')]=_[_0x4949('0x3d')](_0xbb03f['model'],_0xbb03f[_0x4949('0x3a')]);_0x1038b3[_0x4949('0x3e')]=_[_0x4949('0x3d')](_0xbb03f[_0x4949('0x3f')],qs[_0x4949('0x40')](_0x5e34cb[_0x4949('0x3a')][_0x4949('0x40')]));_0x1038b3[_0x4949('0x3e')]=_0x1038b3['attributes'][_0x4949('0x41')]?_0x1038b3[_0x4949('0x3e')]:_0xbb03f[_0x4949('0x3f')];if(!_0x5e34cb['query'][_0x4949('0x42')](_0x4949('0x43'))){_0x1038b3['limit']=qs[_0x4949('0x28')](_0x5e34cb[_0x4949('0x3a')]['limit']);_0x1038b3['offset']=qs[_0x4949('0x27')](_0x5e34cb[_0x4949('0x3a')][_0x4949('0x27')]);}_0x1038b3['order']=qs[_0x4949('0x44')](_0x5e34cb[_0x4949('0x3a')][_0x4949('0x44')]);_0x1038b3['where']=qs[_0x4949('0x3c')](_[_0x4949('0x45')](_0x5e34cb[_0x4949('0x3a')],_0xbb03f['filters']));if(_0x5e34cb[_0x4949('0x3a')][_0x4949('0x46')]){_0x1038b3[_0x4949('0x47')]=_['merge'](_0x1038b3['where'],{'$or':_[_0x4949('0x48')](_0x50d2eb,function(_0x49db09){if(_0x49db09[_0x4949('0x38')]!==_0x4949('0x49')){var _0xd60f50={};_0xd60f50[_0x49db09[_0x4949('0x32')]]={'$like':'%'+_0x5e34cb['query'][_0x4949('0x46')]+'%'};return _0xd60f50;}})});}_0x1038b3=_[_0x4949('0x4a')]({},_0x1038b3,_0x5e34cb[_0x4949('0x4b')]);var _0x45e043={'where':_0x1038b3[_0x4949('0x47')]};return db[_0x4949('0x35')][_0x4949('0x26')](_0x45e043)[_0x4949('0x1a')](function(_0x490b25){_0x41f4a6[_0x4949('0x26')]=_0x490b25;if(_0x5e34cb[_0x4949('0x3a')][_0x4949('0x4c')]){_0x1038b3[_0x4949('0x4d')]=[{'all':!![]}];}return db['VoiceContext'][_0x4949('0x4e')](_0x1038b3);})[_0x4949('0x1a')](function(_0x38b247){_0x41f4a6[_0x4949('0x4f')]=_0x38b247;return _0x41f4a6;})['then'](respondWithFilteredResult(_0x24b357,_0x1038b3))[_0x4949('0x23')](handleError(_0x24b357,null));};exports[_0x4949('0x50')]=function(_0x5a21b1,_0xdf5d55){var _0x268b90={'raw':![],'where':{'id':_0x5a21b1[_0x4949('0x51')]['id']}},_0x194d35={};_0x194d35[_0x4949('0x3f')]=_[_0x4949('0x3b')](db[_0x4949('0x35')]['rawAttributes']);_0x194d35['query']=_[_0x4949('0x3b')](_0x5a21b1[_0x4949('0x3a')]);_0x194d35[_0x4949('0x3c')]=_['intersection'](_0x194d35[_0x4949('0x3f')],_0x194d35['query']);_0x268b90[_0x4949('0x3e')]=_['intersection'](_0x194d35[_0x4949('0x3f')],qs['fields'](_0x5a21b1[_0x4949('0x3a')]['fields']));_0x268b90['attributes']=_0x268b90[_0x4949('0x3e')]['length']?_0x268b90[_0x4949('0x3e')]:_0x194d35[_0x4949('0x3f')];if(_0x5a21b1[_0x4949('0x3a')][_0x4949('0x4c')]){_0x268b90['include']=[{'all':!![]}];}_0x268b90=_[_0x4949('0x4a')]({},_0x268b90,_0x5a21b1[_0x4949('0x4b')]);return db[_0x4949('0x35')][_0x4949('0x52')](_0x268b90)['then'](handleEntityNotFound(_0xdf5d55,null))['then'](respondWithResult(_0xdf5d55,null))[_0x4949('0x23')](handleError(_0xdf5d55,null));};exports['create']=function(_0x34ce88,_0x120335,_0x32d047){var _0x198560;return db[_0x4949('0x35')]['create'](_0x34ce88['body'],{'raw':!![]})[_0x4949('0x1a')](function(_0x28ef25){_0x198560=_0x28ef25;return db[_0x4949('0x35')]['findAll']({'raw':!![]});})['then'](function(_0x286dad){var _0x3e5a7f=fs[_0x4949('0x53')](path[_0x4949('0x54')](config[_0x4949('0x55')],'server/files/templates/context.ejs'),'utf8');var _0x176d9d=ejs[_0x4949('0x56')](_0x3e5a7f,{'contexts':_0x286dad||[]});fs[_0x4949('0x57')](_0x4949('0x58'),_0x176d9d);})['then'](function(){return respondWithRpcPromise('Reload',_0x4949('0x59'),{'module':_0x4949('0x5a')});})[_0x4949('0x1a')](function(){var _0x4761ea=_0x34ce88['user'][_0x4949('0x2c')]({'plain':!![]});if(!_0x4761ea)throw new Error(_0x4949('0x5b'));if(_0x4761ea[_0x4949('0x5c')]===_0x4949('0x5d')){var _0x3612f0=_0x198560[_0x4949('0x2c')]({'plain':!![]});return db[_0x4949('0x5e')][_0x4949('0x52')]({'where':{'name':'Contexts','userProfileId':_0x4761ea[_0x4949('0x5f')]},'raw':!![]})['then'](function(_0x58f4a4){if(_0x58f4a4&&_0x58f4a4['autoAssociation']===0x0){return db[_0x4949('0x2e')][_0x4949('0x59')]({'name':_0x3612f0[_0x4949('0x32')],'resourceId':_0x3612f0['id'],'type':_0x58f4a4['name'],'sectionId':_0x58f4a4['id']},{})['then'](function(){return _0x198560;});}else{return _0x198560;}})[_0x4949('0x23')](function(_0xfb4b60){logger[_0x4949('0x20')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0xfb4b60);throw _0xfb4b60;});}return _0x198560;})[_0x4949('0x1a')](respondWithResult(_0x120335,0xc9))[_0x4949('0x23')](handleError(_0x120335,null));};exports[_0x4949('0x2b')]=function(_0x40cf92,_0x59abf6,_0x14317c){var _0x2b9c79;return db[_0x4949('0x35')][_0x4949('0x52')]({'where':{'id':_0x40cf92[_0x4949('0x51')]['id']}})[_0x4949('0x1a')](handleEntityNotFound(_0x59abf6,null))[_0x4949('0x1a')](saveUpdates(_0x40cf92['body'],null))['then'](function(_0x6738c8){if(_0x6738c8){_0x2b9c79=_0x6738c8;return db[_0x4949('0x35')][_0x4949('0x4e')]({'raw':!![]});}})[_0x4949('0x1a')](function(_0x597007){var _0x300833=fs['readFileSync'](path['join'](config['root'],_0x4949('0x60')),_0x4949('0x61'));var _0x87953=ejs['render'](_0x300833,{'contexts':_0x597007||[]});fs[_0x4949('0x57')](_0x4949('0x58'),_0x87953);})[_0x4949('0x1a')](function(){return respondWithRpcPromise(_0x4949('0x62'),_0x4949('0x2b'),{'module':'chan_sip.so'});})[_0x4949('0x1a')](function(){return _0x2b9c79;})[_0x4949('0x1a')](respondWithResult(_0x59abf6,null))['catch'](handleError(_0x59abf6,null));};exports[_0x4949('0x2f')]=function(_0x23dd87,_0x3955f9,_0xf0f22c){var _0x495efd;return db[_0x4949('0x35')][_0x4949('0x52')]({'where':{'id':_0x23dd87[_0x4949('0x51')]['id']}})['then'](handleEntityNotFound(_0x3955f9,null))['then'](removeEntity(_0x3955f9,null))['then'](function(){return db[_0x4949('0x35')][_0x4949('0x4e')]({'raw':!![]});})['then'](function(_0x493594){var _0xc68fe3=fs['readFileSync'](path[_0x4949('0x54')](config[_0x4949('0x55')],_0x4949('0x60')),_0x4949('0x61'));var _0x2a370c=ejs[_0x4949('0x56')](_0xc68fe3,{'contexts':_0x493594});fs[_0x4949('0x57')](_0x4949('0x58'),_0x2a370c);return respondWithRpcPromise(_0x4949('0x62'),_0x4949('0x2f'),{'module':_0x4949('0x5a')});})[_0x4949('0x23')](handleError(_0x3955f9,null));};