ba5160cff9f9ec9ada110e482aacb5577289e8ea
[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 _0x19b2=['eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','offset','count','save','update','then','destroy','get','stack','name','index','Template','rawAttributes','fieldName','type','key','map','query','keys','intersection','model','attributes','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','show','params','filters','fields','length','find','create','role','user','Templates','UserProfileSection','userProfileId','UserProfileResource','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body'];(function(_0x138676,_0x27a8d5){var _0xf72f74=function(_0xc6036a){while(--_0xc6036a){_0x138676['push'](_0x138676['shift']());}};_0xf72f74(++_0x27a8d5);}(_0x19b2,0x15c));var _0x219b=function(_0x4a1843,_0x1884bc){_0x4a1843=_0x4a1843-0x0;var _0x2dfbc4=_0x19b2[_0x4a1843];return _0x2dfbc4;};'use strict';var emlformat=require(_0x219b('0x0'));var rimraf=require(_0x219b('0x1'));var zipdir=require(_0x219b('0x2'));var jsonpatch=require(_0x219b('0x3'));var rp=require(_0x219b('0x4'));var moment=require(_0x219b('0x5'));var BPromise=require(_0x219b('0x6'));var Mustache=require(_0x219b('0x7'));var util=require(_0x219b('0x8'));var path=require('path');var sox=require(_0x219b('0x9'));var csv=require(_0x219b('0xa'));var ejs=require(_0x219b('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x219b('0xc'));var squel=require(_0x219b('0xd'));var crypto=require(_0x219b('0xe'));var jsforce=require(_0x219b('0xf'));var deskjs=require(_0x219b('0x10'));var toCsv=require(_0x219b('0xa'));var querystring=require(_0x219b('0x11'));var Papa=require(_0x219b('0x12'));var Redis=require(_0x219b('0x13'));var authService=require(_0x219b('0x14'));var qs=require(_0x219b('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x219b('0x16'));var logger=require(_0x219b('0x17'))(_0x219b('0x18'));var utils=require(_0x219b('0x19'));var config=require(_0x219b('0x1a'));var licenseUtil=require(_0x219b('0x1b'));var db=require(_0x219b('0x1c'))['db'];function respondWithStatusCode(_0x2c429d,_0x32a6a9){_0x32a6a9=_0x32a6a9||0xcc;return function(_0x30d4a7){if(_0x30d4a7){return _0x2c429d[_0x219b('0x1d')](_0x32a6a9);}return _0x2c429d[_0x219b('0x1e')](_0x32a6a9)[_0x219b('0x1f')]();};}function respondWithResult(_0x10e80a,_0x5b802d){_0x5b802d=_0x5b802d||0xc8;return function(_0x17a238){if(_0x17a238){return _0x10e80a[_0x219b('0x1e')](_0x5b802d)[_0x219b('0x20')](_0x17a238);}};}function respondWithFilteredResult(_0xa50a08,_0x5138a4){return function(_0x2789f4){if(_0x2789f4){var _0xb72510=typeof _0x5138a4['offset']===_0x219b('0x21')&&typeof _0x5138a4[_0x219b('0x22')]===_0x219b('0x21');var _0x496a7e=_0x2789f4['count'];var _0x187aa9=_0xb72510?0x0:_0x5138a4[_0x219b('0x23')];var _0x367756=_0xb72510?_0x2789f4[_0x219b('0x24')]:_0x5138a4[_0x219b('0x23')]+_0x5138a4[_0x219b('0x22')];var _0x25b580;if(_0x367756>=_0x496a7e){_0x367756=_0x496a7e;_0x25b580=0xc8;}else{_0x25b580=0xce;}_0xa50a08['status'](_0x25b580);return _0xa50a08['set']('Content-Range',_0x187aa9+'-'+_0x367756+'/'+_0x496a7e)['json'](_0x2789f4);}return null;};}function patchUpdates(_0x2248d5){return function(_0x506320){try{jsonpatch['apply'](_0x506320,_0x2248d5,!![]);}catch(_0x4adcf2){return BPromise['reject'](_0x4adcf2);}return _0x506320[_0x219b('0x25')]();};}function saveUpdates(_0x2d4fec,_0x855fe1){return function(_0x5b82b6){if(_0x5b82b6){return _0x5b82b6[_0x219b('0x26')](_0x2d4fec)[_0x219b('0x27')](function(_0x2f919e){return _0x2f919e;});}return null;};}function removeEntity(_0x4685e8,_0x5e1afe){return function(_0x488d00){if(_0x488d00){return _0x488d00[_0x219b('0x28')]()['then'](function(){var _0x42b12f=_0x488d00[_0x219b('0x29')]({'plain':!![]});var _0x21ce32='Templates';return db['UserProfileResource']['destroy']({'where':{'type':_0x21ce32,'resourceId':_0x42b12f['id']}})[_0x219b('0x27')](function(){return _0x488d00;});})[_0x219b('0x27')](function(){_0x4685e8[_0x219b('0x1e')](0xcc)[_0x219b('0x1f')]();});}};}function handleEntityNotFound(_0x67a094,_0x2efc15){return function(_0x1eb9d8){if(!_0x1eb9d8){_0x67a094[_0x219b('0x1d')](0x194);}return _0x1eb9d8;};}function handleError(_0x560914,_0x580967){_0x580967=_0x580967||0x1f4;return function(_0xcc4769){logger['error'](_0xcc4769[_0x219b('0x2a')]);if(_0xcc4769[_0x219b('0x2b')]){delete _0xcc4769['name'];}_0x560914[_0x219b('0x1e')](_0x580967)['send'](_0xcc4769);};}exports[_0x219b('0x2c')]=function(_0x25c0d0,_0x2e3cb0){var _0x2c9c74={},_0x4fea97={},_0x12c164={'count':0x0,'rows':[]};var _0x4bb814=_['map'](db[_0x219b('0x2d')][_0x219b('0x2e')],function(_0xb559ab){return{'name':_0xb559ab[_0x219b('0x2f')],'type':_0xb559ab[_0x219b('0x30')][_0x219b('0x31')]};});_0x4fea97['model']=_[_0x219b('0x32')](_0x4bb814,'name');_0x4fea97[_0x219b('0x33')]=_[_0x219b('0x34')](_0x25c0d0['query']);_0x4fea97['filters']=_[_0x219b('0x35')](_0x4fea97[_0x219b('0x36')],_0x4fea97['query']);_0x2c9c74[_0x219b('0x37')]=_[_0x219b('0x35')](_0x4fea97[_0x219b('0x36')],qs['fields'](_0x25c0d0['query']['fields']));_0x2c9c74[_0x219b('0x37')]=_0x2c9c74[_0x219b('0x37')]['length']?_0x2c9c74[_0x219b('0x37')]:_0x4fea97[_0x219b('0x36')];if(!_0x25c0d0[_0x219b('0x33')][_0x219b('0x38')](_0x219b('0x39'))){_0x2c9c74[_0x219b('0x22')]=qs[_0x219b('0x22')](_0x25c0d0[_0x219b('0x33')][_0x219b('0x22')]);_0x2c9c74['offset']=qs[_0x219b('0x23')](_0x25c0d0[_0x219b('0x33')]['offset']);}_0x2c9c74[_0x219b('0x3a')]=qs[_0x219b('0x3b')](_0x25c0d0['query'][_0x219b('0x3b')]);_0x2c9c74[_0x219b('0x3c')]=qs['filters'](_[_0x219b('0x3d')](_0x25c0d0[_0x219b('0x33')],_0x4fea97['filters']),_0x4bb814);if(_0x25c0d0[_0x219b('0x33')]['filter']){_0x2c9c74['where']=_[_0x219b('0x3e')](_0x2c9c74[_0x219b('0x3c')],{'$or':_[_0x219b('0x32')](_0x4bb814,function(_0x3c4e67){if(_0x3c4e67[_0x219b('0x30')]!==_0x219b('0x3f')){var _0x1c43fb={};_0x1c43fb[_0x3c4e67[_0x219b('0x2b')]]={'$like':'%'+_0x25c0d0[_0x219b('0x33')][_0x219b('0x40')]+'%'};return _0x1c43fb;}})});}_0x2c9c74=_[_0x219b('0x3e')]({},_0x2c9c74,_0x25c0d0[_0x219b('0x41')]);var _0x1d5d20={'where':_0x2c9c74[_0x219b('0x3c')]};return db['Template']['count'](_0x1d5d20)[_0x219b('0x27')](function(_0x10b437){_0x12c164[_0x219b('0x24')]=_0x10b437;if(_0x25c0d0['query'][_0x219b('0x42')]){_0x2c9c74[_0x219b('0x43')]=[{'all':!![]}];}return db[_0x219b('0x2d')][_0x219b('0x44')](_0x2c9c74);})[_0x219b('0x27')](function(_0x2a963b){_0x12c164[_0x219b('0x45')]=_0x2a963b;return _0x12c164;})['then'](respondWithFilteredResult(_0x2e3cb0,_0x2c9c74))[_0x219b('0x46')](handleError(_0x2e3cb0,null));};exports[_0x219b('0x47')]=function(_0x3afd24,_0x756717){var _0xb4219={'raw':!![],'where':{'id':_0x3afd24[_0x219b('0x48')]['id']}},_0x4ffa3c={};_0x4ffa3c[_0x219b('0x36')]=_[_0x219b('0x34')](db['Template'][_0x219b('0x2e')]);_0x4ffa3c['query']=_[_0x219b('0x34')](_0x3afd24[_0x219b('0x33')]);_0x4ffa3c[_0x219b('0x49')]=_['intersection'](_0x4ffa3c[_0x219b('0x36')],_0x4ffa3c[_0x219b('0x33')]);_0xb4219[_0x219b('0x37')]=_[_0x219b('0x35')](_0x4ffa3c[_0x219b('0x36')],qs[_0x219b('0x4a')](_0x3afd24['query'][_0x219b('0x4a')]));_0xb4219['attributes']=_0xb4219['attributes'][_0x219b('0x4b')]?_0xb4219['attributes']:_0x4ffa3c[_0x219b('0x36')];if(_0x3afd24['query'][_0x219b('0x42')]){_0xb4219[_0x219b('0x43')]=[{'all':!![]}];}_0xb4219=_[_0x219b('0x3e')]({},_0xb4219,_0x3afd24[_0x219b('0x41')]);return db['Template'][_0x219b('0x4c')](_0xb4219)[_0x219b('0x27')](handleEntityNotFound(_0x756717,null))[_0x219b('0x27')](respondWithResult(_0x756717,null))[_0x219b('0x46')](handleError(_0x756717,null));};exports[_0x219b('0x4d')]=function(_0x4e50f9,_0x5be813){return db[_0x219b('0x2d')][_0x219b('0x4d')](_0x4e50f9['body'],{})[_0x219b('0x27')](function(_0x22936f){var _0x2d92fc=_0x4e50f9['user']['get']({'plain':!![]});if(!_0x2d92fc)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x2d92fc[_0x219b('0x4e')]===_0x219b('0x4f')){var _0x408021=_0x22936f[_0x219b('0x29')]({'plain':!![]});var _0x26e5d9=_0x219b('0x50');return db[_0x219b('0x51')][_0x219b('0x4c')]({'where':{'name':_0x26e5d9,'userProfileId':_0x2d92fc[_0x219b('0x52')]},'raw':!![]})['then'](function(_0x24d164){if(_0x24d164&&_0x24d164['autoAssociation']===0x0){return db[_0x219b('0x53')][_0x219b('0x4d')]({'name':_0x408021[_0x219b('0x2b')],'resourceId':_0x408021['id'],'type':_0x24d164['name'],'sectionId':_0x24d164['id']},{})[_0x219b('0x27')](function(){return _0x22936f;});}else{return _0x22936f;}})[_0x219b('0x46')](function(_0x408955){logger[_0x219b('0x54')](_0x219b('0x55'),_0x408955);throw _0x408955;});}return _0x22936f;})[_0x219b('0x27')](respondWithResult(_0x5be813,0xc9))[_0x219b('0x46')](handleError(_0x5be813,null));};exports[_0x219b('0x26')]=function(_0x1f802f,_0x42425d){if(_0x1f802f[_0x219b('0x56')]['id']){delete _0x1f802f[_0x219b('0x56')]['id'];}return db[_0x219b('0x2d')][_0x219b('0x4c')]({'where':{'id':_0x1f802f[_0x219b('0x48')]['id']}})['then'](handleEntityNotFound(_0x42425d,null))[_0x219b('0x27')](saveUpdates(_0x1f802f[_0x219b('0x56')],null))[_0x219b('0x27')](respondWithResult(_0x42425d,null))[_0x219b('0x46')](handleError(_0x42425d,null));};exports[_0x219b('0x28')]=function(_0x2e97ec,_0x2fb207){return db[_0x219b('0x2d')][_0x219b('0x4c')]({'where':{'id':_0x2e97ec[_0x219b('0x48')]['id']}})[_0x219b('0x27')](handleEntityNotFound(_0x2fb207,null))['then'](removeEntity(_0x2fb207,null))[_0x219b('0x46')](handleError(_0x2fb207,null));};