Built motion from commit da617fac.|2.6.6
[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 _0xc1be=['end','json','undefined','limit','count','set','Content-Range','reject','update','then','destroy','get','stack','name','send','map','model','query','keys','attributes','fields','hasOwnProperty','nolimit','offset','order','sort','where','pick','filters','merge','type','options','VoiceMusicOnHold','include','findAll','rows','catch','show','params','intersection','includeAll','find','body','create','mode','directory','join','root','server/files/moh','mkdirSync','0777','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','MusicOnHolds','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','sequelize','transaction','readdirSync','unlinkSync','rmdirSync','Sequelize','ValidationError','message','addSound','findOne','save_name','converted_format','createdAt','server/files/sounds/converted','format','%s.%s','basename','Sound','getSounds','filter','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','sox','ejs','fs-extra','lodash','crypto','jsforce','to-csv','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','sendStatus','status'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xc1be,0x1e6));var _0xec1b=function(_0x2ed294,_0x5b3046){_0x2ed294=_0x2ed294-0x0;var _0x1b7697=_0xc1be[_0x2ed294];return _0x1b7697;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xec1b('0x0'));var zipdir=require(_0xec1b('0x1'));var jsonpatch=require(_0xec1b('0x2'));var rp=require(_0xec1b('0x3'));var moment=require(_0xec1b('0x4'));var BPromise=require(_0xec1b('0x5'));var Mustache=require(_0xec1b('0x6'));var util=require('util');var path=require('path');var sox=require(_0xec1b('0x7'));var csv=require('to-csv');var ejs=require(_0xec1b('0x8'));var fs=require('fs');var fs_extra=require(_0xec1b('0x9'));var _=require(_0xec1b('0xa'));var squel=require('squel');var crypto=require(_0xec1b('0xb'));var jsforce=require(_0xec1b('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xec1b('0xd'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xec1b('0xe'));var authService=require(_0xec1b('0xf'));var qs=require(_0xec1b('0x10'));var as=require(_0xec1b('0x11'));var hardwareService=require(_0xec1b('0x12'));var logger=require(_0xec1b('0x13'))(_0xec1b('0x14'));var utils=require('../../config/utils');var config=require(_0xec1b('0x15'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4975ee,_0x12ff65){_0x12ff65=_0x12ff65||0xcc;return function(_0x195bb2){if(_0x195bb2){return _0x4975ee[_0xec1b('0x16')](_0x12ff65);}return _0x4975ee[_0xec1b('0x17')](_0x12ff65)[_0xec1b('0x18')]();};}function respondWithResult(_0x3fcea3,_0x188563){_0x188563=_0x188563||0xc8;return function(_0x4e2934){if(_0x4e2934){return _0x3fcea3['status'](_0x188563)[_0xec1b('0x19')](_0x4e2934);}};}function respondWithFilteredResult(_0x4daf37,_0x1b6ef0){return function(_0x192ac0){if(_0x192ac0){var _0x512c5a=typeof _0x1b6ef0['offset']===_0xec1b('0x1a')&&typeof _0x1b6ef0[_0xec1b('0x1b')]===_0xec1b('0x1a');var _0x1d3fbd=_0x192ac0[_0xec1b('0x1c')];var _0x174df1=_0x512c5a?0x0:_0x1b6ef0['offset'];var _0x5c9eff=_0x512c5a?_0x192ac0[_0xec1b('0x1c')]:_0x1b6ef0['offset']+_0x1b6ef0[_0xec1b('0x1b')];var _0x1c9e69;if(_0x5c9eff>=_0x1d3fbd){_0x5c9eff=_0x1d3fbd;_0x1c9e69=0xc8;}else{_0x1c9e69=0xce;}_0x4daf37[_0xec1b('0x17')](_0x1c9e69);return _0x4daf37[_0xec1b('0x1d')](_0xec1b('0x1e'),_0x174df1+'-'+_0x5c9eff+'/'+_0x1d3fbd)[_0xec1b('0x19')](_0x192ac0);}return null;};}function patchUpdates(_0x95e5ae){return function(_0x5c0922){try{jsonpatch['apply'](_0x5c0922,_0x95e5ae,!![]);}catch(_0x2dcaa8){return BPromise[_0xec1b('0x1f')](_0x2dcaa8);}return _0x5c0922['save']();};}function saveUpdates(_0x4059a5,_0x14c2ed){return function(_0x39f2a2){if(_0x39f2a2){return _0x39f2a2[_0xec1b('0x20')](_0x4059a5)[_0xec1b('0x21')](function(_0x3e5868){return _0x3e5868;});}return null;};}function removeEntity(_0x2cc564,_0x398403){return function(_0xe83316){if(_0xe83316){return _0xe83316[_0xec1b('0x22')]()[_0xec1b('0x21')](function(){var _0x80ad6c=_0xe83316[_0xec1b('0x23')]({'plain':!![]});var _0x2ca218='MusicOnHolds';return db['UserProfileResource'][_0xec1b('0x22')]({'where':{'type':_0x2ca218,'resourceId':_0x80ad6c['id']}})[_0xec1b('0x21')](function(){return _0xe83316;});})[_0xec1b('0x21')](function(){_0x2cc564['status'](0xcc)[_0xec1b('0x18')]();});}};}function handleEntityNotFound(_0x5c18b8,_0x19045d){return function(_0xce73af){if(!_0xce73af){_0x5c18b8[_0xec1b('0x16')](0x194);}return _0xce73af;};}function handleError(_0x120243,_0x4770cb){_0x4770cb=_0x4770cb||0x1f4;return function(_0x1300db){logger['error'](_0x1300db[_0xec1b('0x24')]);if(_0x1300db[_0xec1b('0x25')]){delete _0x1300db['name'];}_0x120243['status'](_0x4770cb)[_0xec1b('0x26')](_0x1300db);};}exports['index']=function(_0x5de536,_0x4746c9){var _0x4f0d73={},_0x4ca4a9={},_0x416037={'count':0x0,'rows':[]};var _0x5377aa=_[_0xec1b('0x27')](db['VoiceMusicOnHold']['rawAttributes'],function(_0x2cf33e){return{'name':_0x2cf33e['fieldName'],'type':_0x2cf33e['type']['key']};});_0x4ca4a9[_0xec1b('0x28')]=_[_0xec1b('0x27')](_0x5377aa,_0xec1b('0x25'));_0x4ca4a9[_0xec1b('0x29')]=_[_0xec1b('0x2a')](_0x5de536[_0xec1b('0x29')]);_0x4ca4a9['filters']=_['intersection'](_0x4ca4a9['model'],_0x4ca4a9[_0xec1b('0x29')]);_0x4f0d73[_0xec1b('0x2b')]=_['intersection'](_0x4ca4a9[_0xec1b('0x28')],qs[_0xec1b('0x2c')](_0x5de536[_0xec1b('0x29')][_0xec1b('0x2c')]));_0x4f0d73['attributes']=_0x4f0d73[_0xec1b('0x2b')]['length']?_0x4f0d73[_0xec1b('0x2b')]:_0x4ca4a9[_0xec1b('0x28')];if(!_0x5de536[_0xec1b('0x29')][_0xec1b('0x2d')](_0xec1b('0x2e'))){_0x4f0d73['limit']=qs[_0xec1b('0x1b')](_0x5de536['query'][_0xec1b('0x1b')]);_0x4f0d73[_0xec1b('0x2f')]=qs[_0xec1b('0x2f')](_0x5de536[_0xec1b('0x29')][_0xec1b('0x2f')]);}_0x4f0d73[_0xec1b('0x30')]=qs['sort'](_0x5de536[_0xec1b('0x29')][_0xec1b('0x31')]);delete _0x5de536[_0xec1b('0x29')]['sort'];_0x4f0d73[_0xec1b('0x32')]=qs['filters'](_[_0xec1b('0x33')](_0x5de536['query'],_0x4ca4a9[_0xec1b('0x34')]),_0x5377aa);if(_0x5de536[_0xec1b('0x29')]['filter']){_0x4f0d73['where']=_[_0xec1b('0x35')](_0x4f0d73[_0xec1b('0x32')],{'$or':_[_0xec1b('0x27')](_0x5377aa,function(_0x5e09a0){if(_0x5e09a0[_0xec1b('0x36')]!=='VIRTUAL'){var _0xdeaa23={};_0xdeaa23[_0x5e09a0[_0xec1b('0x25')]]={'$like':'%'+_0x5de536[_0xec1b('0x29')]['filter']+'%'};return _0xdeaa23;}})});}_0x4f0d73=_[_0xec1b('0x35')]({},_0x4f0d73,_0x5de536[_0xec1b('0x37')]);var _0x3b1951={'where':_0x4f0d73[_0xec1b('0x32')]};return db[_0xec1b('0x38')]['count'](_0x3b1951)[_0xec1b('0x21')](function(_0x3638d1){_0x416037[_0xec1b('0x1c')]=_0x3638d1;if(_0x5de536[_0xec1b('0x29')]['includeAll']){_0x4f0d73[_0xec1b('0x39')]=[{'all':!![]}];}return db[_0xec1b('0x38')][_0xec1b('0x3a')](_0x4f0d73);})['then'](function(_0x6b8820){_0x416037[_0xec1b('0x3b')]=_0x6b8820;return _0x416037;})[_0xec1b('0x21')](respondWithFilteredResult(_0x4746c9,_0x4f0d73))[_0xec1b('0x3c')](handleError(_0x4746c9,null));};exports[_0xec1b('0x3d')]=function(_0x335e56,_0x5b399f){var _0x45e09c={'raw':![],'where':{'id':_0x335e56[_0xec1b('0x3e')]['id']}},_0x84f2b0={};_0x84f2b0[_0xec1b('0x28')]=_[_0xec1b('0x2a')](db[_0xec1b('0x38')]['rawAttributes']);_0x84f2b0['query']=_[_0xec1b('0x2a')](_0x335e56[_0xec1b('0x29')]);_0x84f2b0[_0xec1b('0x34')]=_[_0xec1b('0x3f')](_0x84f2b0[_0xec1b('0x28')],_0x84f2b0[_0xec1b('0x29')]);_0x45e09c[_0xec1b('0x2b')]=_['intersection'](_0x84f2b0[_0xec1b('0x28')],qs[_0xec1b('0x2c')](_0x335e56[_0xec1b('0x29')][_0xec1b('0x2c')]));_0x45e09c[_0xec1b('0x2b')]=_0x45e09c[_0xec1b('0x2b')]['length']?_0x45e09c['attributes']:_0x84f2b0['model'];if(_0x335e56[_0xec1b('0x29')][_0xec1b('0x40')]){_0x45e09c[_0xec1b('0x39')]=[{'all':!![]}];}_0x45e09c=_[_0xec1b('0x35')]({},_0x45e09c,_0x335e56['options']);return db[_0xec1b('0x38')][_0xec1b('0x41')](_0x45e09c)[_0xec1b('0x21')](handleEntityNotFound(_0x5b399f,null))['then'](respondWithResult(_0x5b399f,null))['catch'](handleError(_0x5b399f,null));};exports[_0xec1b('0x20')]=function(_0x63bf0d,_0xc562d9){if(_0x63bf0d['body']['id']){delete _0x63bf0d[_0xec1b('0x42')]['id'];}return db[_0xec1b('0x38')][_0xec1b('0x41')]({'where':{'id':_0x63bf0d[_0xec1b('0x3e')]['id']}})[_0xec1b('0x21')](handleEntityNotFound(_0xc562d9,null))[_0xec1b('0x21')](saveUpdates(_0x63bf0d[_0xec1b('0x42')],null))[_0xec1b('0x21')](respondWithResult(_0xc562d9,null))[_0xec1b('0x3c')](handleError(_0xc562d9,null));};exports[_0xec1b('0x43')]=function(_0x57f825,_0x2a1104,_0xf0fb45){return db['sequelize']['transaction'](function(_0x4393d6){if(_0x57f825[_0xec1b('0x42')][_0xec1b('0x44')]==='files'){_0x57f825[_0xec1b('0x42')][_0xec1b('0x45')]=path[_0xec1b('0x46')](config[_0xec1b('0x47')],_0xec1b('0x48'),_0x57f825[_0xec1b('0x42')][_0xec1b('0x25')]);}return db[_0xec1b('0x38')]['create'](_0x57f825[_0xec1b('0x42')],{'transaction':_0x4393d6})[_0xec1b('0x21')](function(_0x3018e){if(_0x57f825[_0xec1b('0x42')][_0xec1b('0x44')]==='files'){fs[_0xec1b('0x49')](_0x3018e[_0xec1b('0x45')],parseInt(_0xec1b('0x4a'),0x8));}var _0xe27984=_0x57f825[_0xec1b('0x4b')]['get']({'plain':!![]});if(!_0xe27984)throw new Error(_0xec1b('0x4c'));if(_0xe27984['role']===_0xec1b('0x4b')){var _0x25c39e=_0x3018e[_0xec1b('0x23')]({'plain':!![]});return db[_0xec1b('0x4d')][_0xec1b('0x41')]({'where':{'name':_0xec1b('0x4e'),'userProfileId':_0xe27984[_0xec1b('0x4f')]},'raw':!![]})[_0xec1b('0x21')](function(_0x571414){if(_0x571414&&_0x571414[_0xec1b('0x50')]===0x0){return db['UserProfileResource'][_0xec1b('0x43')]({'name':_0x25c39e[_0xec1b('0x25')],'resourceId':_0x25c39e['id'],'type':_0x571414[_0xec1b('0x25')],'sectionId':_0x571414['id']},{})[_0xec1b('0x21')](function(){return _0x3018e;});}else{return _0x3018e;}})[_0xec1b('0x3c')](function(_0x2de68e){logger['error'](_0xec1b('0x51'),_0x2de68e);});}return _0x3018e;});})[_0xec1b('0x21')](respondWithResult(_0x2a1104,0xc9))[_0xec1b('0x3c')](handleError(_0x2a1104,null));};exports[_0xec1b('0x22')]=function(_0x69a6bc,_0x2c1b2b,_0x1ec736){var _0x1960b8;return db[_0xec1b('0x38')][_0xec1b('0x41')]({'where':{'id':_0x69a6bc[_0xec1b('0x3e')]['id']}})['then'](function(_0xaa84b7){if(_0xaa84b7){return db[_0xec1b('0x52')][_0xec1b('0x53')](function(_0x42eae9){return _0xaa84b7[_0xec1b('0x22')]({'transaction':_0x42eae9,'raw':!![]})[_0xec1b('0x21')](function(_0x4f8630){if(_0x4f8630[_0xec1b('0x45')]){fs[_0xec1b('0x54')](_0x4f8630[_0xec1b('0x45')])['forEach'](function(_0x320a40){fs[_0xec1b('0x55')](path[_0xec1b('0x46')](_0x4f8630[_0xec1b('0x45')],_0x320a40));});fs[_0xec1b('0x56')](_0x4f8630[_0xec1b('0x45')]);}return _0x4f8630;});})[_0xec1b('0x3c')](function(_0x2413f9){throw new db[(_0xec1b('0x57'))][(_0xec1b('0x58'))](_0x2413f9[_0xec1b('0x59')]);});}})[_0xec1b('0x21')](handleEntityNotFound(_0x2c1b2b,null))[_0xec1b('0x21')](removeEntity(_0x2c1b2b,null))[_0xec1b('0x3c')](handleError(_0x2c1b2b,null));};exports[_0xec1b('0x5a')]=function(_0x4efcb0,_0x3a53bb,_0x12dfb8){return db[_0xec1b('0x52')][_0xec1b('0x53')](function(_0x482f0f){var _0x3b8a01;return db['VoiceMusicOnHold'][_0xec1b('0x41')]({'where':{'id':_0x4efcb0[_0xec1b('0x3e')]['id']}})['then'](function(_0x14f159){if(_0x14f159){_0x3b8a01=_0x14f159;return _0x14f159[_0xec1b('0x5a')](_0x4efcb0[_0xec1b('0x42')]['id'],{'transaction':_0x482f0f});}})[_0xec1b('0x21')](function(_0x438767){if(_0x438767){return db['Sound'][_0xec1b('0x5b')]({'where':{'id':_0x4efcb0['body']['id']},'attributes':['id',_0xec1b('0x25'),_0xec1b('0x5c'),_0xec1b('0x5d'),_0xec1b('0x5e')],'raw':!![]});}})['then'](function(_0x5c461d){if(_0x5c461d){var _0x95f297=path[_0xec1b('0x46')](config[_0xec1b('0x47')],_0xec1b('0x5f'),util[_0xec1b('0x60')](_0xec1b('0x61'),path[_0xec1b('0x62')](_0x5c461d[_0xec1b('0x5c')],path['extname'](_0x5c461d['save_name'])),_0x5c461d['converted_format']));var _0x76e235=path[_0xec1b('0x46')](config['root'],'server/files/moh',_0x3b8a01[_0xec1b('0x25')],util['format'](_0xec1b('0x61'),_0x5c461d[_0xec1b('0x25')],_0x5c461d[_0xec1b('0x5d')]));fs['symlinkSync'](_0x95f297,_0x76e235);return _0x5c461d;}})['catch'](function(_0x24f24e){throw new db[(_0xec1b('0x57'))][(_0xec1b('0x58'))](_0x24f24e[_0xec1b('0x59')]);});})[_0xec1b('0x21')](handleEntityNotFound(_0x3a53bb,null))[_0xec1b('0x21')](respondWithResult(_0x3a53bb,0xc9))[_0xec1b('0x3c')](handleError(_0x3a53bb,null));};exports['removeSound']=function(_0x3254b4,_0x3a0b0e,_0x4ee1b9){return db[_0xec1b('0x52')][_0xec1b('0x53')](function(_0x2c0022){var _0x1b98b0;return db['VoiceMusicOnHold'][_0xec1b('0x5b')]({'where':{'id':_0x3254b4['params']['id']}})['then'](handleEntityNotFound(_0x3a0b0e,null))[_0xec1b('0x21')](function(_0x35681c){if(_0x35681c){_0x1b98b0=_0x35681c;return _0x35681c['removeSound'](_0x3254b4['params']['id2']);}})[_0xec1b('0x21')](function(_0x11fbe1){if(_0x11fbe1){return db[_0xec1b('0x63')][_0xec1b('0x5b')]({'where':{'id':_0x3254b4['params']['id2']},'attributes':['id',_0xec1b('0x25'),_0xec1b('0x5c'),_0xec1b('0x5d'),_0xec1b('0x5e')],'raw':!![]});}})[_0xec1b('0x21')](function(_0x295808){if(_0x295808){fs[_0xec1b('0x55')](path[_0xec1b('0x46')](_0x1b98b0['directory'],util['format'](_0xec1b('0x61'),_0x295808[_0xec1b('0x25')],_0x295808[_0xec1b('0x5d')])));return _0x295808;}})[_0xec1b('0x3c')](function(_0x3d6aef){throw new db[(_0xec1b('0x57'))][(_0xec1b('0x58'))](_0x3d6aef[_0xec1b('0x59')]);});})['then'](handleEntityNotFound(_0x3a0b0e,null))['then'](respondWithStatusCode(_0x3a0b0e,0xcc))[_0xec1b('0x3c')](handleError(_0x3a0b0e,null));};exports[_0xec1b('0x64')]=function(_0x5ca45d,_0x4b4457,_0x4aa7b8){var _0x5c4714={};var _0xd055dd={};var _0x20fc5f;var _0x119e6b;return db[_0xec1b('0x38')][_0xec1b('0x5b')]({'where':{'id':_0x5ca45d[_0xec1b('0x3e')]['id']}})[_0xec1b('0x21')](handleEntityNotFound(_0x4b4457,null))['then'](function(_0x496982){if(_0x496982){_0x20fc5f=_0x496982;_0xd055dd[_0xec1b('0x28')]=_[_0xec1b('0x2a')](db['Sound']['rawAttributes']);_0xd055dd[_0xec1b('0x29')]=_[_0xec1b('0x2a')](_0x5ca45d[_0xec1b('0x29')]);_0xd055dd[_0xec1b('0x34')]=_['intersection'](_0xd055dd[_0xec1b('0x28')],_0xd055dd[_0xec1b('0x29')]);_0x5c4714[_0xec1b('0x2b')]=_[_0xec1b('0x3f')](_0xd055dd['model'],qs[_0xec1b('0x2c')](_0x5ca45d['query'][_0xec1b('0x2c')]));_0x5c4714['attributes']=_0x5c4714[_0xec1b('0x2b')]['length']?_0x5c4714[_0xec1b('0x2b')]:_0xd055dd[_0xec1b('0x28')];_0x5c4714['order']=qs[_0xec1b('0x31')](_0x5ca45d[_0xec1b('0x29')][_0xec1b('0x31')]);_0x5c4714[_0xec1b('0x32')]=qs[_0xec1b('0x34')](_['pick'](_0x5ca45d[_0xec1b('0x29')],_0xd055dd[_0xec1b('0x34')]));if(_0x5ca45d[_0xec1b('0x29')][_0xec1b('0x65')]){_0x5c4714[_0xec1b('0x32')]=_[_0xec1b('0x35')](_0x5c4714[_0xec1b('0x32')],{'$or':_[_0xec1b('0x27')](_0x5c4714[_0xec1b('0x2b')],function(_0x2f786b){var _0x3acb1e={};_0x3acb1e[_0x2f786b]={'$like':'%'+_0x5ca45d['query'][_0xec1b('0x65')]+'%'};return _0x3acb1e;})});}_0x5c4714=_[_0xec1b('0x35')]({},_0x5c4714,_0x5ca45d['options']);return _0x20fc5f['getSounds'](_0x5c4714);}})['then'](function(_0x1946d7){if(_0x1946d7){_0x119e6b=_0x1946d7['length'];if(!_0x5ca45d[_0xec1b('0x29')][_0xec1b('0x2d')](_0xec1b('0x2e'))){_0x5c4714['limit']=qs[_0xec1b('0x1b')](_0x5ca45d[_0xec1b('0x29')][_0xec1b('0x1b')]);_0x5c4714[_0xec1b('0x2f')]=qs[_0xec1b('0x2f')](_0x5ca45d[_0xec1b('0x29')][_0xec1b('0x2f')]);}return _0x20fc5f[_0xec1b('0x64')](_0x5c4714);}})[_0xec1b('0x21')](function(_0x27f0cc){if(_0x27f0cc){return _0x27f0cc?{'count':_0x119e6b,'rows':_0x27f0cc}:null;}})[_0xec1b('0x21')](respondWithResult(_0x4b4457,null))[_0xec1b('0x3c')](handleError(_0x4b4457,null));};