Built motion from commit ddca4d0d.|2.5.47
[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 _0x83e6=['fs-extra','lodash','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','json','offset','undefined','limit','count','set','Content-Range','apply','update','then','get','Templates','UserProfileResource','destroy','end','sendStatus','name','send','index','map','Template','rawAttributes','fieldName','key','model','query','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','filter','merge','type','options','includeAll','catch','show','params','keys','include','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','autoAssociation','eml-format','zip-dir','request-promise','moment','mustache','util','path','sox','to-csv','ejs'];(function(_0x2555dd,_0x5ed54e){var _0x33b596=function(_0x414feb){while(--_0x414feb){_0x2555dd['push'](_0x2555dd['shift']());}};_0x33b596(++_0x5ed54e);}(_0x83e6,0x96));var _0x683e=function(_0x1bf288,_0x67803e){_0x1bf288=_0x1bf288-0x0;var _0x257f24=_0x83e6[_0x1bf288];return _0x257f24;};'use strict';var emlformat=require(_0x683e('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x683e('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x683e('0x2'));var moment=require(_0x683e('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x683e('0x4'));var util=require(_0x683e('0x5'));var path=require(_0x683e('0x6'));var sox=require(_0x683e('0x7'));var csv=require(_0x683e('0x8'));var ejs=require(_0x683e('0x9'));var fs=require('fs');var fs_extra=require(_0x683e('0xa'));var _=require(_0x683e('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x683e('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x683e('0x8'));var querystring=require(_0x683e('0xd'));var Papa=require(_0x683e('0xe'));var Redis=require(_0x683e('0xf'));var authService=require(_0x683e('0x10'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x683e('0x11'));var logger=require(_0x683e('0x12'))(_0x683e('0x13'));var utils=require(_0x683e('0x14'));var config=require(_0x683e('0x15'));var licenseUtil=require(_0x683e('0x16'));var db=require(_0x683e('0x17'))['db'];function respondWithStatusCode(_0x4fa47e,_0x286761){_0x286761=_0x286761||0xcc;return function(_0x153f56){if(_0x153f56){return _0x4fa47e['sendStatus'](_0x286761);}return _0x4fa47e['status'](_0x286761)['end']();};}function respondWithResult(_0x5eeb7c,_0x3d709b){_0x3d709b=_0x3d709b||0xc8;return function(_0x18a697){if(_0x18a697){return _0x5eeb7c[_0x683e('0x18')](_0x3d709b)[_0x683e('0x19')](_0x18a697);}};}function respondWithFilteredResult(_0x212b07,_0x3e1651){return function(_0x1bf320){if(_0x1bf320){var _0x1ff3ce=typeof _0x3e1651[_0x683e('0x1a')]===_0x683e('0x1b')&&typeof _0x3e1651[_0x683e('0x1c')]==='undefined';var _0x517a4d=_0x1bf320['count'];var _0x22ebe8=_0x1ff3ce?0x0:_0x3e1651[_0x683e('0x1a')];var _0x26fe14=_0x1ff3ce?_0x1bf320[_0x683e('0x1d')]:_0x3e1651['offset']+_0x3e1651[_0x683e('0x1c')];var _0x53563c;if(_0x26fe14>=_0x517a4d){_0x26fe14=_0x517a4d;_0x53563c=0xc8;}else{_0x53563c=0xce;}_0x212b07[_0x683e('0x18')](_0x53563c);return _0x212b07[_0x683e('0x1e')](_0x683e('0x1f'),_0x22ebe8+'-'+_0x26fe14+'/'+_0x517a4d)[_0x683e('0x19')](_0x1bf320);}return null;};}function patchUpdates(_0x29a158){return function(_0x492e82){try{jsonpatch[_0x683e('0x20')](_0x492e82,_0x29a158,!![]);}catch(_0x4482e6){return BPromise['reject'](_0x4482e6);}return _0x492e82['save']();};}function saveUpdates(_0x34838d,_0x36cd1a){return function(_0x3f73cd){if(_0x3f73cd){return _0x3f73cd[_0x683e('0x21')](_0x34838d)[_0x683e('0x22')](function(_0x2a960c){return _0x2a960c;});}return null;};}function removeEntity(_0x23e179,_0x2e7a67){return function(_0x2b772b){if(_0x2b772b){return _0x2b772b['destroy']()[_0x683e('0x22')](function(){var _0x45c6b4=_0x2b772b[_0x683e('0x23')]({'plain':!![]});var _0x2d88ec=_0x683e('0x24');return db[_0x683e('0x25')][_0x683e('0x26')]({'where':{'type':_0x2d88ec,'resourceId':_0x45c6b4['id']}})[_0x683e('0x22')](function(){return _0x2b772b;});})[_0x683e('0x22')](function(){_0x23e179[_0x683e('0x18')](0xcc)[_0x683e('0x27')]();});}};}function handleEntityNotFound(_0x349bed,_0x2382e7){return function(_0x2e078c){if(!_0x2e078c){_0x349bed[_0x683e('0x28')](0x194);}return _0x2e078c;};}function handleError(_0x2863cd,_0x2ca3bb){_0x2ca3bb=_0x2ca3bb||0x1f4;return function(_0x833aac){logger['error'](_0x833aac['stack']);if(_0x833aac[_0x683e('0x29')]){delete _0x833aac[_0x683e('0x29')];}_0x2863cd[_0x683e('0x18')](_0x2ca3bb)[_0x683e('0x2a')](_0x833aac);};}exports[_0x683e('0x2b')]=function(_0xc33460,_0x5b99a4){var _0x53bd2f={},_0x5bdda0={},_0x412272={'count':0x0,'rows':[]};var _0x1bfdd7=_[_0x683e('0x2c')](db[_0x683e('0x2d')][_0x683e('0x2e')],function(_0x54de4a){return{'name':_0x54de4a[_0x683e('0x2f')],'type':_0x54de4a['type'][_0x683e('0x30')]};});_0x5bdda0[_0x683e('0x31')]=_[_0x683e('0x2c')](_0x1bfdd7,'name');_0x5bdda0[_0x683e('0x32')]=_['keys'](_0xc33460['query']);_0x5bdda0['filters']=_[_0x683e('0x33')](_0x5bdda0[_0x683e('0x31')],_0x5bdda0[_0x683e('0x32')]);_0x53bd2f['attributes']=_[_0x683e('0x33')](_0x5bdda0[_0x683e('0x31')],qs[_0x683e('0x34')](_0xc33460[_0x683e('0x32')][_0x683e('0x34')]));_0x53bd2f[_0x683e('0x35')]=_0x53bd2f[_0x683e('0x35')][_0x683e('0x36')]?_0x53bd2f[_0x683e('0x35')]:_0x5bdda0[_0x683e('0x31')];if(!_0xc33460[_0x683e('0x32')][_0x683e('0x37')](_0x683e('0x38'))){_0x53bd2f['limit']=qs[_0x683e('0x1c')](_0xc33460[_0x683e('0x32')][_0x683e('0x1c')]);_0x53bd2f[_0x683e('0x1a')]=qs[_0x683e('0x1a')](_0xc33460[_0x683e('0x32')][_0x683e('0x1a')]);}_0x53bd2f[_0x683e('0x39')]=qs[_0x683e('0x3a')](_0xc33460[_0x683e('0x32')][_0x683e('0x3a')]);_0x53bd2f[_0x683e('0x3b')]=qs[_0x683e('0x3c')](_['pick'](_0xc33460['query'],_0x5bdda0[_0x683e('0x3c')]),_0x1bfdd7);if(_0xc33460['query'][_0x683e('0x3d')]){_0x53bd2f['where']=_[_0x683e('0x3e')](_0x53bd2f[_0x683e('0x3b')],{'$or':_[_0x683e('0x2c')](_0x1bfdd7,function(_0x480690){if(_0x480690[_0x683e('0x3f')]!=='VIRTUAL'){var _0x46f859={};_0x46f859[_0x480690[_0x683e('0x29')]]={'$like':'%'+_0xc33460['query'][_0x683e('0x3d')]+'%'};return _0x46f859;}})});}_0x53bd2f=_[_0x683e('0x3e')]({},_0x53bd2f,_0xc33460[_0x683e('0x40')]);var _0x2164c7={'where':_0x53bd2f[_0x683e('0x3b')]};return db[_0x683e('0x2d')][_0x683e('0x1d')](_0x2164c7)[_0x683e('0x22')](function(_0x3278e5){_0x412272[_0x683e('0x1d')]=_0x3278e5;if(_0xc33460[_0x683e('0x32')][_0x683e('0x41')]){_0x53bd2f['include']=[{'all':!![]}];}return db[_0x683e('0x2d')]['findAll'](_0x53bd2f);})[_0x683e('0x22')](function(_0x1e5771){_0x412272['rows']=_0x1e5771;return _0x412272;})[_0x683e('0x22')](respondWithFilteredResult(_0x5b99a4,_0x53bd2f))[_0x683e('0x42')](handleError(_0x5b99a4,null));};exports[_0x683e('0x43')]=function(_0xd3d37c,_0xc150a9){var _0x401422={'raw':!![],'where':{'id':_0xd3d37c[_0x683e('0x44')]['id']}},_0x46a32f={};_0x46a32f[_0x683e('0x31')]=_['keys'](db[_0x683e('0x2d')]['rawAttributes']);_0x46a32f['query']=_[_0x683e('0x45')](_0xd3d37c[_0x683e('0x32')]);_0x46a32f[_0x683e('0x3c')]=_[_0x683e('0x33')](_0x46a32f[_0x683e('0x31')],_0x46a32f['query']);_0x401422[_0x683e('0x35')]=_[_0x683e('0x33')](_0x46a32f[_0x683e('0x31')],qs['fields'](_0xd3d37c[_0x683e('0x32')][_0x683e('0x34')]));_0x401422['attributes']=_0x401422[_0x683e('0x35')][_0x683e('0x36')]?_0x401422[_0x683e('0x35')]:_0x46a32f[_0x683e('0x31')];if(_0xd3d37c[_0x683e('0x32')]['includeAll']){_0x401422[_0x683e('0x46')]=[{'all':!![]}];}_0x401422=_[_0x683e('0x3e')]({},_0x401422,_0xd3d37c[_0x683e('0x40')]);return db['Template'][_0x683e('0x47')](_0x401422)[_0x683e('0x22')](handleEntityNotFound(_0xc150a9,null))[_0x683e('0x22')](respondWithResult(_0xc150a9,null))['catch'](handleError(_0xc150a9,null));};exports[_0x683e('0x48')]=function(_0x416ce3,_0x4b5338){return db[_0x683e('0x2d')][_0x683e('0x48')](_0x416ce3[_0x683e('0x49')],{})[_0x683e('0x22')](function(_0x590d1f){var _0x540d71=_0x416ce3['user'][_0x683e('0x23')]({'plain':!![]});if(!_0x540d71)throw new Error(_0x683e('0x4a'));if(_0x540d71[_0x683e('0x4b')]===_0x683e('0x4c')){var _0xae4c82=_0x590d1f[_0x683e('0x23')]({'plain':!![]});var _0x285002=_0x683e('0x24');return db[_0x683e('0x4d')][_0x683e('0x47')]({'where':{'name':_0x285002,'userProfileId':_0x540d71[_0x683e('0x4e')]},'raw':!![]})['then'](function(_0x3380cb){if(_0x3380cb&&_0x3380cb[_0x683e('0x4f')]===0x0){return db[_0x683e('0x25')][_0x683e('0x48')]({'name':_0xae4c82['name'],'resourceId':_0xae4c82['id'],'type':_0x3380cb[_0x683e('0x29')],'sectionId':_0x3380cb['id']},{})[_0x683e('0x22')](function(){return _0x590d1f;});}else{return _0x590d1f;}})['catch'](function(_0x401e57){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x401e57);throw _0x401e57;});}return _0x590d1f;})['then'](respondWithResult(_0x4b5338,0xc9))[_0x683e('0x42')](handleError(_0x4b5338,null));};exports[_0x683e('0x21')]=function(_0x4d1beb,_0x1b4cc1){if(_0x4d1beb[_0x683e('0x49')]['id']){delete _0x4d1beb[_0x683e('0x49')]['id'];}return db[_0x683e('0x2d')][_0x683e('0x47')]({'where':{'id':_0x4d1beb[_0x683e('0x44')]['id']}})['then'](handleEntityNotFound(_0x1b4cc1,null))[_0x683e('0x22')](saveUpdates(_0x4d1beb[_0x683e('0x49')],null))[_0x683e('0x22')](respondWithResult(_0x1b4cc1,null))[_0x683e('0x42')](handleError(_0x1b4cc1,null));};exports['destroy']=function(_0x9d5e41,_0x1b0bfd){return db[_0x683e('0x2d')][_0x683e('0x47')]({'where':{'id':_0x9d5e41[_0x683e('0x44')]['id']}})[_0x683e('0x22')](handleEntityNotFound(_0x1b0bfd,null))[_0x683e('0x22')](removeEntity(_0x1b0bfd,null))[_0x683e('0x42')](handleError(_0x1b0bfd,null));};