Built motion from commit 85328c08.|2.5.50
[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 _0xae08=['ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','offset','undefined','count','limit','set','json','apply','reject','save','update','then','destroy','get','Templates','UserProfileResource','name','index','map','Template','fieldName','type','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','pick','where','VIRTUAL','filter','merge','options','include','findAll','rows','catch','params','includeAll','find','create','body','user','userProfileId','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','desk.js','querystring','papaparse'];(function(_0x411017,_0x4a8117){var _0x2adeea=function(_0x545222){while(--_0x545222){_0x411017['push'](_0x411017['shift']());}};_0x2adeea(++_0x4a8117);}(_0xae08,0x180));var _0x8ae0=function(_0xae6216,_0xb90fa0){_0xae6216=_0xae6216-0x0;var _0x2472ea=_0xae08[_0xae6216];return _0x2472ea;};'use strict';var emlformat=require(_0x8ae0('0x0'));var rimraf=require(_0x8ae0('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x8ae0('0x2'));var moment=require('moment');var BPromise=require(_0x8ae0('0x3'));var Mustache=require(_0x8ae0('0x4'));var util=require(_0x8ae0('0x5'));var path=require(_0x8ae0('0x6'));var sox=require(_0x8ae0('0x7'));var csv=require(_0x8ae0('0x8'));var ejs=require(_0x8ae0('0x9'));var fs=require('fs');var fs_extra=require(_0x8ae0('0xa'));var _=require(_0x8ae0('0xb'));var squel=require(_0x8ae0('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x8ae0('0xd'));var toCsv=require('to-csv');var querystring=require(_0x8ae0('0xe'));var Papa=require(_0x8ae0('0xf'));var Redis=require(_0x8ae0('0x10'));var authService=require(_0x8ae0('0x11'));var qs=require(_0x8ae0('0x12'));var as=require(_0x8ae0('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8ae0('0x14'))(_0x8ae0('0x15'));var utils=require('../../config/utils');var config=require(_0x8ae0('0x16'));var licenseUtil=require(_0x8ae0('0x17'));var db=require(_0x8ae0('0x18'))['db'];function respondWithStatusCode(_0x176d61,_0x4873d1){_0x4873d1=_0x4873d1||0xcc;return function(_0x4457b4){if(_0x4457b4){return _0x176d61[_0x8ae0('0x19')](_0x4873d1);}return _0x176d61[_0x8ae0('0x1a')](_0x4873d1)['end']();};}function respondWithResult(_0x1e73d0,_0x3c479a){_0x3c479a=_0x3c479a||0xc8;return function(_0x2fc764){if(_0x2fc764){return _0x1e73d0['status'](_0x3c479a)['json'](_0x2fc764);}};}function respondWithFilteredResult(_0x3ede19,_0x33ce7c){return function(_0x3e45e2){if(_0x3e45e2){var _0x2e3846=typeof _0x33ce7c[_0x8ae0('0x1b')]===_0x8ae0('0x1c')&&typeof _0x33ce7c['limit']===_0x8ae0('0x1c');var _0x2fe459=_0x3e45e2['count'];var _0x3a4b34=_0x2e3846?0x0:_0x33ce7c[_0x8ae0('0x1b')];var _0x38a288=_0x2e3846?_0x3e45e2[_0x8ae0('0x1d')]:_0x33ce7c[_0x8ae0('0x1b')]+_0x33ce7c[_0x8ae0('0x1e')];var _0x474efd;if(_0x38a288>=_0x2fe459){_0x38a288=_0x2fe459;_0x474efd=0xc8;}else{_0x474efd=0xce;}_0x3ede19[_0x8ae0('0x1a')](_0x474efd);return _0x3ede19[_0x8ae0('0x1f')]('Content-Range',_0x3a4b34+'-'+_0x38a288+'/'+_0x2fe459)[_0x8ae0('0x20')](_0x3e45e2);}return null;};}function patchUpdates(_0x37a31c){return function(_0x12c8e4){try{jsonpatch[_0x8ae0('0x21')](_0x12c8e4,_0x37a31c,!![]);}catch(_0x28a380){return BPromise[_0x8ae0('0x22')](_0x28a380);}return _0x12c8e4[_0x8ae0('0x23')]();};}function saveUpdates(_0x9d6c89,_0x351ec){return function(_0x1d9f52){if(_0x1d9f52){return _0x1d9f52[_0x8ae0('0x24')](_0x9d6c89)[_0x8ae0('0x25')](function(_0x25a79e){return _0x25a79e;});}return null;};}function removeEntity(_0x537218,_0x5e86c4){return function(_0x2263b9){if(_0x2263b9){return _0x2263b9[_0x8ae0('0x26')]()[_0x8ae0('0x25')](function(){var _0x316c66=_0x2263b9[_0x8ae0('0x27')]({'plain':!![]});var _0x1f80cb=_0x8ae0('0x28');return db[_0x8ae0('0x29')][_0x8ae0('0x26')]({'where':{'type':_0x1f80cb,'resourceId':_0x316c66['id']}})[_0x8ae0('0x25')](function(){return _0x2263b9;});})['then'](function(){_0x537218[_0x8ae0('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x558941,_0x1a80a7){return function(_0x341c6c){if(!_0x341c6c){_0x558941[_0x8ae0('0x19')](0x194);}return _0x341c6c;};}function handleError(_0x4fe0d1,_0x51076f){_0x51076f=_0x51076f||0x1f4;return function(_0x13b88f){logger['error'](_0x13b88f['stack']);if(_0x13b88f[_0x8ae0('0x2a')]){delete _0x13b88f[_0x8ae0('0x2a')];}_0x4fe0d1[_0x8ae0('0x1a')](_0x51076f)['send'](_0x13b88f);};}exports[_0x8ae0('0x2b')]=function(_0x239754,_0x45338e){var _0x266b6e={},_0x22b24d={},_0x4538bc={'count':0x0,'rows':[]};var _0x28d733=_[_0x8ae0('0x2c')](db[_0x8ae0('0x2d')]['rawAttributes'],function(_0xdd6f6d){return{'name':_0xdd6f6d[_0x8ae0('0x2e')],'type':_0xdd6f6d[_0x8ae0('0x2f')][_0x8ae0('0x30')]};});_0x22b24d[_0x8ae0('0x31')]=_['map'](_0x28d733,_0x8ae0('0x2a'));_0x22b24d[_0x8ae0('0x32')]=_[_0x8ae0('0x33')](_0x239754['query']);_0x22b24d[_0x8ae0('0x34')]=_['intersection'](_0x22b24d[_0x8ae0('0x31')],_0x22b24d[_0x8ae0('0x32')]);_0x266b6e[_0x8ae0('0x35')]=_[_0x8ae0('0x36')](_0x22b24d['model'],qs[_0x8ae0('0x37')](_0x239754[_0x8ae0('0x32')][_0x8ae0('0x37')]));_0x266b6e[_0x8ae0('0x35')]=_0x266b6e[_0x8ae0('0x35')][_0x8ae0('0x38')]?_0x266b6e[_0x8ae0('0x35')]:_0x22b24d[_0x8ae0('0x31')];if(!_0x239754['query'][_0x8ae0('0x39')](_0x8ae0('0x3a'))){_0x266b6e[_0x8ae0('0x1e')]=qs[_0x8ae0('0x1e')](_0x239754[_0x8ae0('0x32')][_0x8ae0('0x1e')]);_0x266b6e[_0x8ae0('0x1b')]=qs[_0x8ae0('0x1b')](_0x239754[_0x8ae0('0x32')][_0x8ae0('0x1b')]);}_0x266b6e[_0x8ae0('0x3b')]=qs[_0x8ae0('0x3c')](_0x239754[_0x8ae0('0x32')]['sort']);_0x266b6e['where']=qs[_0x8ae0('0x34')](_[_0x8ae0('0x3d')](_0x239754[_0x8ae0('0x32')],_0x22b24d['filters']),_0x28d733);if(_0x239754[_0x8ae0('0x32')]['filter']){_0x266b6e[_0x8ae0('0x3e')]=_['merge'](_0x266b6e[_0x8ae0('0x3e')],{'$or':_['map'](_0x28d733,function(_0x586e13){if(_0x586e13[_0x8ae0('0x2f')]!==_0x8ae0('0x3f')){var _0x4c5dc9={};_0x4c5dc9[_0x586e13[_0x8ae0('0x2a')]]={'$like':'%'+_0x239754['query'][_0x8ae0('0x40')]+'%'};return _0x4c5dc9;}})});}_0x266b6e=_[_0x8ae0('0x41')]({},_0x266b6e,_0x239754[_0x8ae0('0x42')]);var _0x304e5b={'where':_0x266b6e['where']};return db[_0x8ae0('0x2d')][_0x8ae0('0x1d')](_0x304e5b)[_0x8ae0('0x25')](function(_0x35e2d7){_0x4538bc[_0x8ae0('0x1d')]=_0x35e2d7;if(_0x239754[_0x8ae0('0x32')]['includeAll']){_0x266b6e[_0x8ae0('0x43')]=[{'all':!![]}];}return db[_0x8ae0('0x2d')][_0x8ae0('0x44')](_0x266b6e);})[_0x8ae0('0x25')](function(_0x55e86e){_0x4538bc[_0x8ae0('0x45')]=_0x55e86e;return _0x4538bc;})['then'](respondWithFilteredResult(_0x45338e,_0x266b6e))[_0x8ae0('0x46')](handleError(_0x45338e,null));};exports['show']=function(_0x9bd262,_0x52c5a8){var _0x50f589={'raw':!![],'where':{'id':_0x9bd262[_0x8ae0('0x47')]['id']}},_0xee1359={};_0xee1359[_0x8ae0('0x31')]=_[_0x8ae0('0x33')](db[_0x8ae0('0x2d')]['rawAttributes']);_0xee1359['query']=_[_0x8ae0('0x33')](_0x9bd262[_0x8ae0('0x32')]);_0xee1359[_0x8ae0('0x34')]=_[_0x8ae0('0x36')](_0xee1359['model'],_0xee1359['query']);_0x50f589[_0x8ae0('0x35')]=_[_0x8ae0('0x36')](_0xee1359['model'],qs[_0x8ae0('0x37')](_0x9bd262[_0x8ae0('0x32')]['fields']));_0x50f589[_0x8ae0('0x35')]=_0x50f589[_0x8ae0('0x35')]['length']?_0x50f589[_0x8ae0('0x35')]:_0xee1359[_0x8ae0('0x31')];if(_0x9bd262[_0x8ae0('0x32')][_0x8ae0('0x48')]){_0x50f589[_0x8ae0('0x43')]=[{'all':!![]}];}_0x50f589=_[_0x8ae0('0x41')]({},_0x50f589,_0x9bd262[_0x8ae0('0x42')]);return db[_0x8ae0('0x2d')][_0x8ae0('0x49')](_0x50f589)[_0x8ae0('0x25')](handleEntityNotFound(_0x52c5a8,null))[_0x8ae0('0x25')](respondWithResult(_0x52c5a8,null))[_0x8ae0('0x46')](handleError(_0x52c5a8,null));};exports[_0x8ae0('0x4a')]=function(_0x3545a2,_0x33675f){return db['Template'][_0x8ae0('0x4a')](_0x3545a2[_0x8ae0('0x4b')],{})['then'](function(_0x4a81a0){var _0x1e8ed4=_0x3545a2[_0x8ae0('0x4c')][_0x8ae0('0x27')]({'plain':!![]});if(!_0x1e8ed4)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1e8ed4['role']===_0x8ae0('0x4c')){var _0x40f924=_0x4a81a0[_0x8ae0('0x27')]({'plain':!![]});var _0x2ce611=_0x8ae0('0x28');return db['UserProfileSection'][_0x8ae0('0x49')]({'where':{'name':_0x2ce611,'userProfileId':_0x1e8ed4[_0x8ae0('0x4d')]},'raw':!![]})[_0x8ae0('0x25')](function(_0x25dc76){if(_0x25dc76&&_0x25dc76['autoAssociation']===0x0){return db['UserProfileResource'][_0x8ae0('0x4a')]({'name':_0x40f924[_0x8ae0('0x2a')],'resourceId':_0x40f924['id'],'type':_0x25dc76['name'],'sectionId':_0x25dc76['id']},{})[_0x8ae0('0x25')](function(){return _0x4a81a0;});}else{return _0x4a81a0;}})['catch'](function(_0x593bd5){logger[_0x8ae0('0x4e')](_0x8ae0('0x4f'),_0x593bd5);throw _0x593bd5;});}return _0x4a81a0;})[_0x8ae0('0x25')](respondWithResult(_0x33675f,0xc9))['catch'](handleError(_0x33675f,null));};exports[_0x8ae0('0x24')]=function(_0x3cf7d5,_0x49286a){if(_0x3cf7d5['body']['id']){delete _0x3cf7d5[_0x8ae0('0x4b')]['id'];}return db['Template']['find']({'where':{'id':_0x3cf7d5['params']['id']}})[_0x8ae0('0x25')](handleEntityNotFound(_0x49286a,null))[_0x8ae0('0x25')](saveUpdates(_0x3cf7d5[_0x8ae0('0x4b')],null))[_0x8ae0('0x25')](respondWithResult(_0x49286a,null))[_0x8ae0('0x46')](handleError(_0x49286a,null));};exports[_0x8ae0('0x26')]=function(_0x12ce98,_0x53755d){return db['Template']['find']({'where':{'id':_0x12ce98[_0x8ae0('0x47')]['id']}})[_0x8ae0('0x25')](handleEntityNotFound(_0x53755d,null))['then'](removeEntity(_0x53755d,null))[_0x8ae0('0x46')](handleError(_0x53755d,null));};