0b1baa86d2230f2013c8c0d52f103d3076ff416e
[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 _0x66e6=['papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','end','json','undefined','limit','count','offset','status','Content-Range','reject','then','destroy','error','name','send','index','Template','fieldName','type','key','map','query','keys','attributes','intersection','model','fields','length','hasOwnProperty','order','sort','pick','filters','filter','where','merge','VIRTUAL','options','includeAll','include','catch','show','params','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','Templates','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring'];(function(_0xdf284e,_0x29c97b){var _0x8f1315=function(_0x3a0fbb){while(--_0x3a0fbb){_0xdf284e['push'](_0xdf284e['shift']());}};_0x8f1315(++_0x29c97b);}(_0x66e6,0x189));var _0x666e=function(_0x146a0c,_0x101149){_0x146a0c=_0x146a0c-0x0;var _0x2a0bd5=_0x66e6[_0x146a0c];return _0x2a0bd5;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x666e('0x0'));var zipdir=require(_0x666e('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x666e('0x2'));var moment=require(_0x666e('0x3'));var BPromise=require(_0x666e('0x4'));var Mustache=require(_0x666e('0x5'));var util=require(_0x666e('0x6'));var path=require(_0x666e('0x7'));var sox=require(_0x666e('0x8'));var csv=require(_0x666e('0x9'));var ejs=require(_0x666e('0xa'));var fs=require('fs');var fs_extra=require(_0x666e('0xb'));var _=require(_0x666e('0xc'));var squel=require(_0x666e('0xd'));var crypto=require('crypto');var jsforce=require(_0x666e('0xe'));var deskjs=require(_0x666e('0xf'));var toCsv=require(_0x666e('0x9'));var querystring=require(_0x666e('0x10'));var Papa=require(_0x666e('0x11'));var Redis=require('ioredis');var authService=require(_0x666e('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x666e('0x13'));var hardwareService=require(_0x666e('0x14'));var logger=require(_0x666e('0x15'))(_0x666e('0x16'));var utils=require(_0x666e('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0x666e('0x18'));var db=require(_0x666e('0x19'))['db'];function respondWithStatusCode(_0x18db7b,_0x512fe5){_0x512fe5=_0x512fe5||0xcc;return function(_0x5a1171){if(_0x5a1171){return _0x18db7b[_0x666e('0x1a')](_0x512fe5);}return _0x18db7b['status'](_0x512fe5)[_0x666e('0x1b')]();};}function respondWithResult(_0x5b46f0,_0x1bb619){_0x1bb619=_0x1bb619||0xc8;return function(_0xc8d3ff){if(_0xc8d3ff){return _0x5b46f0['status'](_0x1bb619)[_0x666e('0x1c')](_0xc8d3ff);}};}function respondWithFilteredResult(_0x24987e,_0x47b5d9){return function(_0x223831){if(_0x223831){var _0x2dec65=typeof _0x47b5d9['offset']===_0x666e('0x1d')&&typeof _0x47b5d9[_0x666e('0x1e')]==='undefined';var _0x376b11=_0x223831[_0x666e('0x1f')];var _0x686042=_0x2dec65?0x0:_0x47b5d9[_0x666e('0x20')];var _0x5ce33f=_0x2dec65?_0x223831[_0x666e('0x1f')]:_0x47b5d9[_0x666e('0x20')]+_0x47b5d9['limit'];var _0x157c8f;if(_0x5ce33f>=_0x376b11){_0x5ce33f=_0x376b11;_0x157c8f=0xc8;}else{_0x157c8f=0xce;}_0x24987e[_0x666e('0x21')](_0x157c8f);return _0x24987e['set'](_0x666e('0x22'),_0x686042+'-'+_0x5ce33f+'/'+_0x376b11)[_0x666e('0x1c')](_0x223831);}return null;};}function patchUpdates(_0x1db864){return function(_0x3488cb){try{jsonpatch['apply'](_0x3488cb,_0x1db864,!![]);}catch(_0x12ab23){return BPromise[_0x666e('0x23')](_0x12ab23);}return _0x3488cb['save']();};}function saveUpdates(_0x26bfa2,_0x464182){return function(_0x3f641c){if(_0x3f641c){return _0x3f641c['update'](_0x26bfa2)['then'](function(_0x2a950e){return _0x2a950e;});}return null;};}function removeEntity(_0x5c572c,_0x59c873){return function(_0x56b1f8){if(_0x56b1f8){return _0x56b1f8['destroy']()[_0x666e('0x24')](function(){var _0x22c59a=_0x56b1f8['get']({'plain':!![]});var _0x514112='Templates';return db['UserProfileResource'][_0x666e('0x25')]({'where':{'type':_0x514112,'resourceId':_0x22c59a['id']}})[_0x666e('0x24')](function(){return _0x56b1f8;});})[_0x666e('0x24')](function(){_0x5c572c['status'](0xcc)[_0x666e('0x1b')]();});}};}function handleEntityNotFound(_0x55a58a,_0x3c1550){return function(_0x39dba0){if(!_0x39dba0){_0x55a58a[_0x666e('0x1a')](0x194);}return _0x39dba0;};}function handleError(_0x1c915c,_0x589057){_0x589057=_0x589057||0x1f4;return function(_0x101c6b){logger[_0x666e('0x26')](_0x101c6b['stack']);if(_0x101c6b[_0x666e('0x27')]){delete _0x101c6b[_0x666e('0x27')];}_0x1c915c[_0x666e('0x21')](_0x589057)[_0x666e('0x28')](_0x101c6b);};}exports[_0x666e('0x29')]=function(_0x5ce948,_0xa1f4df){var _0x4237ea={},_0x2c8532={},_0x307138={'count':0x0,'rows':[]};var _0x2c980d=_['map'](db[_0x666e('0x2a')]['rawAttributes'],function(_0x49197e){return{'name':_0x49197e[_0x666e('0x2b')],'type':_0x49197e[_0x666e('0x2c')][_0x666e('0x2d')]};});_0x2c8532['model']=_[_0x666e('0x2e')](_0x2c980d,_0x666e('0x27'));_0x2c8532[_0x666e('0x2f')]=_[_0x666e('0x30')](_0x5ce948[_0x666e('0x2f')]);_0x2c8532['filters']=_['intersection'](_0x2c8532['model'],_0x2c8532[_0x666e('0x2f')]);_0x4237ea[_0x666e('0x31')]=_[_0x666e('0x32')](_0x2c8532[_0x666e('0x33')],qs[_0x666e('0x34')](_0x5ce948[_0x666e('0x2f')][_0x666e('0x34')]));_0x4237ea[_0x666e('0x31')]=_0x4237ea[_0x666e('0x31')][_0x666e('0x35')]?_0x4237ea[_0x666e('0x31')]:_0x2c8532[_0x666e('0x33')];if(!_0x5ce948[_0x666e('0x2f')][_0x666e('0x36')]('nolimit')){_0x4237ea['limit']=qs[_0x666e('0x1e')](_0x5ce948[_0x666e('0x2f')]['limit']);_0x4237ea['offset']=qs[_0x666e('0x20')](_0x5ce948[_0x666e('0x2f')][_0x666e('0x20')]);}_0x4237ea[_0x666e('0x37')]=qs[_0x666e('0x38')](_0x5ce948[_0x666e('0x2f')][_0x666e('0x38')]);_0x4237ea['where']=qs['filters'](_[_0x666e('0x39')](_0x5ce948['query'],_0x2c8532[_0x666e('0x3a')]),_0x2c980d);if(_0x5ce948['query'][_0x666e('0x3b')]){_0x4237ea[_0x666e('0x3c')]=_[_0x666e('0x3d')](_0x4237ea[_0x666e('0x3c')],{'$or':_['map'](_0x2c980d,function(_0x21d272){if(_0x21d272[_0x666e('0x2c')]!==_0x666e('0x3e')){var _0xff246f={};_0xff246f[_0x21d272[_0x666e('0x27')]]={'$like':'%'+_0x5ce948[_0x666e('0x2f')][_0x666e('0x3b')]+'%'};return _0xff246f;}})});}_0x4237ea=_[_0x666e('0x3d')]({},_0x4237ea,_0x5ce948[_0x666e('0x3f')]);var _0x183d1a={'where':_0x4237ea[_0x666e('0x3c')]};return db[_0x666e('0x2a')][_0x666e('0x1f')](_0x183d1a)['then'](function(_0x1ea741){_0x307138['count']=_0x1ea741;if(_0x5ce948[_0x666e('0x2f')][_0x666e('0x40')]){_0x4237ea[_0x666e('0x41')]=[{'all':!![]}];}return db[_0x666e('0x2a')]['findAll'](_0x4237ea);})[_0x666e('0x24')](function(_0x60e838){_0x307138['rows']=_0x60e838;return _0x307138;})['then'](respondWithFilteredResult(_0xa1f4df,_0x4237ea))[_0x666e('0x42')](handleError(_0xa1f4df,null));};exports[_0x666e('0x43')]=function(_0x21b063,_0xa9e68){var _0x4d00c9={'raw':!![],'where':{'id':_0x21b063[_0x666e('0x44')]['id']}},_0x3df3b2={};_0x3df3b2[_0x666e('0x33')]=_[_0x666e('0x30')](db[_0x666e('0x2a')]['rawAttributes']);_0x3df3b2['query']=_[_0x666e('0x30')](_0x21b063['query']);_0x3df3b2[_0x666e('0x3a')]=_[_0x666e('0x32')](_0x3df3b2[_0x666e('0x33')],_0x3df3b2[_0x666e('0x2f')]);_0x4d00c9[_0x666e('0x31')]=_[_0x666e('0x32')](_0x3df3b2['model'],qs[_0x666e('0x34')](_0x21b063[_0x666e('0x2f')][_0x666e('0x34')]));_0x4d00c9[_0x666e('0x31')]=_0x4d00c9[_0x666e('0x31')]['length']?_0x4d00c9[_0x666e('0x31')]:_0x3df3b2['model'];if(_0x21b063['query'][_0x666e('0x40')]){_0x4d00c9['include']=[{'all':!![]}];}_0x4d00c9=_[_0x666e('0x3d')]({},_0x4d00c9,_0x21b063[_0x666e('0x3f')]);return db[_0x666e('0x2a')][_0x666e('0x45')](_0x4d00c9)['then'](handleEntityNotFound(_0xa9e68,null))[_0x666e('0x24')](respondWithResult(_0xa9e68,null))[_0x666e('0x42')](handleError(_0xa9e68,null));};exports[_0x666e('0x46')]=function(_0xb90054,_0xed2ed1){return db[_0x666e('0x2a')][_0x666e('0x46')](_0xb90054[_0x666e('0x47')],{})[_0x666e('0x24')](function(_0x199370){var _0x5a4c6a=_0xb90054[_0x666e('0x48')][_0x666e('0x49')]({'plain':!![]});if(!_0x5a4c6a)throw new Error(_0x666e('0x4a'));if(_0x5a4c6a['role']===_0x666e('0x48')){var _0x1817f9=_0x199370['get']({'plain':!![]});var _0x7eac60=_0x666e('0x4b');return db[_0x666e('0x4c')][_0x666e('0x45')]({'where':{'name':_0x7eac60,'userProfileId':_0x5a4c6a[_0x666e('0x4d')]},'raw':!![]})['then'](function(_0x19aeef){if(_0x19aeef&&_0x19aeef[_0x666e('0x4e')]===0x0){return db[_0x666e('0x4f')][_0x666e('0x46')]({'name':_0x1817f9['name'],'resourceId':_0x1817f9['id'],'type':_0x19aeef[_0x666e('0x27')],'sectionId':_0x19aeef['id']},{})[_0x666e('0x24')](function(){return _0x199370;});}else{return _0x199370;}})['catch'](function(_0x364383){logger[_0x666e('0x26')](_0x666e('0x50'),_0x364383);throw _0x364383;});}return _0x199370;})[_0x666e('0x24')](respondWithResult(_0xed2ed1,0xc9))[_0x666e('0x42')](handleError(_0xed2ed1,null));};exports[_0x666e('0x51')]=function(_0x5281d7,_0x2185b0){if(_0x5281d7['body']['id']){delete _0x5281d7[_0x666e('0x47')]['id'];}return db['Template'][_0x666e('0x45')]({'where':{'id':_0x5281d7[_0x666e('0x44')]['id']}})['then'](handleEntityNotFound(_0x2185b0,null))[_0x666e('0x24')](saveUpdates(_0x5281d7[_0x666e('0x47')],null))[_0x666e('0x24')](respondWithResult(_0x2185b0,null))[_0x666e('0x42')](handleError(_0x2185b0,null));};exports[_0x666e('0x25')]=function(_0x3a18ef,_0x51bf4c){return db['Template'][_0x666e('0x45')]({'where':{'id':_0x3a18ef['params']['id']}})[_0x666e('0x24')](handleEntityNotFound(_0x51bf4c,null))[_0x666e('0x24')](removeEntity(_0x51bf4c,null))[_0x666e('0x42')](handleError(_0x51bf4c,null));};