40ad69ddb4b9cf593fdd2bb324489cbd0ece521d
[motion2.git] / server / api / voiceMusicOnHold / voiceMusicOnHold.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 _0x54f3=['directory','join','server/files/moh','files','mkdirSync','user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','readdirSync','unlinkSync','Sequelize','Sound','findOne','save_name','converted_format','createdAt','root','server/files/sounds/converted','format','basename','extname','%s.%s','symlinkSync','ValidationError','removeSound','id2','getSounds','order','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','update','destroy','then','get','MusicOnHolds','error','stack','name','send','index','map','VoiceMusicOnHold','rawAttributes','fieldName','type','key','keys','query','filters','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','rows','show','params','find','catch','body','create','sequelize','transaction','mode'];(function(_0x20c6d7,_0x2eb011){var _0x55d4e3=function(_0x483371){while(--_0x483371){_0x20c6d7['push'](_0x20c6d7['shift']());}};_0x55d4e3(++_0x2eb011);}(_0x54f3,0x1f4));var _0x354f=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x54f3[_0x321bb2];return _0x9c12ed;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x354f('0x0'));var jsonpatch=require(_0x354f('0x1'));var rp=require(_0x354f('0x2'));var moment=require(_0x354f('0x3'));var BPromise=require(_0x354f('0x4'));var Mustache=require(_0x354f('0x5'));var util=require(_0x354f('0x6'));var path=require(_0x354f('0x7'));var sox=require(_0x354f('0x8'));var csv=require(_0x354f('0x9'));var ejs=require(_0x354f('0xa'));var fs=require('fs');var fs_extra=require(_0x354f('0xb'));var _=require(_0x354f('0xc'));var squel=require(_0x354f('0xd'));var crypto=require('crypto');var jsforce=require(_0x354f('0xe'));var deskjs=require(_0x354f('0xf'));var toCsv=require(_0x354f('0x9'));var querystring=require(_0x354f('0x10'));var Papa=require(_0x354f('0x11'));var Redis=require('ioredis');var authService=require(_0x354f('0x12'));var qs=require(_0x354f('0x13'));var as=require(_0x354f('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x354f('0x15'))(_0x354f('0x16'));var utils=require('../../config/utils');var config=require(_0x354f('0x17'));var licenseUtil=require(_0x354f('0x18'));var db=require(_0x354f('0x19'))['db'];function respondWithStatusCode(_0x4490b1,_0xb14928){_0xb14928=_0xb14928||0xcc;return function(_0x2a89a7){if(_0x2a89a7){return _0x4490b1[_0x354f('0x1a')](_0xb14928);}return _0x4490b1[_0x354f('0x1b')](_0xb14928)[_0x354f('0x1c')]();};}function respondWithResult(_0x4632ce,_0x333f03){_0x333f03=_0x333f03||0xc8;return function(_0x3fcfa3){if(_0x3fcfa3){return _0x4632ce['status'](_0x333f03)['json'](_0x3fcfa3);}};}function respondWithFilteredResult(_0x19cd30,_0x10442a){return function(_0x3197b9){if(_0x3197b9){var _0x21542d=typeof _0x10442a[_0x354f('0x1d')]===_0x354f('0x1e')&&typeof _0x10442a[_0x354f('0x1f')]===_0x354f('0x1e');var _0x388b5f=_0x3197b9[_0x354f('0x20')];var _0x25e5d2=_0x21542d?0x0:_0x10442a[_0x354f('0x1d')];var _0x2690dc=_0x21542d?_0x3197b9['count']:_0x10442a[_0x354f('0x1d')]+_0x10442a[_0x354f('0x1f')];var _0x5656a4;if(_0x2690dc>=_0x388b5f){_0x2690dc=_0x388b5f;_0x5656a4=0xc8;}else{_0x5656a4=0xce;}_0x19cd30[_0x354f('0x1b')](_0x5656a4);return _0x19cd30[_0x354f('0x21')](_0x354f('0x22'),_0x25e5d2+'-'+_0x2690dc+'/'+_0x388b5f)[_0x354f('0x23')](_0x3197b9);}return null;};}function patchUpdates(_0xaa8945){return function(_0x17e8c3){try{jsonpatch[_0x354f('0x24')](_0x17e8c3,_0xaa8945,!![]);}catch(_0x666743){return BPromise[_0x354f('0x25')](_0x666743);}return _0x17e8c3[_0x354f('0x26')]();};}function saveUpdates(_0x25f59e,_0x5dedb3){return function(_0x4a61f3){if(_0x4a61f3){return _0x4a61f3[_0x354f('0x27')](_0x25f59e)['then'](function(_0x49de8d){return _0x49de8d;});}return null;};}function removeEntity(_0x2a1b38,_0x44119b){return function(_0x56cdde){if(_0x56cdde){return _0x56cdde[_0x354f('0x28')]()[_0x354f('0x29')](function(){var _0x19eb58=_0x56cdde[_0x354f('0x2a')]({'plain':!![]});var _0x59ad56=_0x354f('0x2b');return db['UserProfileResource'][_0x354f('0x28')]({'where':{'type':_0x59ad56,'resourceId':_0x19eb58['id']}})['then'](function(){return _0x56cdde;});})[_0x354f('0x29')](function(){_0x2a1b38[_0x354f('0x1b')](0xcc)[_0x354f('0x1c')]();});}};}function handleEntityNotFound(_0x2f7207,_0x50dabd){return function(_0x4075a7){if(!_0x4075a7){_0x2f7207['sendStatus'](0x194);}return _0x4075a7;};}function handleError(_0x1307d4,_0x6f0465){_0x6f0465=_0x6f0465||0x1f4;return function(_0x33eed0){logger[_0x354f('0x2c')](_0x33eed0[_0x354f('0x2d')]);if(_0x33eed0[_0x354f('0x2e')]){delete _0x33eed0[_0x354f('0x2e')];}_0x1307d4[_0x354f('0x1b')](_0x6f0465)[_0x354f('0x2f')](_0x33eed0);};}exports[_0x354f('0x30')]=function(_0x50515e,_0x4abbfa){var _0x4fdd17={},_0x3e65ec={},_0x17e524={'count':0x0,'rows':[]};var _0x13717a=_[_0x354f('0x31')](db[_0x354f('0x32')][_0x354f('0x33')],function(_0x547f17){return{'name':_0x547f17[_0x354f('0x34')],'type':_0x547f17[_0x354f('0x35')][_0x354f('0x36')]};});_0x3e65ec['model']=_[_0x354f('0x31')](_0x13717a,'name');_0x3e65ec['query']=_[_0x354f('0x37')](_0x50515e[_0x354f('0x38')]);_0x3e65ec[_0x354f('0x39')]=_[_0x354f('0x3a')](_0x3e65ec['model'],_0x3e65ec['query']);_0x4fdd17[_0x354f('0x3b')]=_[_0x354f('0x3a')](_0x3e65ec[_0x354f('0x3c')],qs[_0x354f('0x3d')](_0x50515e[_0x354f('0x38')][_0x354f('0x3d')]));_0x4fdd17[_0x354f('0x3b')]=_0x4fdd17[_0x354f('0x3b')][_0x354f('0x3e')]?_0x4fdd17[_0x354f('0x3b')]:_0x3e65ec['model'];if(!_0x50515e[_0x354f('0x38')][_0x354f('0x3f')](_0x354f('0x40'))){_0x4fdd17['limit']=qs[_0x354f('0x1f')](_0x50515e['query']['limit']);_0x4fdd17[_0x354f('0x1d')]=qs[_0x354f('0x1d')](_0x50515e[_0x354f('0x38')][_0x354f('0x1d')]);}_0x4fdd17['order']=qs[_0x354f('0x41')](_0x50515e[_0x354f('0x38')][_0x354f('0x41')]);delete _0x50515e['query'][_0x354f('0x41')];_0x4fdd17[_0x354f('0x42')]=qs['filters'](_[_0x354f('0x43')](_0x50515e[_0x354f('0x38')],_0x3e65ec['filters']),_0x13717a);if(_0x50515e[_0x354f('0x38')][_0x354f('0x44')]){_0x4fdd17[_0x354f('0x42')]=_['merge'](_0x4fdd17['where'],{'$or':_[_0x354f('0x31')](_0x13717a,function(_0x1653ee){if(_0x1653ee[_0x354f('0x35')]!==_0x354f('0x45')){var _0x386b07={};_0x386b07[_0x1653ee['name']]={'$like':'%'+_0x50515e[_0x354f('0x38')][_0x354f('0x44')]+'%'};return _0x386b07;}})});}_0x4fdd17=_[_0x354f('0x46')]({},_0x4fdd17,_0x50515e[_0x354f('0x47')]);var _0x3244de={'where':_0x4fdd17['where']};return db[_0x354f('0x32')][_0x354f('0x20')](_0x3244de)['then'](function(_0x1d8839){_0x17e524[_0x354f('0x20')]=_0x1d8839;if(_0x50515e[_0x354f('0x38')][_0x354f('0x48')]){_0x4fdd17[_0x354f('0x49')]=[{'all':!![]}];}return db[_0x354f('0x32')][_0x354f('0x4a')](_0x4fdd17);})[_0x354f('0x29')](function(_0x30f98e){_0x17e524[_0x354f('0x4b')]=_0x30f98e;return _0x17e524;})['then'](respondWithFilteredResult(_0x4abbfa,_0x4fdd17))['catch'](handleError(_0x4abbfa,null));};exports[_0x354f('0x4c')]=function(_0x44cf3b,_0x54db1c){var _0x1ce0ef={'raw':![],'where':{'id':_0x44cf3b[_0x354f('0x4d')]['id']}},_0x10b98e={};_0x10b98e['model']=_['keys'](db[_0x354f('0x32')][_0x354f('0x33')]);_0x10b98e[_0x354f('0x38')]=_[_0x354f('0x37')](_0x44cf3b[_0x354f('0x38')]);_0x10b98e[_0x354f('0x39')]=_[_0x354f('0x3a')](_0x10b98e[_0x354f('0x3c')],_0x10b98e[_0x354f('0x38')]);_0x1ce0ef['attributes']=_[_0x354f('0x3a')](_0x10b98e[_0x354f('0x3c')],qs[_0x354f('0x3d')](_0x44cf3b[_0x354f('0x38')][_0x354f('0x3d')]));_0x1ce0ef['attributes']=_0x1ce0ef['attributes']['length']?_0x1ce0ef['attributes']:_0x10b98e[_0x354f('0x3c')];if(_0x44cf3b[_0x354f('0x38')][_0x354f('0x48')]){_0x1ce0ef['include']=[{'all':!![]}];}_0x1ce0ef=_[_0x354f('0x46')]({},_0x1ce0ef,_0x44cf3b['options']);return db[_0x354f('0x32')][_0x354f('0x4e')](_0x1ce0ef)[_0x354f('0x29')](handleEntityNotFound(_0x54db1c,null))['then'](respondWithResult(_0x54db1c,null))[_0x354f('0x4f')](handleError(_0x54db1c,null));};exports[_0x354f('0x27')]=function(_0x590cda,_0x101a41){if(_0x590cda[_0x354f('0x50')]['id']){delete _0x590cda['body']['id'];}return db[_0x354f('0x32')][_0x354f('0x4e')]({'where':{'id':_0x590cda[_0x354f('0x4d')]['id']}})[_0x354f('0x29')](handleEntityNotFound(_0x101a41,null))[_0x354f('0x29')](saveUpdates(_0x590cda[_0x354f('0x50')],null))[_0x354f('0x29')](respondWithResult(_0x101a41,null))[_0x354f('0x4f')](handleError(_0x101a41,null));};exports[_0x354f('0x51')]=function(_0x380457,_0x3698e6,_0x1ca53d){return db[_0x354f('0x52')][_0x354f('0x53')](function(_0x4ef152){if(_0x380457[_0x354f('0x50')][_0x354f('0x54')]==='files'){_0x380457['body'][_0x354f('0x55')]=path[_0x354f('0x56')](config['root'],_0x354f('0x57'),_0x380457[_0x354f('0x50')][_0x354f('0x2e')]);}return db[_0x354f('0x32')]['create'](_0x380457['body'],{'transaction':_0x4ef152})[_0x354f('0x29')](function(_0x3358c2){if(_0x380457[_0x354f('0x50')][_0x354f('0x54')]===_0x354f('0x58')){fs[_0x354f('0x59')](_0x3358c2['directory'],parseInt('0777',0x8));}var _0x4e0516=_0x380457[_0x354f('0x5a')][_0x354f('0x2a')]({'plain':!![]});if(!_0x4e0516)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x4e0516[_0x354f('0x5b')]===_0x354f('0x5a')){var _0x2c5f49=_0x3358c2[_0x354f('0x2a')]({'plain':!![]});return db[_0x354f('0x5c')]['find']({'where':{'name':_0x354f('0x2b'),'userProfileId':_0x4e0516[_0x354f('0x5d')]},'raw':!![]})['then'](function(_0x30ce5c){if(_0x30ce5c&&_0x30ce5c[_0x354f('0x5e')]===0x0){return db[_0x354f('0x5f')]['create']({'name':_0x2c5f49[_0x354f('0x2e')],'resourceId':_0x2c5f49['id'],'type':_0x30ce5c[_0x354f('0x2e')],'sectionId':_0x30ce5c['id']},{})['then'](function(){return _0x3358c2;});}else{return _0x3358c2;}})[_0x354f('0x4f')](function(_0x5c9c86){logger[_0x354f('0x2c')](_0x354f('0x60'),_0x5c9c86);});}return _0x3358c2;});})['then'](respondWithResult(_0x3698e6,0xc9))[_0x354f('0x4f')](handleError(_0x3698e6,null));};exports[_0x354f('0x28')]=function(_0x4b0b04,_0x48f98b,_0xc4ab05){var _0x5f0312;return db[_0x354f('0x32')][_0x354f('0x4e')]({'where':{'id':_0x4b0b04[_0x354f('0x4d')]['id']}})[_0x354f('0x29')](function(_0x4e8b15){if(_0x4e8b15){return db['sequelize'][_0x354f('0x53')](function(_0x81815a){return _0x4e8b15[_0x354f('0x28')]({'transaction':_0x81815a,'raw':!![]})['then'](function(_0x43f6e1){if(_0x43f6e1[_0x354f('0x55')]){fs[_0x354f('0x61')](_0x43f6e1[_0x354f('0x55')])['forEach'](function(_0x115007){fs[_0x354f('0x62')](path[_0x354f('0x56')](_0x43f6e1[_0x354f('0x55')],_0x115007));});fs['rmdirSync'](_0x43f6e1['directory']);}return _0x43f6e1;});})[_0x354f('0x4f')](function(_0x42d541){throw new db[(_0x354f('0x63'))]['ValidationError'](_0x42d541['message']);});}})[_0x354f('0x29')](handleEntityNotFound(_0x48f98b,null))[_0x354f('0x29')](removeEntity(_0x48f98b,null))[_0x354f('0x4f')](handleError(_0x48f98b,null));};exports['addSound']=function(_0x1b0eba,_0x47c0e6,_0x3b9ecc){return db[_0x354f('0x52')][_0x354f('0x53')](function(_0x5279f0){var _0x47f7bd;return db[_0x354f('0x32')][_0x354f('0x4e')]({'where':{'id':_0x1b0eba[_0x354f('0x4d')]['id']}})[_0x354f('0x29')](function(_0x3bf0ec){if(_0x3bf0ec){_0x47f7bd=_0x3bf0ec;return _0x3bf0ec['addSound'](_0x1b0eba[_0x354f('0x50')]['id'],{'transaction':_0x5279f0});}})[_0x354f('0x29')](function(_0x224d29){if(_0x224d29){return db[_0x354f('0x64')][_0x354f('0x65')]({'where':{'id':_0x1b0eba[_0x354f('0x50')]['id']},'attributes':['id',_0x354f('0x2e'),_0x354f('0x66'),_0x354f('0x67'),_0x354f('0x68')],'raw':!![]});}})[_0x354f('0x29')](function(_0x409a88){if(_0x409a88){var _0x40d0c2=path[_0x354f('0x56')](config[_0x354f('0x69')],_0x354f('0x6a'),util[_0x354f('0x6b')]('%s.%s',path[_0x354f('0x6c')](_0x409a88['save_name'],path[_0x354f('0x6d')](_0x409a88[_0x354f('0x66')])),_0x409a88['converted_format']));var _0xa85d9c=path['join'](config[_0x354f('0x69')],_0x354f('0x57'),_0x47f7bd[_0x354f('0x2e')],util[_0x354f('0x6b')](_0x354f('0x6e'),_0x409a88[_0x354f('0x2e')],_0x409a88['converted_format']));fs[_0x354f('0x6f')](_0x40d0c2,_0xa85d9c);return _0x409a88;}})[_0x354f('0x4f')](function(_0x3f9a76){throw new db[(_0x354f('0x63'))][(_0x354f('0x70'))](_0x3f9a76['message']);});})[_0x354f('0x29')](handleEntityNotFound(_0x47c0e6,null))[_0x354f('0x29')](respondWithResult(_0x47c0e6,0xc9))['catch'](handleError(_0x47c0e6,null));};exports[_0x354f('0x71')]=function(_0x100cb5,_0x4dee52,_0x1b0230){return db[_0x354f('0x52')][_0x354f('0x53')](function(_0x50abe6){var _0x5dee6b;return db[_0x354f('0x32')]['findOne']({'where':{'id':_0x100cb5['params']['id']}})[_0x354f('0x29')](handleEntityNotFound(_0x4dee52,null))[_0x354f('0x29')](function(_0x2fdf08){if(_0x2fdf08){_0x5dee6b=_0x2fdf08;return _0x2fdf08[_0x354f('0x71')](_0x100cb5['params'][_0x354f('0x72')]);}})[_0x354f('0x29')](function(_0x4042b6){if(_0x4042b6){return db[_0x354f('0x64')][_0x354f('0x65')]({'where':{'id':_0x100cb5[_0x354f('0x4d')][_0x354f('0x72')]},'attributes':['id',_0x354f('0x2e'),_0x354f('0x66'),_0x354f('0x67'),'createdAt'],'raw':!![]});}})['then'](function(_0x240af0){if(_0x240af0){fs[_0x354f('0x62')](path[_0x354f('0x56')](_0x5dee6b[_0x354f('0x55')],util[_0x354f('0x6b')](_0x354f('0x6e'),_0x240af0['name'],_0x240af0['converted_format'])));return _0x240af0;}})[_0x354f('0x4f')](function(_0x4a773a){throw new db[(_0x354f('0x63'))][(_0x354f('0x70'))](_0x4a773a['message']);});})[_0x354f('0x29')](handleEntityNotFound(_0x4dee52,null))['then'](respondWithStatusCode(_0x4dee52,0xcc))['catch'](handleError(_0x4dee52,null));};exports[_0x354f('0x73')]=function(_0x582cef,_0xe915f4,_0x1101f2){var _0x3bd833={};var _0x3c113a={};var _0x5ede1b;var _0x3156cf;return db[_0x354f('0x32')][_0x354f('0x65')]({'where':{'id':_0x582cef[_0x354f('0x4d')]['id']}})[_0x354f('0x29')](handleEntityNotFound(_0xe915f4,null))[_0x354f('0x29')](function(_0x887a5e){if(_0x887a5e){_0x5ede1b=_0x887a5e;_0x3c113a[_0x354f('0x3c')]=_['keys'](db[_0x354f('0x64')]['rawAttributes']);_0x3c113a[_0x354f('0x38')]=_[_0x354f('0x37')](_0x582cef[_0x354f('0x38')]);_0x3c113a[_0x354f('0x39')]=_[_0x354f('0x3a')](_0x3c113a['model'],_0x3c113a[_0x354f('0x38')]);_0x3bd833[_0x354f('0x3b')]=_[_0x354f('0x3a')](_0x3c113a[_0x354f('0x3c')],qs[_0x354f('0x3d')](_0x582cef[_0x354f('0x38')][_0x354f('0x3d')]));_0x3bd833[_0x354f('0x3b')]=_0x3bd833[_0x354f('0x3b')]['length']?_0x3bd833[_0x354f('0x3b')]:_0x3c113a[_0x354f('0x3c')];_0x3bd833[_0x354f('0x74')]=qs[_0x354f('0x41')](_0x582cef[_0x354f('0x38')][_0x354f('0x41')]);_0x3bd833[_0x354f('0x42')]=qs[_0x354f('0x39')](_[_0x354f('0x43')](_0x582cef['query'],_0x3c113a[_0x354f('0x39')]));if(_0x582cef[_0x354f('0x38')]['filter']){_0x3bd833[_0x354f('0x42')]=_['merge'](_0x3bd833[_0x354f('0x42')],{'$or':_[_0x354f('0x31')](_0x3bd833['attributes'],function(_0x110e20){var _0x285e74={};_0x285e74[_0x110e20]={'$like':'%'+_0x582cef[_0x354f('0x38')]['filter']+'%'};return _0x285e74;})});}_0x3bd833=_[_0x354f('0x46')]({},_0x3bd833,_0x582cef['options']);return _0x5ede1b[_0x354f('0x73')](_0x3bd833);}})[_0x354f('0x29')](function(_0x31594d){if(_0x31594d){_0x3156cf=_0x31594d[_0x354f('0x3e')];if(!_0x582cef[_0x354f('0x38')][_0x354f('0x3f')](_0x354f('0x40'))){_0x3bd833['limit']=qs['limit'](_0x582cef['query'][_0x354f('0x1f')]);_0x3bd833[_0x354f('0x1d')]=qs[_0x354f('0x1d')](_0x582cef[_0x354f('0x38')][_0x354f('0x1d')]);}return _0x5ede1b[_0x354f('0x73')](_0x3bd833);}})['then'](function(_0x957b0d){if(_0x957b0d){return _0x957b0d?{'count':_0x3156cf,'rows':_0x957b0d}:null;}})['then'](respondWithResult(_0xe915f4,null))['catch'](handleError(_0xe915f4,null));};