0037e65b19060992cbb2866fbf1017f067a4ebac
[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 _0xf707=['../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','apply','reject','save','update','then','get','Templates','UserProfileResource','destroy','error','name','send','index','map','Template','fieldName','type','key','model','query','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','where','filters','filter','VIRTUAL','merge','options','findAll','rows','catch','show','params','keys','includeAll','include','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','ejs','fs-extra','lodash','crypto','jsforce','to-csv','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/environment'];(function(_0x4bbaba,_0x15097c){var _0x34ff2b=function(_0x190d49){while(--_0x190d49){_0x4bbaba['push'](_0x4bbaba['shift']());}};_0x34ff2b(++_0x15097c);}(_0xf707,0xde));var _0x7f70=function(_0x5515d9,_0x37aa85){_0x5515d9=_0x5515d9-0x0;var _0xc99d6=_0xf707[_0x5515d9];return _0xc99d6;};'use strict';var emlformat=require(_0x7f70('0x0'));var rimraf=require(_0x7f70('0x1'));var zipdir=require(_0x7f70('0x2'));var jsonpatch=require(_0x7f70('0x3'));var rp=require(_0x7f70('0x4'));var moment=require('moment');var BPromise=require(_0x7f70('0x5'));var Mustache=require(_0x7f70('0x6'));var util=require(_0x7f70('0x7'));var path=require('path');var sox=require(_0x7f70('0x8'));var csv=require('to-csv');var ejs=require(_0x7f70('0x9'));var fs=require('fs');var fs_extra=require(_0x7f70('0xa'));var _=require(_0x7f70('0xb'));var squel=require('squel');var crypto=require(_0x7f70('0xc'));var jsforce=require(_0x7f70('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x7f70('0xe'));var querystring=require(_0x7f70('0xf'));var Papa=require('papaparse');var Redis=require(_0x7f70('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x7f70('0x11'));var as=require(_0x7f70('0x12'));var hardwareService=require(_0x7f70('0x13'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0x7f70('0x14'));var licenseUtil=require(_0x7f70('0x15'));var db=require(_0x7f70('0x16'))['db'];function respondWithStatusCode(_0xc7cc3c,_0x187fbb){_0x187fbb=_0x187fbb||0xcc;return function(_0xdf6c20){if(_0xdf6c20){return _0xc7cc3c[_0x7f70('0x17')](_0x187fbb);}return _0xc7cc3c[_0x7f70('0x18')](_0x187fbb)[_0x7f70('0x19')]();};}function respondWithResult(_0x41abf7,_0x570582){_0x570582=_0x570582||0xc8;return function(_0x32e1b6){if(_0x32e1b6){return _0x41abf7['status'](_0x570582)[_0x7f70('0x1a')](_0x32e1b6);}};}function respondWithFilteredResult(_0x205127,_0x5d5307){return function(_0x7dd69f){if(_0x7dd69f){var _0x536e01=typeof _0x5d5307[_0x7f70('0x1b')]===_0x7f70('0x1c')&&typeof _0x5d5307['limit']===_0x7f70('0x1c');var _0xb00fcf=_0x7dd69f[_0x7f70('0x1d')];var _0x120044=_0x536e01?0x0:_0x5d5307[_0x7f70('0x1b')];var _0x3c651a=_0x536e01?_0x7dd69f['count']:_0x5d5307['offset']+_0x5d5307[_0x7f70('0x1e')];var _0x3294e8;if(_0x3c651a>=_0xb00fcf){_0x3c651a=_0xb00fcf;_0x3294e8=0xc8;}else{_0x3294e8=0xce;}_0x205127[_0x7f70('0x18')](_0x3294e8);return _0x205127['set']('Content-Range',_0x120044+'-'+_0x3c651a+'/'+_0xb00fcf)[_0x7f70('0x1a')](_0x7dd69f);}return null;};}function patchUpdates(_0x5c8d43){return function(_0x1a3f72){try{jsonpatch[_0x7f70('0x1f')](_0x1a3f72,_0x5c8d43,!![]);}catch(_0x3d7b63){return BPromise[_0x7f70('0x20')](_0x3d7b63);}return _0x1a3f72[_0x7f70('0x21')]();};}function saveUpdates(_0x40509f,_0x518017){return function(_0x589c5b){if(_0x589c5b){return _0x589c5b[_0x7f70('0x22')](_0x40509f)[_0x7f70('0x23')](function(_0x3d507c){return _0x3d507c;});}return null;};}function removeEntity(_0x543031,_0x49a66a){return function(_0x5d3289){if(_0x5d3289){return _0x5d3289['destroy']()[_0x7f70('0x23')](function(){var _0x450133=_0x5d3289[_0x7f70('0x24')]({'plain':!![]});var _0x3ea50=_0x7f70('0x25');return db[_0x7f70('0x26')][_0x7f70('0x27')]({'where':{'type':_0x3ea50,'resourceId':_0x450133['id']}})['then'](function(){return _0x5d3289;});})[_0x7f70('0x23')](function(){_0x543031[_0x7f70('0x18')](0xcc)[_0x7f70('0x19')]();});}};}function handleEntityNotFound(_0x255166,_0x35aae4){return function(_0x8ba7f8){if(!_0x8ba7f8){_0x255166[_0x7f70('0x17')](0x194);}return _0x8ba7f8;};}function handleError(_0x51b043,_0x4bf3b0){_0x4bf3b0=_0x4bf3b0||0x1f4;return function(_0x38327d){logger[_0x7f70('0x28')](_0x38327d['stack']);if(_0x38327d[_0x7f70('0x29')]){delete _0x38327d[_0x7f70('0x29')];}_0x51b043[_0x7f70('0x18')](_0x4bf3b0)[_0x7f70('0x2a')](_0x38327d);};}exports[_0x7f70('0x2b')]=function(_0x5bca52,_0x5ec08f){var _0x5361d2={},_0x3fa76d={},_0x3e4ec7={'count':0x0,'rows':[]};var _0x4ca2fc=_[_0x7f70('0x2c')](db[_0x7f70('0x2d')]['rawAttributes'],function(_0x15ce6c){return{'name':_0x15ce6c[_0x7f70('0x2e')],'type':_0x15ce6c[_0x7f70('0x2f')][_0x7f70('0x30')]};});_0x3fa76d[_0x7f70('0x31')]=_['map'](_0x4ca2fc,_0x7f70('0x29'));_0x3fa76d[_0x7f70('0x32')]=_['keys'](_0x5bca52[_0x7f70('0x32')]);_0x3fa76d['filters']=_['intersection'](_0x3fa76d[_0x7f70('0x31')],_0x3fa76d['query']);_0x5361d2[_0x7f70('0x33')]=_[_0x7f70('0x34')](_0x3fa76d[_0x7f70('0x31')],qs[_0x7f70('0x35')](_0x5bca52[_0x7f70('0x32')][_0x7f70('0x35')]));_0x5361d2[_0x7f70('0x33')]=_0x5361d2[_0x7f70('0x33')]['length']?_0x5361d2[_0x7f70('0x33')]:_0x3fa76d[_0x7f70('0x31')];if(!_0x5bca52['query'][_0x7f70('0x36')](_0x7f70('0x37'))){_0x5361d2[_0x7f70('0x1e')]=qs[_0x7f70('0x1e')](_0x5bca52['query'][_0x7f70('0x1e')]);_0x5361d2['offset']=qs[_0x7f70('0x1b')](_0x5bca52['query'][_0x7f70('0x1b')]);}_0x5361d2[_0x7f70('0x38')]=qs[_0x7f70('0x39')](_0x5bca52[_0x7f70('0x32')][_0x7f70('0x39')]);_0x5361d2[_0x7f70('0x3a')]=qs[_0x7f70('0x3b')](_['pick'](_0x5bca52['query'],_0x3fa76d[_0x7f70('0x3b')]),_0x4ca2fc);if(_0x5bca52['query'][_0x7f70('0x3c')]){_0x5361d2[_0x7f70('0x3a')]=_['merge'](_0x5361d2['where'],{'$or':_[_0x7f70('0x2c')](_0x4ca2fc,function(_0xc05fa8){if(_0xc05fa8[_0x7f70('0x2f')]!==_0x7f70('0x3d')){var _0x4bb76c={};_0x4bb76c[_0xc05fa8['name']]={'$like':'%'+_0x5bca52[_0x7f70('0x32')]['filter']+'%'};return _0x4bb76c;}})});}_0x5361d2=_[_0x7f70('0x3e')]({},_0x5361d2,_0x5bca52[_0x7f70('0x3f')]);var _0x24deb8={'where':_0x5361d2[_0x7f70('0x3a')]};return db[_0x7f70('0x2d')][_0x7f70('0x1d')](_0x24deb8)[_0x7f70('0x23')](function(_0x52be43){_0x3e4ec7[_0x7f70('0x1d')]=_0x52be43;if(_0x5bca52[_0x7f70('0x32')]['includeAll']){_0x5361d2['include']=[{'all':!![]}];}return db[_0x7f70('0x2d')][_0x7f70('0x40')](_0x5361d2);})['then'](function(_0x436022){_0x3e4ec7[_0x7f70('0x41')]=_0x436022;return _0x3e4ec7;})['then'](respondWithFilteredResult(_0x5ec08f,_0x5361d2))[_0x7f70('0x42')](handleError(_0x5ec08f,null));};exports[_0x7f70('0x43')]=function(_0x5551ab,_0x152fbe){var _0x5a53bd={'raw':!![],'where':{'id':_0x5551ab[_0x7f70('0x44')]['id']}},_0x51ed83={};_0x51ed83['model']=_[_0x7f70('0x45')](db['Template']['rawAttributes']);_0x51ed83[_0x7f70('0x32')]=_[_0x7f70('0x45')](_0x5551ab[_0x7f70('0x32')]);_0x51ed83['filters']=_[_0x7f70('0x34')](_0x51ed83['model'],_0x51ed83[_0x7f70('0x32')]);_0x5a53bd[_0x7f70('0x33')]=_[_0x7f70('0x34')](_0x51ed83['model'],qs[_0x7f70('0x35')](_0x5551ab[_0x7f70('0x32')][_0x7f70('0x35')]));_0x5a53bd['attributes']=_0x5a53bd[_0x7f70('0x33')]['length']?_0x5a53bd[_0x7f70('0x33')]:_0x51ed83['model'];if(_0x5551ab[_0x7f70('0x32')][_0x7f70('0x46')]){_0x5a53bd[_0x7f70('0x47')]=[{'all':!![]}];}_0x5a53bd=_[_0x7f70('0x3e')]({},_0x5a53bd,_0x5551ab[_0x7f70('0x3f')]);return db[_0x7f70('0x2d')][_0x7f70('0x48')](_0x5a53bd)[_0x7f70('0x23')](handleEntityNotFound(_0x152fbe,null))[_0x7f70('0x23')](respondWithResult(_0x152fbe,null))['catch'](handleError(_0x152fbe,null));};exports[_0x7f70('0x49')]=function(_0x9432e9,_0x180620){return db[_0x7f70('0x2d')][_0x7f70('0x49')](_0x9432e9[_0x7f70('0x4a')],{})[_0x7f70('0x23')](function(_0x5d89af){var _0x2660cd=_0x9432e9['user'][_0x7f70('0x24')]({'plain':!![]});if(!_0x2660cd)throw new Error(_0x7f70('0x4b'));if(_0x2660cd['role']===_0x7f70('0x4c')){var _0x485eee=_0x5d89af[_0x7f70('0x24')]({'plain':!![]});var _0x2914d2='Templates';return db[_0x7f70('0x4d')][_0x7f70('0x48')]({'where':{'name':_0x2914d2,'userProfileId':_0x2660cd[_0x7f70('0x4e')]},'raw':!![]})[_0x7f70('0x23')](function(_0x524d89){if(_0x524d89&&_0x524d89[_0x7f70('0x4f')]===0x0){return db['UserProfileResource'][_0x7f70('0x49')]({'name':_0x485eee[_0x7f70('0x29')],'resourceId':_0x485eee['id'],'type':_0x524d89[_0x7f70('0x29')],'sectionId':_0x524d89['id']},{})[_0x7f70('0x23')](function(){return _0x5d89af;});}else{return _0x5d89af;}})[_0x7f70('0x42')](function(_0x1966b8){logger['error'](_0x7f70('0x50'),_0x1966b8);throw _0x1966b8;});}return _0x5d89af;})['then'](respondWithResult(_0x180620,0xc9))[_0x7f70('0x42')](handleError(_0x180620,null));};exports[_0x7f70('0x22')]=function(_0x161795,_0x57bfc1){if(_0x161795[_0x7f70('0x4a')]['id']){delete _0x161795[_0x7f70('0x4a')]['id'];}return db[_0x7f70('0x2d')][_0x7f70('0x48')]({'where':{'id':_0x161795['params']['id']}})[_0x7f70('0x23')](handleEntityNotFound(_0x57bfc1,null))[_0x7f70('0x23')](saveUpdates(_0x161795[_0x7f70('0x4a')],null))[_0x7f70('0x23')](respondWithResult(_0x57bfc1,null))[_0x7f70('0x42')](handleError(_0x57bfc1,null));};exports[_0x7f70('0x27')]=function(_0xab3c84,_0x516fd4){return db[_0x7f70('0x2d')]['find']({'where':{'id':_0xab3c84[_0x7f70('0x44')]['id']}})[_0x7f70('0x23')](handleEntityNotFound(_0x516fd4,null))['then'](removeEntity(_0x516fd4,null))[_0x7f70('0x42')](handleError(_0x516fd4,null));};