Built motion from commit (unavailable).|2.4.18
[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 _0x33b0=['message','info','catch','sendStatus','status','end','json','count','offset','limit','reject','save','update','destroy','get','Contexts','UserProfileResource','stack','name','index','map','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','includeAll','include','rows','show','params','keys','VoiceContext','length','find','create','body','findAll','join','root','server/files/templates/context.ejs','utf8','render','/etc/asterisk/extensions_xcally_contexts.conf','Reload','chan_sip.so','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','readFileSync','writeFileSync','html-pdf','eml-format','rimraf','zip-dir','moment','util','path','sox','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../mysqldb','jayson/promise','client','http','Sequelize','ValidationError','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','request','then','VoiceContext,\x20%s,\x20%s','VoiceContext,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','code','error'];(function(_0x1a1570,_0xe13e07){var _0x3e1b0a=function(_0x595f4a){while(--_0x595f4a){_0x1a1570['push'](_0x1a1570['shift']());}};_0x3e1b0a(++_0xe13e07);}(_0x33b0,0x10f));var _0x033b=function(_0x5c3d42,_0x10699a){_0x5c3d42=_0x5c3d42-0x0;var _0x3d25f7=_0x33b0[_0x5c3d42];return _0x3d25f7;};'use strict';var pdf=require(_0x033b('0x0'));var emlformat=require(_0x033b('0x1'));var rimraf=require(_0x033b('0x2'));var zipdir=require(_0x033b('0x3'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x033b('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x033b('0x5'));var path=require(_0x033b('0x6'));var sox=require(_0x033b('0x7'));var csv=require('to-csv');var ejs=require(_0x033b('0x8'));var fs=require('fs');var _=require('lodash');var squel=require(_0x033b('0x9'));var crypto=require(_0x033b('0xa'));var jsforce=require(_0x033b('0xb'));var deskjs=require(_0x033b('0xc'));var toCsv=require('to-csv');var querystring=require(_0x033b('0xd'));var Papa=require(_0x033b('0xe'));var Redis=require(_0x033b('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x033b('0x10'));var as=require(_0x033b('0x11'));var hardwareService=require(_0x033b('0x12'));var logger=require(_0x033b('0x13'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var db=require(_0x033b('0x14'))['db'];var jayson=require(_0x033b('0x15'));var client=jayson[_0x033b('0x16')][_0x033b('0x17')]({'port':0x232a});function checkPasswordPattern(_0x1a62e4,_0x4a8003,_0x1e74ae){if(_0x1e74ae){var _0x10507c=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x10507c['test'](_0x4a8003)){return _0x1a62e4;}else{throw new db[(_0x033b('0x18'))][(_0x033b('0x19'))](_0x033b('0x1a'));}}else{return _0x1a62e4;}}function respondWithRpcPromise(_0x18320d,_0x2e4b83,_0x1a7661,_0x467df5){return new BPromise(function(_0xd23526,_0x51be1a){var _0x784853=_0x467df5||client;return _0x784853[_0x033b('0x1b')](_0x18320d,_0x1a7661)[_0x033b('0x1c')](function(_0x22b04b){logger['info'](_0x033b('0x1d'),_0x2e4b83,'request\x20sent');logger['debug'](_0x033b('0x1e'),_0x2e4b83,_0x033b('0x1f'),JSON[_0x033b('0x20')](_0x22b04b));if(_0x22b04b['error']){if(_0x22b04b['error'][_0x033b('0x21')]===0x1f4){logger[_0x033b('0x22')](_0x033b('0x1d'),_0x2e4b83,_0x22b04b[_0x033b('0x22')][_0x033b('0x23')]);return _0x51be1a(_0x22b04b[_0x033b('0x22')]['message']);}logger[_0x033b('0x22')]('VoiceContext,\x20%s,\x20%s',_0x2e4b83,_0x22b04b[_0x033b('0x22')][_0x033b('0x23')]);return _0xd23526(_0x22b04b[_0x033b('0x22')]['message']);}else{logger[_0x033b('0x24')]('VoiceContext,\x20%s,\x20%s',_0x2e4b83,_0x033b('0x1f'));_0xd23526(_0x22b04b['result'][_0x033b('0x23')]);}})[_0x033b('0x25')](function(_0x11c8ce){logger[_0x033b('0x22')](_0x033b('0x1d'),_0x2e4b83,_0x11c8ce);_0x51be1a(_0x11c8ce);});});}function respondWithStatusCode(_0xd550f0,_0xb0a3c){_0xb0a3c=_0xb0a3c||0xcc;return function(_0x2d82dd){if(_0x2d82dd){return _0xd550f0[_0x033b('0x26')](_0xb0a3c);}return _0xd550f0[_0x033b('0x27')](_0xb0a3c)[_0x033b('0x28')]();};}function respondWithResult(_0x225bf6,_0x1ded24){_0x1ded24=_0x1ded24||0xc8;return function(_0x422852){if(_0x422852){return _0x225bf6[_0x033b('0x27')](_0x1ded24)[_0x033b('0x29')](_0x422852);}};}function respondWithFilteredResult(_0x8c1cc6,_0x4b56d2){return function(_0x1be94c){if(_0x1be94c){var _0x30e6f3=_0x1be94c[_0x033b('0x2a')],_0x4d6ec3=_0x4b56d2[_0x033b('0x2b')],_0x580aa8=_0x4b56d2[_0x033b('0x2b')]+_0x4b56d2[_0x033b('0x2c')],_0x286769;if(_0x580aa8>=_0x30e6f3){_0x580aa8=_0x30e6f3;_0x286769=0xc8;}else{_0x286769=0xce;}_0x8c1cc6[_0x033b('0x27')](_0x286769);return _0x8c1cc6['set']('Content-Range',_0x4d6ec3+'-'+_0x580aa8+'/'+_0x30e6f3)[_0x033b('0x29')](_0x1be94c);}return null;};}function patchUpdates(_0xca131b){return function(_0xdebca5){try{jsonpatch['apply'](_0xdebca5,_0xca131b,!![]);}catch(_0x5c8f93){return BPromise[_0x033b('0x2d')](_0x5c8f93);}return _0xdebca5[_0x033b('0x2e')]();};}function saveUpdates(_0x25742b,_0x361b5b){return function(_0x537e11){if(_0x537e11){return _0x537e11[_0x033b('0x2f')](_0x25742b)[_0x033b('0x1c')](function(_0x3536ba){return _0x3536ba;});}return null;};}function removeEntity(_0x494d4d,_0x4b4ba2){return function(_0x1dba9d){if(_0x1dba9d){return _0x1dba9d[_0x033b('0x30')]()['then'](function(){var _0x224883=_0x1dba9d[_0x033b('0x31')]({'plain':!![]});var _0x3aae81=_0x033b('0x32');return db[_0x033b('0x33')][_0x033b('0x30')]({'where':{'type':_0x3aae81,'resourceId':_0x224883['id']}})[_0x033b('0x1c')](function(){return _0x1dba9d;});})[_0x033b('0x1c')](function(){_0x494d4d[_0x033b('0x27')](0xcc)['end']();});}};}function handleEntityNotFound(_0x37c72a,_0x15ec18){return function(_0x417fd1){if(!_0x417fd1){_0x37c72a[_0x033b('0x26')](0x194);}return _0x417fd1;};}function handleError(_0x5099dc,_0x1ff16c){_0x1ff16c=_0x1ff16c||0x1f4;return function(_0x4371a7){logger['error'](_0x4371a7[_0x033b('0x34')]);if(_0x4371a7[_0x033b('0x35')]){delete _0x4371a7['name'];}_0x5099dc[_0x033b('0x27')](_0x1ff16c)['send'](_0x4371a7);};}exports[_0x033b('0x36')]=function(_0x55cc08,_0x49b747){var _0x288234={},_0x51c780={},_0x1b33db={'count':0x0,'rows':[]};var _0x55485a=_[_0x033b('0x37')](db['VoiceContext'][_0x033b('0x38')],function(_0x5d818f){return{'name':_0x5d818f[_0x033b('0x39')],'type':_0x5d818f[_0x033b('0x3a')][_0x033b('0x3b')]};});_0x51c780[_0x033b('0x3c')]=_[_0x033b('0x37')](_0x55485a,_0x033b('0x35'));_0x51c780[_0x033b('0x3d')]=_['keys'](_0x55cc08[_0x033b('0x3d')]);_0x51c780[_0x033b('0x3e')]=_[_0x033b('0x3f')](_0x51c780[_0x033b('0x3c')],_0x51c780[_0x033b('0x3d')]);_0x288234[_0x033b('0x40')]=_[_0x033b('0x3f')](_0x51c780[_0x033b('0x3c')],qs[_0x033b('0x41')](_0x55cc08[_0x033b('0x3d')]['fields']));_0x288234[_0x033b('0x40')]=_0x288234[_0x033b('0x40')]['length']?_0x288234[_0x033b('0x40')]:_0x51c780[_0x033b('0x3c')];if(!_0x55cc08[_0x033b('0x3d')][_0x033b('0x42')](_0x033b('0x43'))){_0x288234['limit']=qs['limit'](_0x55cc08[_0x033b('0x3d')]['limit']);_0x288234[_0x033b('0x2b')]=qs[_0x033b('0x2b')](_0x55cc08['query'][_0x033b('0x2b')]);}_0x288234[_0x033b('0x44')]=qs[_0x033b('0x45')](_0x55cc08[_0x033b('0x3d')][_0x033b('0x45')]);_0x288234[_0x033b('0x46')]=qs[_0x033b('0x3e')](_[_0x033b('0x47')](_0x55cc08[_0x033b('0x3d')],_0x51c780[_0x033b('0x3e')]));if(_0x55cc08[_0x033b('0x3d')][_0x033b('0x48')]){_0x288234['where']=_['merge'](_0x288234[_0x033b('0x46')],{'$or':_[_0x033b('0x37')](_0x55485a,function(_0x2a9b91){if(_0x2a9b91[_0x033b('0x3a')]!=='VIRTUAL'){var _0xce8e76={};_0xce8e76[_0x2a9b91['name']]={'$like':'%'+_0x55cc08[_0x033b('0x3d')][_0x033b('0x48')]+'%'};return _0xce8e76;}})});}_0x288234=_[_0x033b('0x49')]({},_0x288234,_0x55cc08[_0x033b('0x4a')]);var _0x50c239={'where':_0x288234[_0x033b('0x46')]};return db['VoiceContext'][_0x033b('0x2a')](_0x50c239)[_0x033b('0x1c')](function(_0x3527d2){_0x1b33db['count']=_0x3527d2;if(_0x55cc08[_0x033b('0x3d')][_0x033b('0x4b')]){_0x288234[_0x033b('0x4c')]=[{'all':!![]}];}return db['VoiceContext']['findAll'](_0x288234);})[_0x033b('0x1c')](function(_0x56ef6d){_0x1b33db[_0x033b('0x4d')]=_0x56ef6d;return _0x1b33db;})[_0x033b('0x1c')](respondWithFilteredResult(_0x49b747,_0x288234))[_0x033b('0x25')](handleError(_0x49b747,null));};exports[_0x033b('0x4e')]=function(_0x1e093c,_0x375d51){var _0x4cc953={'raw':![],'where':{'id':_0x1e093c[_0x033b('0x4f')]['id']}},_0x267d9a={};_0x267d9a[_0x033b('0x3c')]=_[_0x033b('0x50')](db[_0x033b('0x51')][_0x033b('0x38')]);_0x267d9a[_0x033b('0x3d')]=_[_0x033b('0x50')](_0x1e093c['query']);_0x267d9a[_0x033b('0x3e')]=_[_0x033b('0x3f')](_0x267d9a[_0x033b('0x3c')],_0x267d9a[_0x033b('0x3d')]);_0x4cc953[_0x033b('0x40')]=_[_0x033b('0x3f')](_0x267d9a[_0x033b('0x3c')],qs[_0x033b('0x41')](_0x1e093c[_0x033b('0x3d')][_0x033b('0x41')]));_0x4cc953[_0x033b('0x40')]=_0x4cc953[_0x033b('0x40')][_0x033b('0x52')]?_0x4cc953[_0x033b('0x40')]:_0x267d9a[_0x033b('0x3c')];if(_0x1e093c[_0x033b('0x3d')][_0x033b('0x4b')]){_0x4cc953[_0x033b('0x4c')]=[{'all':!![]}];}_0x4cc953=_[_0x033b('0x49')]({},_0x4cc953,_0x1e093c['options']);return db[_0x033b('0x51')][_0x033b('0x53')](_0x4cc953)['then'](handleEntityNotFound(_0x375d51,null))[_0x033b('0x1c')](respondWithResult(_0x375d51,null))[_0x033b('0x25')](handleError(_0x375d51,null));};exports[_0x033b('0x54')]=function(_0x1251d2,_0xd57fdb,_0x46542b){var _0x5e13c1;return db[_0x033b('0x51')]['create'](_0x1251d2[_0x033b('0x55')],{'raw':!![]})['then'](function(_0x2dcbed){_0x5e13c1=_0x2dcbed;return db[_0x033b('0x51')][_0x033b('0x56')]({'raw':!![]});})['then'](function(_0x4d3294){var _0x107310=fs['readFileSync'](path[_0x033b('0x57')](config[_0x033b('0x58')],_0x033b('0x59')),_0x033b('0x5a'));var _0x580c44=ejs[_0x033b('0x5b')](_0x107310,{'contexts':_0x4d3294||[]});fs['writeFileSync'](_0x033b('0x5c'),_0x580c44);})[_0x033b('0x1c')](function(){return respondWithRpcPromise(_0x033b('0x5d'),_0x033b('0x54'),{'module':_0x033b('0x5e')});})['then'](function(){var _0x34b36c=_0x1251d2[_0x033b('0x5f')][_0x033b('0x31')]({'plain':!![]});if(!_0x34b36c)throw new Error(_0x033b('0x60'));if(_0x34b36c[_0x033b('0x61')]===_0x033b('0x5f')){var _0x411aae=_0x5e13c1[_0x033b('0x31')]({'plain':!![]});return db['UserProfileSection'][_0x033b('0x53')]({'where':{'name':_0x033b('0x32'),'userProfileId':_0x34b36c[_0x033b('0x62')]},'raw':!![]})[_0x033b('0x1c')](function(_0x109ed0){if(_0x109ed0&&_0x109ed0[_0x033b('0x63')]===0x0){return db[_0x033b('0x33')]['create']({'name':_0x411aae[_0x033b('0x35')],'resourceId':_0x411aae['id'],'type':_0x109ed0[_0x033b('0x35')],'sectionId':_0x109ed0['id']},{})[_0x033b('0x1c')](function(){return _0x5e13c1;});}else{return _0x5e13c1;}})['catch'](function(_0x3476db){logger[_0x033b('0x22')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3476db);throw _0x3476db;});}return _0x5e13c1;})[_0x033b('0x1c')](respondWithResult(_0xd57fdb,0xc9))[_0x033b('0x25')](handleError(_0xd57fdb,null));};exports[_0x033b('0x2f')]=function(_0xf1dc7,_0x4b373b,_0x305eb9){var _0x573140;return db[_0x033b('0x51')][_0x033b('0x53')]({'where':{'id':_0xf1dc7[_0x033b('0x4f')]['id']}})[_0x033b('0x1c')](handleEntityNotFound(_0x4b373b,null))[_0x033b('0x1c')](saveUpdates(_0xf1dc7['body'],null))['then'](function(_0x3e7fdc){if(_0x3e7fdc){_0x573140=_0x3e7fdc;return db[_0x033b('0x51')][_0x033b('0x56')]({'raw':!![]});}})[_0x033b('0x1c')](function(_0x280a5d){var _0x3d65ed=fs[_0x033b('0x64')](path[_0x033b('0x57')](config[_0x033b('0x58')],'server/files/templates/context.ejs'),_0x033b('0x5a'));var _0x1fcb08=ejs[_0x033b('0x5b')](_0x3d65ed,{'contexts':_0x280a5d||[]});fs['writeFileSync'](_0x033b('0x5c'),_0x1fcb08);})[_0x033b('0x1c')](function(){return respondWithRpcPromise('Reload',_0x033b('0x2f'),{'module':'chan_sip.so'});})[_0x033b('0x1c')](function(){return _0x573140;})[_0x033b('0x1c')](respondWithResult(_0x4b373b,null))[_0x033b('0x25')](handleError(_0x4b373b,null));};exports['destroy']=function(_0x191b4a,_0x5982a2,_0x485d04){var _0x730e91;return db[_0x033b('0x51')][_0x033b('0x53')]({'where':{'id':_0x191b4a[_0x033b('0x4f')]['id']}})['then'](handleEntityNotFound(_0x5982a2,null))[_0x033b('0x1c')](removeEntity(_0x5982a2,null))[_0x033b('0x1c')](function(){return db['VoiceContext']['findAll']({'raw':!![]});})['then'](function(_0x2fc6f3){var _0x4a1ae3=fs[_0x033b('0x64')](path[_0x033b('0x57')](config[_0x033b('0x58')],_0x033b('0x59')),_0x033b('0x5a'));var _0xf6c95d=ejs[_0x033b('0x5b')](_0x4a1ae3,{'contexts':_0x2fc6f3});fs[_0x033b('0x65')](_0x033b('0x5c'),_0xf6c95d);return respondWithRpcPromise(_0x033b('0x5d'),'destroy',{'module':_0x033b('0x5e')});})['catch'](handleError(_0x5982a2,null));};