599893c4869c089ecb1c6b6612789ed19dd8cea2
[motion2.git] / server / api / template / template.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 _0x6bc6=['findAll','catch','params','rawAttributes','fields','includeAll','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','zip-dir','fast-json-patch','moment','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','sendStatus','end','status','json','undefined','limit','count','offset','Content-Range','reject','update','then','destroy','Templates','UserProfileResource','error','stack','send','index','map','Template','fieldName','type','key','model','name','query','keys','filters','intersection','attributes','length','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','options','include'];(function(_0x1dc24d,_0x541fa4){var _0x5d7fb2=function(_0x7ccd26){while(--_0x7ccd26){_0x1dc24d['push'](_0x1dc24d['shift']());}};_0x5d7fb2(++_0x541fa4);}(_0x6bc6,0x159));var _0x66bc=function(_0x6b6340,_0x6302c4){_0x6b6340=_0x6b6340-0x0;var _0x3609bf=_0x6bc6[_0x6b6340];return _0x3609bf;};'use strict';var emlformat=require(_0x66bc('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x66bc('0x1'));var jsonpatch=require(_0x66bc('0x2'));var rp=require('request-promise');var moment=require(_0x66bc('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x66bc('0x4'));var path=require(_0x66bc('0x5'));var sox=require(_0x66bc('0x6'));var csv=require(_0x66bc('0x7'));var ejs=require(_0x66bc('0x8'));var fs=require('fs');var fs_extra=require(_0x66bc('0x9'));var _=require(_0x66bc('0xa'));var squel=require(_0x66bc('0xb'));var crypto=require(_0x66bc('0xc'));var jsforce=require(_0x66bc('0xd'));var deskjs=require(_0x66bc('0xe'));var toCsv=require('to-csv');var querystring=require(_0x66bc('0xf'));var Papa=require('papaparse');var Redis=require(_0x66bc('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x66bc('0x11'));var as=require(_0x66bc('0x12'));var hardwareService=require(_0x66bc('0x13'));var logger=require(_0x66bc('0x14'))('api');var utils=require(_0x66bc('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x66bc('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x6cff72,_0x5f4ab2){_0x5f4ab2=_0x5f4ab2||0xcc;return function(_0x28a500){if(_0x28a500){return _0x6cff72[_0x66bc('0x17')](_0x5f4ab2);}return _0x6cff72['status'](_0x5f4ab2)[_0x66bc('0x18')]();};}function respondWithResult(_0x23ffdf,_0x42f971){_0x42f971=_0x42f971||0xc8;return function(_0x237792){if(_0x237792){return _0x23ffdf[_0x66bc('0x19')](_0x42f971)[_0x66bc('0x1a')](_0x237792);}};}function respondWithFilteredResult(_0x31a0db,_0x5d990e){return function(_0x4157f2){if(_0x4157f2){var _0x3b284f=typeof _0x5d990e['offset']===_0x66bc('0x1b')&&typeof _0x5d990e[_0x66bc('0x1c')]===_0x66bc('0x1b');var _0x194d12=_0x4157f2[_0x66bc('0x1d')];var _0x58d75c=_0x3b284f?0x0:_0x5d990e[_0x66bc('0x1e')];var _0x26af5f=_0x3b284f?_0x4157f2[_0x66bc('0x1d')]:_0x5d990e[_0x66bc('0x1e')]+_0x5d990e[_0x66bc('0x1c')];var _0x212290;if(_0x26af5f>=_0x194d12){_0x26af5f=_0x194d12;_0x212290=0xc8;}else{_0x212290=0xce;}_0x31a0db['status'](_0x212290);return _0x31a0db['set'](_0x66bc('0x1f'),_0x58d75c+'-'+_0x26af5f+'/'+_0x194d12)[_0x66bc('0x1a')](_0x4157f2);}return null;};}function patchUpdates(_0x5cc043){return function(_0xe90d5c){try{jsonpatch['apply'](_0xe90d5c,_0x5cc043,!![]);}catch(_0x172f69){return BPromise[_0x66bc('0x20')](_0x172f69);}return _0xe90d5c['save']();};}function saveUpdates(_0x59ce56,_0x5a492a){return function(_0x42d176){if(_0x42d176){return _0x42d176[_0x66bc('0x21')](_0x59ce56)[_0x66bc('0x22')](function(_0x5ec9ac){return _0x5ec9ac;});}return null;};}function removeEntity(_0x2da829,_0x2b0cdc){return function(_0x4c76ae){if(_0x4c76ae){return _0x4c76ae[_0x66bc('0x23')]()[_0x66bc('0x22')](function(){var _0x51e01d=_0x4c76ae['get']({'plain':!![]});var _0x150413=_0x66bc('0x24');return db[_0x66bc('0x25')][_0x66bc('0x23')]({'where':{'type':_0x150413,'resourceId':_0x51e01d['id']}})[_0x66bc('0x22')](function(){return _0x4c76ae;});})[_0x66bc('0x22')](function(){_0x2da829[_0x66bc('0x19')](0xcc)[_0x66bc('0x18')]();});}};}function handleEntityNotFound(_0x34ca7d,_0x5c3590){return function(_0x45b7d1){if(!_0x45b7d1){_0x34ca7d['sendStatus'](0x194);}return _0x45b7d1;};}function handleError(_0x24dffa,_0x1eee7f){_0x1eee7f=_0x1eee7f||0x1f4;return function(_0x9f562d){logger[_0x66bc('0x26')](_0x9f562d[_0x66bc('0x27')]);if(_0x9f562d['name']){delete _0x9f562d['name'];}_0x24dffa[_0x66bc('0x19')](_0x1eee7f)[_0x66bc('0x28')](_0x9f562d);};}exports[_0x66bc('0x29')]=function(_0x22cb63,_0x3b1d65){var _0x44c3c7={},_0x36d6ac={},_0x508435={'count':0x0,'rows':[]};var _0x38742f=_[_0x66bc('0x2a')](db[_0x66bc('0x2b')]['rawAttributes'],function(_0x50bdd1){return{'name':_0x50bdd1[_0x66bc('0x2c')],'type':_0x50bdd1[_0x66bc('0x2d')][_0x66bc('0x2e')]};});_0x36d6ac[_0x66bc('0x2f')]=_[_0x66bc('0x2a')](_0x38742f,_0x66bc('0x30'));_0x36d6ac[_0x66bc('0x31')]=_[_0x66bc('0x32')](_0x22cb63[_0x66bc('0x31')]);_0x36d6ac[_0x66bc('0x33')]=_[_0x66bc('0x34')](_0x36d6ac[_0x66bc('0x2f')],_0x36d6ac[_0x66bc('0x31')]);_0x44c3c7[_0x66bc('0x35')]=_['intersection'](_0x36d6ac[_0x66bc('0x2f')],qs['fields'](_0x22cb63[_0x66bc('0x31')]['fields']));_0x44c3c7[_0x66bc('0x35')]=_0x44c3c7['attributes'][_0x66bc('0x36')]?_0x44c3c7[_0x66bc('0x35')]:_0x36d6ac[_0x66bc('0x2f')];if(!_0x22cb63[_0x66bc('0x31')]['hasOwnProperty'](_0x66bc('0x37'))){_0x44c3c7['limit']=qs[_0x66bc('0x1c')](_0x22cb63[_0x66bc('0x31')][_0x66bc('0x1c')]);_0x44c3c7[_0x66bc('0x1e')]=qs[_0x66bc('0x1e')](_0x22cb63['query']['offset']);}_0x44c3c7[_0x66bc('0x38')]=qs['sort'](_0x22cb63[_0x66bc('0x31')][_0x66bc('0x39')]);_0x44c3c7[_0x66bc('0x3a')]=qs[_0x66bc('0x33')](_[_0x66bc('0x3b')](_0x22cb63[_0x66bc('0x31')],_0x36d6ac[_0x66bc('0x33')]),_0x38742f);if(_0x22cb63[_0x66bc('0x31')]['filter']){_0x44c3c7[_0x66bc('0x3a')]=_[_0x66bc('0x3c')](_0x44c3c7[_0x66bc('0x3a')],{'$or':_['map'](_0x38742f,function(_0x52b1a0){if(_0x52b1a0['type']!==_0x66bc('0x3d')){var _0x1220b1={};_0x1220b1[_0x52b1a0[_0x66bc('0x30')]]={'$like':'%'+_0x22cb63[_0x66bc('0x31')][_0x66bc('0x3e')]+'%'};return _0x1220b1;}})});}_0x44c3c7=_[_0x66bc('0x3c')]({},_0x44c3c7,_0x22cb63[_0x66bc('0x3f')]);var _0x23b549={'where':_0x44c3c7['where']};return db[_0x66bc('0x2b')]['count'](_0x23b549)[_0x66bc('0x22')](function(_0x2716a8){_0x508435['count']=_0x2716a8;if(_0x22cb63['query']['includeAll']){_0x44c3c7[_0x66bc('0x40')]=[{'all':!![]}];}return db[_0x66bc('0x2b')][_0x66bc('0x41')](_0x44c3c7);})[_0x66bc('0x22')](function(_0x49e4f0){_0x508435['rows']=_0x49e4f0;return _0x508435;})[_0x66bc('0x22')](respondWithFilteredResult(_0x3b1d65,_0x44c3c7))[_0x66bc('0x42')](handleError(_0x3b1d65,null));};exports['show']=function(_0x375798,_0x273c5c){var _0x4a0b6d={'raw':!![],'where':{'id':_0x375798[_0x66bc('0x43')]['id']}},_0x8ff5cd={};_0x8ff5cd[_0x66bc('0x2f')]=_['keys'](db[_0x66bc('0x2b')][_0x66bc('0x44')]);_0x8ff5cd['query']=_[_0x66bc('0x32')](_0x375798['query']);_0x8ff5cd['filters']=_[_0x66bc('0x34')](_0x8ff5cd[_0x66bc('0x2f')],_0x8ff5cd['query']);_0x4a0b6d[_0x66bc('0x35')]=_[_0x66bc('0x34')](_0x8ff5cd[_0x66bc('0x2f')],qs[_0x66bc('0x45')](_0x375798[_0x66bc('0x31')][_0x66bc('0x45')]));_0x4a0b6d[_0x66bc('0x35')]=_0x4a0b6d[_0x66bc('0x35')][_0x66bc('0x36')]?_0x4a0b6d[_0x66bc('0x35')]:_0x8ff5cd[_0x66bc('0x2f')];if(_0x375798[_0x66bc('0x31')][_0x66bc('0x46')]){_0x4a0b6d[_0x66bc('0x40')]=[{'all':!![]}];}_0x4a0b6d=_[_0x66bc('0x3c')]({},_0x4a0b6d,_0x375798['options']);return db[_0x66bc('0x2b')][_0x66bc('0x47')](_0x4a0b6d)[_0x66bc('0x22')](handleEntityNotFound(_0x273c5c,null))['then'](respondWithResult(_0x273c5c,null))[_0x66bc('0x42')](handleError(_0x273c5c,null));};exports[_0x66bc('0x48')]=function(_0x573ab3,_0x3dd0ea){return db[_0x66bc('0x2b')][_0x66bc('0x48')](_0x573ab3[_0x66bc('0x49')],{})[_0x66bc('0x22')](function(_0x1bdf56){var _0xd984b4=_0x573ab3[_0x66bc('0x4a')][_0x66bc('0x4b')]({'plain':!![]});if(!_0xd984b4)throw new Error(_0x66bc('0x4c'));if(_0xd984b4[_0x66bc('0x4d')]==='user'){var _0x3d3131=_0x1bdf56[_0x66bc('0x4b')]({'plain':!![]});var _0x40e5c5=_0x66bc('0x24');return db[_0x66bc('0x4e')]['find']({'where':{'name':_0x40e5c5,'userProfileId':_0xd984b4[_0x66bc('0x4f')]},'raw':!![]})['then'](function(_0x2bc0b4){if(_0x2bc0b4&&_0x2bc0b4[_0x66bc('0x50')]===0x0){return db['UserProfileResource'][_0x66bc('0x48')]({'name':_0x3d3131[_0x66bc('0x30')],'resourceId':_0x3d3131['id'],'type':_0x2bc0b4[_0x66bc('0x30')],'sectionId':_0x2bc0b4['id']},{})[_0x66bc('0x22')](function(){return _0x1bdf56;});}else{return _0x1bdf56;}})[_0x66bc('0x42')](function(_0x151b84){logger[_0x66bc('0x26')](_0x66bc('0x51'),_0x151b84);throw _0x151b84;});}return _0x1bdf56;})['then'](respondWithResult(_0x3dd0ea,0xc9))[_0x66bc('0x42')](handleError(_0x3dd0ea,null));};exports[_0x66bc('0x21')]=function(_0x5259ad,_0x19d660){if(_0x5259ad[_0x66bc('0x49')]['id']){delete _0x5259ad[_0x66bc('0x49')]['id'];}return db['Template'][_0x66bc('0x47')]({'where':{'id':_0x5259ad[_0x66bc('0x43')]['id']}})[_0x66bc('0x22')](handleEntityNotFound(_0x19d660,null))[_0x66bc('0x22')](saveUpdates(_0x5259ad[_0x66bc('0x49')],null))[_0x66bc('0x22')](respondWithResult(_0x19d660,null))['catch'](handleError(_0x19d660,null));};exports[_0x66bc('0x23')]=function(_0x4fa50e,_0x178f7d){return db['Template'][_0x66bc('0x47')]({'where':{'id':_0x4fa50e[_0x66bc('0x43')]['id']}})['then'](handleEntityNotFound(_0x178f7d,null))[_0x66bc('0x22')](removeEntity(_0x178f7d,null))[_0x66bc('0x42')](handleError(_0x178f7d,null));};