Built motion from commit 3a7e82ea.|2.6.29
[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 _0xe6ee=['fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','where','pick','filter','merge','VIRTUAL','options','includeAll','include','rows','show','params','body','catch','create','sequelize','transaction','mode','files','directory','join','root','server/files/moh','mkdirSync','0777','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','find','destroy','readdirSync','unlinkSync','Sequelize','message','addSound','Sound','findOne','converted_format','createdAt','format','%s.%s','basename','save_name','extname','symlinkSync','ValidationError','removeSound','id2','sort','getSounds','eml-format','zip-dir','moment','bluebird','mustache','sox','to-csv','ejs','fs-extra','squel','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','offset','undefined','count','limit','set','json','apply','reject','save','update','then','get','MusicOnHolds','UserProfileResource','end','error','stack','name','send','index','map','VoiceMusicOnHold','rawAttributes'];(function(_0x4d8d25,_0x4b0c55){var _0x3da2ee=function(_0x2aa497){while(--_0x2aa497){_0x4d8d25['push'](_0x4d8d25['shift']());}};_0x3da2ee(++_0x4b0c55);}(_0xe6ee,0x1ee));var _0xee6e=function(_0x232c92,_0x8a7d5d){_0x232c92=_0x232c92-0x0;var _0x56dd31=_0xe6ee[_0x232c92];return _0x56dd31;};'use strict';var emlformat=require(_0xee6e('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xee6e('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xee6e('0x2'));var BPromise=require(_0xee6e('0x3'));var Mustache=require(_0xee6e('0x4'));var util=require('util');var path=require('path');var sox=require(_0xee6e('0x5'));var csv=require(_0xee6e('0x6'));var ejs=require(_0xee6e('0x7'));var fs=require('fs');var fs_extra=require(_0xee6e('0x8'));var _=require('lodash');var squel=require(_0xee6e('0x9'));var crypto=require('crypto');var jsforce=require(_0xee6e('0xa'));var deskjs=require(_0xee6e('0xb'));var toCsv=require(_0xee6e('0x6'));var querystring=require(_0xee6e('0xc'));var Papa=require('papaparse');var Redis=require(_0xee6e('0xd'));var authService=require(_0xee6e('0xe'));var qs=require(_0xee6e('0xf'));var as=require(_0xee6e('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xee6e('0x11'));var utils=require('../../config/utils');var config=require(_0xee6e('0x12'));var licenseUtil=require(_0xee6e('0x13'));var db=require(_0xee6e('0x14'))['db'];function respondWithStatusCode(_0x4946df,_0x3c2db6){_0x3c2db6=_0x3c2db6||0xcc;return function(_0x4712b2){if(_0x4712b2){return _0x4946df[_0xee6e('0x15')](_0x3c2db6);}return _0x4946df['status'](_0x3c2db6)['end']();};}function respondWithResult(_0x42a9dd,_0x26c7f3){_0x26c7f3=_0x26c7f3||0xc8;return function(_0x449fb1){if(_0x449fb1){return _0x42a9dd[_0xee6e('0x16')](_0x26c7f3)['json'](_0x449fb1);}};}function respondWithFilteredResult(_0x25760f,_0x30de02){return function(_0x7e3d28){if(_0x7e3d28){var _0x10f58e=typeof _0x30de02[_0xee6e('0x17')]===_0xee6e('0x18')&&typeof _0x30de02['limit']===_0xee6e('0x18');var _0x539c99=_0x7e3d28[_0xee6e('0x19')];var _0x21f386=_0x10f58e?0x0:_0x30de02[_0xee6e('0x17')];var _0x467cca=_0x10f58e?_0x7e3d28[_0xee6e('0x19')]:_0x30de02[_0xee6e('0x17')]+_0x30de02[_0xee6e('0x1a')];var _0x22db43;if(_0x467cca>=_0x539c99){_0x467cca=_0x539c99;_0x22db43=0xc8;}else{_0x22db43=0xce;}_0x25760f[_0xee6e('0x16')](_0x22db43);return _0x25760f[_0xee6e('0x1b')]('Content-Range',_0x21f386+'-'+_0x467cca+'/'+_0x539c99)[_0xee6e('0x1c')](_0x7e3d28);}return null;};}function patchUpdates(_0x323def){return function(_0x407df4){try{jsonpatch[_0xee6e('0x1d')](_0x407df4,_0x323def,!![]);}catch(_0xa5c888){return BPromise[_0xee6e('0x1e')](_0xa5c888);}return _0x407df4[_0xee6e('0x1f')]();};}function saveUpdates(_0x43b58c,_0x398df5){return function(_0x3a54fc){if(_0x3a54fc){return _0x3a54fc[_0xee6e('0x20')](_0x43b58c)[_0xee6e('0x21')](function(_0x1d9773){return _0x1d9773;});}return null;};}function removeEntity(_0x310aa2,_0x9090ad){return function(_0x2439e8){if(_0x2439e8){return _0x2439e8['destroy']()[_0xee6e('0x21')](function(){var _0x342661=_0x2439e8[_0xee6e('0x22')]({'plain':!![]});var _0x127e26=_0xee6e('0x23');return db[_0xee6e('0x24')]['destroy']({'where':{'type':_0x127e26,'resourceId':_0x342661['id']}})[_0xee6e('0x21')](function(){return _0x2439e8;});})['then'](function(){_0x310aa2[_0xee6e('0x16')](0xcc)[_0xee6e('0x25')]();});}};}function handleEntityNotFound(_0x1f58a9,_0x2ca3f8){return function(_0x45288a){if(!_0x45288a){_0x1f58a9[_0xee6e('0x15')](0x194);}return _0x45288a;};}function handleError(_0x4fbe13,_0x16ac88){_0x16ac88=_0x16ac88||0x1f4;return function(_0x4af597){logger[_0xee6e('0x26')](_0x4af597[_0xee6e('0x27')]);if(_0x4af597['name']){delete _0x4af597[_0xee6e('0x28')];}_0x4fbe13['status'](_0x16ac88)[_0xee6e('0x29')](_0x4af597);};}exports[_0xee6e('0x2a')]=function(_0x317489,_0xe683f2){var _0x2bc6d8={},_0x29e953={},_0x315789={'count':0x0,'rows':[]};var _0x17cdd2=_[_0xee6e('0x2b')](db[_0xee6e('0x2c')][_0xee6e('0x2d')],function(_0x1e9f43){return{'name':_0x1e9f43[_0xee6e('0x2e')],'type':_0x1e9f43['type'][_0xee6e('0x2f')]};});_0x29e953[_0xee6e('0x30')]=_[_0xee6e('0x2b')](_0x17cdd2,_0xee6e('0x28'));_0x29e953[_0xee6e('0x31')]=_[_0xee6e('0x32')](_0x317489[_0xee6e('0x31')]);_0x29e953[_0xee6e('0x33')]=_[_0xee6e('0x34')](_0x29e953['model'],_0x29e953[_0xee6e('0x31')]);_0x2bc6d8[_0xee6e('0x35')]=_['intersection'](_0x29e953['model'],qs[_0xee6e('0x36')](_0x317489[_0xee6e('0x31')][_0xee6e('0x36')]));_0x2bc6d8[_0xee6e('0x35')]=_0x2bc6d8[_0xee6e('0x35')][_0xee6e('0x37')]?_0x2bc6d8['attributes']:_0x29e953[_0xee6e('0x30')];if(!_0x317489[_0xee6e('0x31')][_0xee6e('0x38')](_0xee6e('0x39'))){_0x2bc6d8[_0xee6e('0x1a')]=qs[_0xee6e('0x1a')](_0x317489[_0xee6e('0x31')][_0xee6e('0x1a')]);_0x2bc6d8[_0xee6e('0x17')]=qs['offset'](_0x317489[_0xee6e('0x31')][_0xee6e('0x17')]);}_0x2bc6d8[_0xee6e('0x3a')]=qs['sort'](_0x317489[_0xee6e('0x31')]['sort']);delete _0x317489['query']['sort'];_0x2bc6d8[_0xee6e('0x3b')]=qs[_0xee6e('0x33')](_[_0xee6e('0x3c')](_0x317489['query'],_0x29e953['filters']),_0x17cdd2);if(_0x317489['query'][_0xee6e('0x3d')]){_0x2bc6d8['where']=_[_0xee6e('0x3e')](_0x2bc6d8['where'],{'$or':_['map'](_0x17cdd2,function(_0x2236cc){if(_0x2236cc['type']!==_0xee6e('0x3f')){var _0x265180={};_0x265180[_0x2236cc['name']]={'$like':'%'+_0x317489[_0xee6e('0x31')]['filter']+'%'};return _0x265180;}})});}_0x2bc6d8=_[_0xee6e('0x3e')]({},_0x2bc6d8,_0x317489[_0xee6e('0x40')]);var _0x571ea6={'where':_0x2bc6d8[_0xee6e('0x3b')]};return db[_0xee6e('0x2c')][_0xee6e('0x19')](_0x571ea6)['then'](function(_0x57c79e){_0x315789[_0xee6e('0x19')]=_0x57c79e;if(_0x317489[_0xee6e('0x31')][_0xee6e('0x41')]){_0x2bc6d8[_0xee6e('0x42')]=[{'all':!![]}];}return db[_0xee6e('0x2c')]['findAll'](_0x2bc6d8);})['then'](function(_0x307f03){_0x315789[_0xee6e('0x43')]=_0x307f03;return _0x315789;})['then'](respondWithFilteredResult(_0xe683f2,_0x2bc6d8))['catch'](handleError(_0xe683f2,null));};exports[_0xee6e('0x44')]=function(_0x5f24e3,_0x51ea97){var _0xa1624e={'raw':![],'where':{'id':_0x5f24e3[_0xee6e('0x45')]['id']}},_0x58ae92={};_0x58ae92[_0xee6e('0x30')]=_['keys'](db[_0xee6e('0x2c')][_0xee6e('0x2d')]);_0x58ae92['query']=_[_0xee6e('0x32')](_0x5f24e3[_0xee6e('0x31')]);_0x58ae92['filters']=_[_0xee6e('0x34')](_0x58ae92['model'],_0x58ae92['query']);_0xa1624e['attributes']=_[_0xee6e('0x34')](_0x58ae92[_0xee6e('0x30')],qs['fields'](_0x5f24e3[_0xee6e('0x31')][_0xee6e('0x36')]));_0xa1624e['attributes']=_0xa1624e[_0xee6e('0x35')][_0xee6e('0x37')]?_0xa1624e[_0xee6e('0x35')]:_0x58ae92[_0xee6e('0x30')];if(_0x5f24e3[_0xee6e('0x31')][_0xee6e('0x41')]){_0xa1624e[_0xee6e('0x42')]=[{'all':!![]}];}_0xa1624e=_[_0xee6e('0x3e')]({},_0xa1624e,_0x5f24e3[_0xee6e('0x40')]);return db['VoiceMusicOnHold']['find'](_0xa1624e)[_0xee6e('0x21')](handleEntityNotFound(_0x51ea97,null))['then'](respondWithResult(_0x51ea97,null))['catch'](handleError(_0x51ea97,null));};exports[_0xee6e('0x20')]=function(_0x459e79,_0x7a8ef5){if(_0x459e79[_0xee6e('0x46')]['id']){delete _0x459e79[_0xee6e('0x46')]['id'];}return db[_0xee6e('0x2c')]['find']({'where':{'id':_0x459e79[_0xee6e('0x45')]['id']}})[_0xee6e('0x21')](handleEntityNotFound(_0x7a8ef5,null))[_0xee6e('0x21')](saveUpdates(_0x459e79[_0xee6e('0x46')],null))[_0xee6e('0x21')](respondWithResult(_0x7a8ef5,null))[_0xee6e('0x47')](handleError(_0x7a8ef5,null));};exports[_0xee6e('0x48')]=function(_0x333917,_0x4b9577,_0x4ae147){return db[_0xee6e('0x49')][_0xee6e('0x4a')](function(_0x474783){if(_0x333917[_0xee6e('0x46')][_0xee6e('0x4b')]===_0xee6e('0x4c')){_0x333917['body'][_0xee6e('0x4d')]=path[_0xee6e('0x4e')](config[_0xee6e('0x4f')],_0xee6e('0x50'),_0x333917[_0xee6e('0x46')][_0xee6e('0x28')]);}return db[_0xee6e('0x2c')][_0xee6e('0x48')](_0x333917[_0xee6e('0x46')],{'transaction':_0x474783})[_0xee6e('0x21')](function(_0x3996f5){if(_0x333917[_0xee6e('0x46')][_0xee6e('0x4b')]===_0xee6e('0x4c')){fs[_0xee6e('0x51')](_0x3996f5[_0xee6e('0x4d')],parseInt(_0xee6e('0x52'),0x8));}var _0x30bc07=_0x333917['user'][_0xee6e('0x22')]({'plain':!![]});if(!_0x30bc07)throw new Error(_0xee6e('0x53'));if(_0x30bc07['role']===_0xee6e('0x54')){var _0x379d7e=_0x3996f5[_0xee6e('0x22')]({'plain':!![]});return db[_0xee6e('0x55')][_0xee6e('0x56')]({'where':{'name':_0xee6e('0x23'),'userProfileId':_0x30bc07['userProfileId']},'raw':!![]})['then'](function(_0x4ca8fb){if(_0x4ca8fb&&_0x4ca8fb['autoAssociation']===0x0){return db[_0xee6e('0x24')][_0xee6e('0x48')]({'name':_0x379d7e[_0xee6e('0x28')],'resourceId':_0x379d7e['id'],'type':_0x4ca8fb[_0xee6e('0x28')],'sectionId':_0x4ca8fb['id']},{})[_0xee6e('0x21')](function(){return _0x3996f5;});}else{return _0x3996f5;}})[_0xee6e('0x47')](function(_0x4f934e){logger[_0xee6e('0x26')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4f934e);});}return _0x3996f5;});})[_0xee6e('0x21')](respondWithResult(_0x4b9577,0xc9))[_0xee6e('0x47')](handleError(_0x4b9577,null));};exports[_0xee6e('0x57')]=function(_0xa75a8b,_0x25d6a7,_0x1cf1b9){var _0x452822;return db[_0xee6e('0x2c')][_0xee6e('0x56')]({'where':{'id':_0xa75a8b[_0xee6e('0x45')]['id']}})[_0xee6e('0x21')](function(_0x5c1d93){if(_0x5c1d93){return db[_0xee6e('0x49')]['transaction'](function(_0x3478b5){return _0x5c1d93[_0xee6e('0x57')]({'transaction':_0x3478b5,'raw':!![]})[_0xee6e('0x21')](function(_0x62f698){if(_0x62f698[_0xee6e('0x4d')]){fs[_0xee6e('0x58')](_0x62f698['directory'])['forEach'](function(_0x5037aa){fs[_0xee6e('0x59')](path[_0xee6e('0x4e')](_0x62f698[_0xee6e('0x4d')],_0x5037aa));});fs['rmdirSync'](_0x62f698[_0xee6e('0x4d')]);}return _0x62f698;});})[_0xee6e('0x47')](function(_0x11ba24){throw new db[(_0xee6e('0x5a'))]['ValidationError'](_0x11ba24[_0xee6e('0x5b')]);});}})[_0xee6e('0x21')](handleEntityNotFound(_0x25d6a7,null))['then'](removeEntity(_0x25d6a7,null))[_0xee6e('0x47')](handleError(_0x25d6a7,null));};exports[_0xee6e('0x5c')]=function(_0x3d81ec,_0x585ac9,_0x128ae5){return db[_0xee6e('0x49')][_0xee6e('0x4a')](function(_0x57d521){var _0x212d1b;return db[_0xee6e('0x2c')][_0xee6e('0x56')]({'where':{'id':_0x3d81ec[_0xee6e('0x45')]['id']}})['then'](function(_0x37a5b5){if(_0x37a5b5){_0x212d1b=_0x37a5b5;return _0x37a5b5[_0xee6e('0x5c')](_0x3d81ec['body']['id'],{'transaction':_0x57d521});}})[_0xee6e('0x21')](function(_0x4a7222){if(_0x4a7222){return db[_0xee6e('0x5d')][_0xee6e('0x5e')]({'where':{'id':_0x3d81ec[_0xee6e('0x46')]['id']},'attributes':['id',_0xee6e('0x28'),'save_name',_0xee6e('0x5f'),_0xee6e('0x60')],'raw':!![]});}})['then'](function(_0x27ac28){if(_0x27ac28){var _0x325a82=path[_0xee6e('0x4e')](config[_0xee6e('0x4f')],'server/files/sounds/converted',util[_0xee6e('0x61')](_0xee6e('0x62'),path[_0xee6e('0x63')](_0x27ac28[_0xee6e('0x64')],path[_0xee6e('0x65')](_0x27ac28[_0xee6e('0x64')])),_0x27ac28[_0xee6e('0x5f')]));var _0x267cc1=path[_0xee6e('0x4e')](config[_0xee6e('0x4f')],_0xee6e('0x50'),_0x212d1b['name'],util['format'](_0xee6e('0x62'),_0x27ac28[_0xee6e('0x28')],_0x27ac28[_0xee6e('0x5f')]));fs[_0xee6e('0x66')](_0x325a82,_0x267cc1);return _0x27ac28;}})['catch'](function(_0x41875e){throw new db['Sequelize'][(_0xee6e('0x67'))](_0x41875e[_0xee6e('0x5b')]);});})[_0xee6e('0x21')](handleEntityNotFound(_0x585ac9,null))[_0xee6e('0x21')](respondWithResult(_0x585ac9,0xc9))[_0xee6e('0x47')](handleError(_0x585ac9,null));};exports[_0xee6e('0x68')]=function(_0x5bb21e,_0x5945b0,_0x3096bf){return db[_0xee6e('0x49')][_0xee6e('0x4a')](function(_0x20b114){var _0x2e3518;return db['VoiceMusicOnHold'][_0xee6e('0x5e')]({'where':{'id':_0x5bb21e[_0xee6e('0x45')]['id']}})[_0xee6e('0x21')](handleEntityNotFound(_0x5945b0,null))[_0xee6e('0x21')](function(_0x38f70c){if(_0x38f70c){_0x2e3518=_0x38f70c;return _0x38f70c['removeSound'](_0x5bb21e[_0xee6e('0x45')][_0xee6e('0x69')]);}})['then'](function(_0x5dfab0){if(_0x5dfab0){return db['Sound'][_0xee6e('0x5e')]({'where':{'id':_0x5bb21e[_0xee6e('0x45')][_0xee6e('0x69')]},'attributes':['id',_0xee6e('0x28'),'save_name','converted_format','createdAt'],'raw':!![]});}})[_0xee6e('0x21')](function(_0x356247){if(_0x356247){fs[_0xee6e('0x59')](path[_0xee6e('0x4e')](_0x2e3518['directory'],util[_0xee6e('0x61')](_0xee6e('0x62'),_0x356247[_0xee6e('0x28')],_0x356247['converted_format'])));return _0x356247;}})[_0xee6e('0x47')](function(_0x1ad03e){throw new db['Sequelize'][(_0xee6e('0x67'))](_0x1ad03e[_0xee6e('0x5b')]);});})[_0xee6e('0x21')](handleEntityNotFound(_0x5945b0,null))[_0xee6e('0x21')](respondWithStatusCode(_0x5945b0,0xcc))[_0xee6e('0x47')](handleError(_0x5945b0,null));};exports['getSounds']=function(_0x566157,_0x433056,_0xa36942){var _0x9682={};var _0x5ae950={};var _0x1c5c15;var _0x519845;return db[_0xee6e('0x2c')]['findOne']({'where':{'id':_0x566157[_0xee6e('0x45')]['id']}})[_0xee6e('0x21')](handleEntityNotFound(_0x433056,null))[_0xee6e('0x21')](function(_0x4f613e){if(_0x4f613e){_0x1c5c15=_0x4f613e;_0x5ae950['model']=_[_0xee6e('0x32')](db[_0xee6e('0x5d')]['rawAttributes']);_0x5ae950[_0xee6e('0x31')]=_[_0xee6e('0x32')](_0x566157[_0xee6e('0x31')]);_0x5ae950[_0xee6e('0x33')]=_[_0xee6e('0x34')](_0x5ae950[_0xee6e('0x30')],_0x5ae950['query']);_0x9682[_0xee6e('0x35')]=_[_0xee6e('0x34')](_0x5ae950[_0xee6e('0x30')],qs[_0xee6e('0x36')](_0x566157[_0xee6e('0x31')][_0xee6e('0x36')]));_0x9682[_0xee6e('0x35')]=_0x9682[_0xee6e('0x35')]['length']?_0x9682[_0xee6e('0x35')]:_0x5ae950[_0xee6e('0x30')];_0x9682[_0xee6e('0x3a')]=qs[_0xee6e('0x6a')](_0x566157[_0xee6e('0x31')][_0xee6e('0x6a')]);_0x9682['where']=qs[_0xee6e('0x33')](_[_0xee6e('0x3c')](_0x566157['query'],_0x5ae950[_0xee6e('0x33')]));if(_0x566157['query'][_0xee6e('0x3d')]){_0x9682[_0xee6e('0x3b')]=_[_0xee6e('0x3e')](_0x9682[_0xee6e('0x3b')],{'$or':_[_0xee6e('0x2b')](_0x9682[_0xee6e('0x35')],function(_0x12ed3c){var _0x2ed9ab={};_0x2ed9ab[_0x12ed3c]={'$like':'%'+_0x566157[_0xee6e('0x31')]['filter']+'%'};return _0x2ed9ab;})});}_0x9682=_[_0xee6e('0x3e')]({},_0x9682,_0x566157[_0xee6e('0x40')]);return _0x1c5c15[_0xee6e('0x6b')](_0x9682);}})[_0xee6e('0x21')](function(_0x4f107d){if(_0x4f107d){_0x519845=_0x4f107d['length'];if(!_0x566157[_0xee6e('0x31')][_0xee6e('0x38')](_0xee6e('0x39'))){_0x9682[_0xee6e('0x1a')]=qs[_0xee6e('0x1a')](_0x566157[_0xee6e('0x31')][_0xee6e('0x1a')]);_0x9682[_0xee6e('0x17')]=qs[_0xee6e('0x17')](_0x566157[_0xee6e('0x31')][_0xee6e('0x17')]);}return _0x1c5c15[_0xee6e('0x6b')](_0x9682);}})[_0xee6e('0x21')](function(_0x1c3876){if(_0x1c3876){return _0x1c3876?{'count':_0x519845,'rows':_0x1c3876}:null;}})[_0xee6e('0x21')](respondWithResult(_0x433056,null))[_0xee6e('0x47')](handleError(_0x433056,null));};