Built motion from commit 67e5df37.|2.0.66
[motion2.git] / server / api / voiceExtension / voiceExtension.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 _0x2521=['params','includeAll','find','type','outbound','body','exten','concat','create','update','pick','context','description','addApplications','findOne','transaction','VoiceExtensionId','bulkCreate','cast(priority\x20as\x20unsigned)','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','socket.io-emitter','localhost','register','sendStatus','status','end','json','count','limit','set','save','then','error','stack','name','index','model','VoiceExtension','dateStart','query','dateEnd','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','offset','order','sort','add','day','merge','where','filter','map','options','include','findAll','rows','catch'];(function(_0x80dde1,_0x25e9b4){var _0x1a28a0=function(_0x35a956){while(--_0x35a956){_0x80dde1['push'](_0x80dde1['shift']());}};_0x1a28a0(++_0x25e9b4);}(_0x2521,0x15f));var _0x1252=function(_0x589248,_0x31dea3){_0x589248=_0x589248-0x0;var _0x486750=_0x2521[_0x589248];return _0x486750;};'use strict';var jsonpatch=require(_0x1252('0x0'));var rp=require(_0x1252('0x1'));var moment=require(_0x1252('0x2'));var BPromise=require('bluebird');var Mustache=require(_0x1252('0x3'));var util=require(_0x1252('0x4'));var path=require(_0x1252('0x5'));var sox=require(_0x1252('0x6'));var csv=require(_0x1252('0x7'));var ejs=require(_0x1252('0x8'));var fs=require('fs');var _=require(_0x1252('0x9'));var squel=require('squel');var crypto=require(_0x1252('0xa'));var jsforce=require(_0x1252('0xb'));var deskjs=require(_0x1252('0xc'));var toCsv=require(_0x1252('0x7'));var querystring=require(_0x1252('0xd'));var Papa=require(_0x1252('0xe'));var qs=require(_0x1252('0xf'));var logger=require(_0x1252('0x10'))(_0x1252('0x11'));var utils=require(_0x1252('0x12'));var config=require(_0x1252('0x13'));var db=require(_0x1252('0x14'))['db'];var socket=require(_0x1252('0x15'))({'host':_0x1252('0x16'),'port':0x18eb});require('./voiceExtension.socket')[_0x1252('0x17')](socket);function respondWithStatusCode(_0x13aec2,_0x1c983c){_0x1c983c=_0x1c983c||0xcc;return function(_0x39053){if(_0x39053){return _0x13aec2[_0x1252('0x18')](_0x1c983c);}return _0x13aec2[_0x1252('0x19')](_0x1c983c)[_0x1252('0x1a')]();};}function respondWithResult(_0x29f85f,_0x1d4c20){_0x1d4c20=_0x1d4c20||0xc8;return function(_0x19dfb0){if(_0x19dfb0){return _0x29f85f[_0x1252('0x19')](_0x1d4c20)[_0x1252('0x1b')](_0x19dfb0);}};}function respondWithFilteredResult(_0x33d2bd,_0x4ecc9c){return function(_0x3c9751){if(_0x3c9751){var _0x1aa9b2=_0x3c9751[_0x1252('0x1c')],_0x3eb613=_0x4ecc9c['offset'],_0x23521e=_0x4ecc9c['offset']+_0x4ecc9c[_0x1252('0x1d')],_0xc27e;if(_0x23521e>=_0x1aa9b2){_0x23521e=_0x1aa9b2;_0xc27e=0xc8;}else{_0xc27e=0xce;}_0x33d2bd[_0x1252('0x19')](_0xc27e);return _0x33d2bd[_0x1252('0x1e')]('Content-Range',_0x3eb613+'-'+_0x23521e+'/'+_0x1aa9b2)[_0x1252('0x1b')](_0x3c9751);}return null;};}function patchUpdates(_0x49e01c){return function(_0x362350){try{jsonpatch['apply'](_0x362350,_0x49e01c,!![]);}catch(_0x2048e5){return BPromise['reject'](_0x2048e5);}return _0x362350[_0x1252('0x1f')]();};}function saveUpdates(_0x1a971b,_0x953b4d){return function(_0x80cbdb){if(_0x80cbdb){return _0x80cbdb['update'](_0x1a971b)['then'](function(_0x45f3ab){return _0x45f3ab;});}return null;};}function removeEntity(_0x380f53,_0x227155){return function(_0x5c4666){if(_0x5c4666){return _0x5c4666['destroy']()[_0x1252('0x20')](function(){_0x380f53[_0x1252('0x19')](0xcc)[_0x1252('0x1a')]();});}};}function handleEntityNotFound(_0x4a471d,_0x50dbb5){return function(_0x1f76c9){if(!_0x1f76c9){_0x4a471d['sendStatus'](0x194);}return _0x1f76c9;};}function handleError(_0x4e16e1,_0x119eb1){_0x119eb1=_0x119eb1||0x1f4;return function(_0x748bf3){logger[_0x1252('0x21')](_0x748bf3[_0x1252('0x22')]);if(_0x748bf3[_0x1252('0x23')]){delete _0x748bf3['name'];}_0x4e16e1['status'](_0x119eb1)['send'](_0x748bf3);};}exports[_0x1252('0x24')]=function(_0xc4b13a,_0x30f3ef){var _0x48427d={},_0xa1d9={},_0x41d432={'count':0x0,'rows':[]};_0xa1d9[_0x1252('0x25')]=_['keys'](db[_0x1252('0x26')]['rawAttributes']);var _0x1ac996={'dateStart':_0xc4b13a['query'][_0x1252('0x27')],'dateEnd':_0xc4b13a[_0x1252('0x28')][_0x1252('0x29')]};delete _0xc4b13a['query']['dateStart'];delete _0xc4b13a[_0x1252('0x28')][_0x1252('0x29')];_0xa1d9[_0x1252('0x28')]=_[_0x1252('0x2a')](_0xc4b13a[_0x1252('0x28')]);_0xa1d9[_0x1252('0x2b')]=_[_0x1252('0x2c')](_0xa1d9[_0x1252('0x25')],_0xa1d9[_0x1252('0x28')]);_0x48427d[_0x1252('0x2d')]=_['intersection'](_0xa1d9[_0x1252('0x25')],qs['fields'](_0xc4b13a['query'][_0x1252('0x2e')]));_0x48427d[_0x1252('0x2d')]=_0x48427d['attributes'][_0x1252('0x2f')]?_0x48427d['attributes']:_0xa1d9[_0x1252('0x25')];if(!_0xc4b13a[_0x1252('0x28')][_0x1252('0x30')](_0x1252('0x31'))){_0x48427d[_0x1252('0x1d')]=qs['limit'](_0xc4b13a[_0x1252('0x28')][_0x1252('0x1d')]);_0x48427d[_0x1252('0x32')]=qs['offset'](_0xc4b13a[_0x1252('0x28')]['offset']);}_0x48427d[_0x1252('0x33')]=qs[_0x1252('0x34')](_0xc4b13a[_0x1252('0x28')]['sort']);_0x48427d['where']=qs[_0x1252('0x2b')](_['pick'](_0xc4b13a['query'],_0xa1d9[_0x1252('0x2b')]));if(_0x1ac996[_0x1252('0x27')]){if(_0x1ac996[_0x1252('0x29')]){_0x1ac996[_0x1252('0x29')]=moment(_0x1ac996['dateEnd'])[_0x1252('0x35')](0x1,_0x1252('0x36'));}else{_0x1ac996['dateEnd']=moment(_0x1ac996['dateStart'])[_0x1252('0x35')](0x1,_0x1252('0x36'));}_[_0x1252('0x37')](_0x48427d[_0x1252('0x38')],{'createdAt':{'$gte':_0x1ac996[_0x1252('0x27')],'$lte':_0x1ac996['dateEnd']}});}if(_0xc4b13a[_0x1252('0x28')][_0x1252('0x39')]){_0x48427d['where']=_[_0x1252('0x37')](_0x48427d['where'],{'$or':_[_0x1252('0x3a')](_0x48427d[_0x1252('0x2d')],function(_0x163b0d){var _0x41b063={};_0x41b063[_0x163b0d]={'$like':'%'+_0xc4b13a['query'][_0x1252('0x39')]+'%'};return _0x41b063;})});}_0x48427d=_[_0x1252('0x37')]({},_0x48427d,_0xc4b13a[_0x1252('0x3b')]);var _0xef6704={'where':_0x48427d[_0x1252('0x38')]};return db[_0x1252('0x26')][_0x1252('0x1c')](_0xef6704)['then'](function(_0x5c9f11){_0x41d432['count']=_0x5c9f11;if(_0xc4b13a[_0x1252('0x28')]['includeAll']){_0x48427d[_0x1252('0x3c')]=[{'all':!![]}];}return db[_0x1252('0x26')][_0x1252('0x3d')](_0x48427d);})[_0x1252('0x20')](function(_0x274227){_0x41d432[_0x1252('0x3e')]=_0x274227;return _0x41d432;})[_0x1252('0x20')](respondWithFilteredResult(_0x30f3ef,_0x48427d))[_0x1252('0x3f')](handleError(_0x30f3ef,null));};exports['show']=function(_0x2c4e9d,_0x50a2fd){var _0x3c4fff={'raw':![],'where':{'id':_0x2c4e9d[_0x1252('0x40')]['id']}},_0x28f039={};_0x28f039['model']=_['keys'](db[_0x1252('0x26')]['rawAttributes']);_0x28f039[_0x1252('0x28')]=_[_0x1252('0x2a')](_0x2c4e9d[_0x1252('0x28')]);_0x28f039[_0x1252('0x2b')]=_[_0x1252('0x2c')](_0x28f039[_0x1252('0x25')],_0x28f039['query']);_0x3c4fff['attributes']=_['intersection'](_0x28f039[_0x1252('0x25')],qs[_0x1252('0x2e')](_0x2c4e9d[_0x1252('0x28')][_0x1252('0x2e')]));_0x3c4fff[_0x1252('0x2d')]=_0x3c4fff[_0x1252('0x2d')][_0x1252('0x2f')]?_0x3c4fff[_0x1252('0x2d')]:_0x28f039[_0x1252('0x25')];if(_0x2c4e9d[_0x1252('0x28')][_0x1252('0x41')]){_0x3c4fff[_0x1252('0x3c')]=[{'all':!![]}];}_0x3c4fff=_[_0x1252('0x37')]({},_0x3c4fff,_0x2c4e9d['options']);return db[_0x1252('0x26')][_0x1252('0x42')](_0x3c4fff)[_0x1252('0x20')](handleEntityNotFound(_0x50a2fd,null))['then'](respondWithResult(_0x50a2fd,null))['catch'](handleError(_0x50a2fd,null));};exports['destroy']=function(_0x4da7a6,_0x10927d){return db[_0x1252('0x26')][_0x1252('0x42')]({'where':{'id':_0x4da7a6[_0x1252('0x40')]['id']}})[_0x1252('0x20')](handleEntityNotFound(_0x10927d,null))[_0x1252('0x20')](removeEntity(_0x10927d,null))[_0x1252('0x3f')](handleError(_0x10927d,null));};exports['create']=function(_0x1532cc,_0x42ef8e){if(_0x1532cc['body'][_0x1252('0x43')]===_0x1252('0x44')&&!_['startsWith'](_0x1532cc[_0x1252('0x45')]['exten'],'_')){_0x1532cc[_0x1252('0x45')][_0x1252('0x46')]='_'[_0x1252('0x47')](_0x1532cc[_0x1252('0x45')]['exten']);}return db[_0x1252('0x26')][_0x1252('0x48')](_0x1532cc[_0x1252('0x45')],{'raw':![]})[_0x1252('0x20')](respondWithResult(_0x42ef8e,0xc9))[_0x1252('0x3f')](handleError(_0x42ef8e,null));};exports[_0x1252('0x49')]=function(_0x147ea4,_0x4b7e80){if(_0x147ea4[_0x1252('0x45')]['id']){delete _0x147ea4[_0x1252('0x45')]['id'];}return db['VoiceExtension'][_0x1252('0x42')]({'where':{'id':_0x147ea4[_0x1252('0x40')]['id']}})[_0x1252('0x20')](handleEntityNotFound(_0x4b7e80,null))[_0x1252('0x20')](function(_0x26dbd9){if(_0x26dbd9){return db['VoiceExtension'][_0x1252('0x49')](_[_0x1252('0x4a')](_0x147ea4[_0x1252('0x45')],[_0x1252('0x46'),_0x1252('0x4b'),_0x1252('0x4c'),'recordingFormat','cutdigits']),{'where':{'context':_0x26dbd9['context'],'exten':_0x26dbd9[_0x1252('0x46')]},'individualHooks':!![]})[_0x1252('0x20')](function(_0x30f5fb){return _0x30f5fb;});}return null;})[_0x1252('0x20')](respondWithStatusCode(_0x4b7e80,null))['catch'](handleError(_0x4b7e80,null));};exports[_0x1252('0x4d')]=function(_0x2d8d8e,_0x2d888b,_0x40b815){return db[_0x1252('0x26')][_0x1252('0x4e')]({'where':{'id':_0x2d8d8e[_0x1252('0x40')]['id']}})[_0x1252('0x20')](handleEntityNotFound(_0x2d888b,null))[_0x1252('0x20')](function(_0x24f5ac){if(_0x24f5ac){return db['sequelize'][_0x1252('0x4f')](function(_0x131fb6){return db[_0x1252('0x26')]['destroy']({'where':{'VoiceExtensionId':_0x2d8d8e[_0x1252('0x40')]['id']},'transaction':_0x131fb6})[_0x1252('0x20')](function(_0x54f36b){var _0x5921c1=_['map'](_0x2d8d8e[_0x1252('0x45')],function(_0x180b31){_0x180b31[_0x1252('0x50')]=_0x2d8d8e[_0x1252('0x40')]['id'];return _0x180b31;});return db[_0x1252('0x26')][_0x1252('0x51')](_0x5921c1,{'transaction':_0x131fb6});});})[_0x1252('0x20')](function(){return db[_0x1252('0x26')]['findAndCountAll']({'where':{'isApp':!![],'VoiceExtensionId':_0x2d8d8e[_0x1252('0x40')]['id']},'order':_0x1252('0x52')});});}})[_0x1252('0x20')](respondWithResult(_0x2d888b,null))[_0x1252('0x3f')](handleError(_0x2d888b,null));};