5d29d3b81ab0d8a8d789dbec971c45161906b0ca
[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 _0x32fa=['query','keys','filters','attributes','intersection','fields','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','Template','include','findAll','rows','catch','show','params','includeAll','options','create','body','user','role','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','reject','save','update','then','destroy','get','UserProfileResource','error','stack','name','send','map','rawAttributes','fieldName','type','key','model'];(function(_0x599505,_0x55ab74){var _0x13bebf=function(_0x1e175d){while(--_0x1e175d){_0x599505['push'](_0x599505['shift']());}};_0x13bebf(++_0x55ab74);}(_0x32fa,0xbe));var _0xa32f=function(_0xc7c3fd,_0x193406){_0xc7c3fd=_0xc7c3fd-0x0;var _0x461c56=_0x32fa[_0xc7c3fd];return _0x461c56;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xa32f('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xa32f('0x1'));var rp=require(_0xa32f('0x2'));var moment=require('moment');var BPromise=require(_0xa32f('0x3'));var Mustache=require(_0xa32f('0x4'));var util=require(_0xa32f('0x5'));var path=require(_0xa32f('0x6'));var sox=require('sox');var csv=require(_0xa32f('0x7'));var ejs=require(_0xa32f('0x8'));var fs=require('fs');var fs_extra=require(_0xa32f('0x9'));var _=require(_0xa32f('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xa32f('0xb'));var deskjs=require(_0xa32f('0xc'));var toCsv=require(_0xa32f('0x7'));var querystring=require('querystring');var Papa=require(_0xa32f('0xd'));var Redis=require(_0xa32f('0xe'));var authService=require(_0xa32f('0xf'));var qs=require(_0xa32f('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xa32f('0x11'));var logger=require(_0xa32f('0x12'))(_0xa32f('0x13'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xa32f('0x14'))['db'];function respondWithStatusCode(_0xb125de,_0x205120){_0x205120=_0x205120||0xcc;return function(_0x20c86e){if(_0x20c86e){return _0xb125de[_0xa32f('0x15')](_0x205120);}return _0xb125de[_0xa32f('0x16')](_0x205120)[_0xa32f('0x17')]();};}function respondWithResult(_0xaa4a7e,_0x20e31b){_0x20e31b=_0x20e31b||0xc8;return function(_0x3c5dd5){if(_0x3c5dd5){return _0xaa4a7e[_0xa32f('0x16')](_0x20e31b)[_0xa32f('0x18')](_0x3c5dd5);}};}function respondWithFilteredResult(_0x1199ce,_0xbf1ab3){return function(_0x54215f){if(_0x54215f){var _0x2ca7f7=typeof _0xbf1ab3[_0xa32f('0x19')]===_0xa32f('0x1a')&&typeof _0xbf1ab3[_0xa32f('0x1b')]===_0xa32f('0x1a');var _0x220227=_0x54215f[_0xa32f('0x1c')];var _0x4d80bc=_0x2ca7f7?0x0:_0xbf1ab3[_0xa32f('0x19')];var _0x485681=_0x2ca7f7?_0x54215f[_0xa32f('0x1c')]:_0xbf1ab3[_0xa32f('0x19')]+_0xbf1ab3[_0xa32f('0x1b')];var _0x20f36d;if(_0x485681>=_0x220227){_0x485681=_0x220227;_0x20f36d=0xc8;}else{_0x20f36d=0xce;}_0x1199ce[_0xa32f('0x16')](_0x20f36d);return _0x1199ce['set'](_0xa32f('0x1d'),_0x4d80bc+'-'+_0x485681+'/'+_0x220227)['json'](_0x54215f);}return null;};}function patchUpdates(_0x9b9c31){return function(_0x510d58){try{jsonpatch['apply'](_0x510d58,_0x9b9c31,!![]);}catch(_0x2af50b){return BPromise[_0xa32f('0x1e')](_0x2af50b);}return _0x510d58[_0xa32f('0x1f')]();};}function saveUpdates(_0x5ac118,_0x40e71c){return function(_0x46fb1d){if(_0x46fb1d){return _0x46fb1d[_0xa32f('0x20')](_0x5ac118)[_0xa32f('0x21')](function(_0x27b0df){return _0x27b0df;});}return null;};}function removeEntity(_0x207f6a,_0x24b65b){return function(_0x25e8c9){if(_0x25e8c9){return _0x25e8c9[_0xa32f('0x22')]()['then'](function(){var _0x4f43c3=_0x25e8c9[_0xa32f('0x23')]({'plain':!![]});var _0x4d7cda='Templates';return db[_0xa32f('0x24')]['destroy']({'where':{'type':_0x4d7cda,'resourceId':_0x4f43c3['id']}})[_0xa32f('0x21')](function(){return _0x25e8c9;});})['then'](function(){_0x207f6a[_0xa32f('0x16')](0xcc)[_0xa32f('0x17')]();});}};}function handleEntityNotFound(_0xc9ab58,_0x5353e0){return function(_0x4d1583){if(!_0x4d1583){_0xc9ab58[_0xa32f('0x15')](0x194);}return _0x4d1583;};}function handleError(_0x4e8305,_0x31e1fd){_0x31e1fd=_0x31e1fd||0x1f4;return function(_0x184835){logger[_0xa32f('0x25')](_0x184835[_0xa32f('0x26')]);if(_0x184835[_0xa32f('0x27')]){delete _0x184835[_0xa32f('0x27')];}_0x4e8305[_0xa32f('0x16')](_0x31e1fd)[_0xa32f('0x28')](_0x184835);};}exports['index']=function(_0x808323,_0x4ec484){var _0x1f9beb={},_0x5d9bf2={},_0x36ad43={'count':0x0,'rows':[]};var _0x35a0f4=_[_0xa32f('0x29')](db['Template'][_0xa32f('0x2a')],function(_0x19b84e){return{'name':_0x19b84e[_0xa32f('0x2b')],'type':_0x19b84e[_0xa32f('0x2c')][_0xa32f('0x2d')]};});_0x5d9bf2[_0xa32f('0x2e')]=_[_0xa32f('0x29')](_0x35a0f4,'name');_0x5d9bf2[_0xa32f('0x2f')]=_[_0xa32f('0x30')](_0x808323['query']);_0x5d9bf2[_0xa32f('0x31')]=_['intersection'](_0x5d9bf2[_0xa32f('0x2e')],_0x5d9bf2['query']);_0x1f9beb[_0xa32f('0x32')]=_[_0xa32f('0x33')](_0x5d9bf2[_0xa32f('0x2e')],qs[_0xa32f('0x34')](_0x808323[_0xa32f('0x2f')][_0xa32f('0x34')]));_0x1f9beb[_0xa32f('0x32')]=_0x1f9beb[_0xa32f('0x32')][_0xa32f('0x35')]?_0x1f9beb[_0xa32f('0x32')]:_0x5d9bf2[_0xa32f('0x2e')];if(!_0x808323[_0xa32f('0x2f')]['hasOwnProperty'](_0xa32f('0x36'))){_0x1f9beb[_0xa32f('0x1b')]=qs[_0xa32f('0x1b')](_0x808323[_0xa32f('0x2f')][_0xa32f('0x1b')]);_0x1f9beb['offset']=qs[_0xa32f('0x19')](_0x808323[_0xa32f('0x2f')][_0xa32f('0x19')]);}_0x1f9beb[_0xa32f('0x37')]=qs['sort'](_0x808323[_0xa32f('0x2f')][_0xa32f('0x38')]);_0x1f9beb[_0xa32f('0x39')]=qs[_0xa32f('0x31')](_[_0xa32f('0x3a')](_0x808323[_0xa32f('0x2f')],_0x5d9bf2[_0xa32f('0x31')]),_0x35a0f4);if(_0x808323[_0xa32f('0x2f')][_0xa32f('0x3b')]){_0x1f9beb['where']=_[_0xa32f('0x3c')](_0x1f9beb[_0xa32f('0x39')],{'$or':_[_0xa32f('0x29')](_0x35a0f4,function(_0x430b3b){if(_0x430b3b['type']!==_0xa32f('0x3d')){var _0x280c83={};_0x280c83[_0x430b3b[_0xa32f('0x27')]]={'$like':'%'+_0x808323[_0xa32f('0x2f')][_0xa32f('0x3b')]+'%'};return _0x280c83;}})});}_0x1f9beb=_[_0xa32f('0x3c')]({},_0x1f9beb,_0x808323['options']);var _0x4789b1={'where':_0x1f9beb['where']};return db[_0xa32f('0x3e')][_0xa32f('0x1c')](_0x4789b1)['then'](function(_0x324de7){_0x36ad43['count']=_0x324de7;if(_0x808323[_0xa32f('0x2f')]['includeAll']){_0x1f9beb[_0xa32f('0x3f')]=[{'all':!![]}];}return db[_0xa32f('0x3e')][_0xa32f('0x40')](_0x1f9beb);})[_0xa32f('0x21')](function(_0x1bb1e6){_0x36ad43[_0xa32f('0x41')]=_0x1bb1e6;return _0x36ad43;})[_0xa32f('0x21')](respondWithFilteredResult(_0x4ec484,_0x1f9beb))[_0xa32f('0x42')](handleError(_0x4ec484,null));};exports[_0xa32f('0x43')]=function(_0x20d8cf,_0x4a390f){var _0x37d3cd={'raw':!![],'where':{'id':_0x20d8cf[_0xa32f('0x44')]['id']}},_0x3ba670={};_0x3ba670[_0xa32f('0x2e')]=_[_0xa32f('0x30')](db[_0xa32f('0x3e')][_0xa32f('0x2a')]);_0x3ba670[_0xa32f('0x2f')]=_[_0xa32f('0x30')](_0x20d8cf['query']);_0x3ba670[_0xa32f('0x31')]=_[_0xa32f('0x33')](_0x3ba670['model'],_0x3ba670[_0xa32f('0x2f')]);_0x37d3cd[_0xa32f('0x32')]=_[_0xa32f('0x33')](_0x3ba670[_0xa32f('0x2e')],qs['fields'](_0x20d8cf['query']['fields']));_0x37d3cd[_0xa32f('0x32')]=_0x37d3cd[_0xa32f('0x32')]['length']?_0x37d3cd['attributes']:_0x3ba670[_0xa32f('0x2e')];if(_0x20d8cf[_0xa32f('0x2f')][_0xa32f('0x45')]){_0x37d3cd[_0xa32f('0x3f')]=[{'all':!![]}];}_0x37d3cd=_[_0xa32f('0x3c')]({},_0x37d3cd,_0x20d8cf[_0xa32f('0x46')]);return db[_0xa32f('0x3e')]['find'](_0x37d3cd)[_0xa32f('0x21')](handleEntityNotFound(_0x4a390f,null))[_0xa32f('0x21')](respondWithResult(_0x4a390f,null))['catch'](handleError(_0x4a390f,null));};exports[_0xa32f('0x47')]=function(_0x1a0d0d,_0x41795d){return db[_0xa32f('0x3e')][_0xa32f('0x47')](_0x1a0d0d[_0xa32f('0x48')],{})[_0xa32f('0x21')](function(_0x540a4d){var _0x3ec958=_0x1a0d0d[_0xa32f('0x49')][_0xa32f('0x23')]({'plain':!![]});if(!_0x3ec958)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3ec958[_0xa32f('0x4a')]==='user'){var _0xc13b65=_0x540a4d['get']({'plain':!![]});var _0xfb7cd8='Templates';return db['UserProfileSection'][_0xa32f('0x4b')]({'where':{'name':_0xfb7cd8,'userProfileId':_0x3ec958[_0xa32f('0x4c')]},'raw':!![]})[_0xa32f('0x21')](function(_0x4e7529){if(_0x4e7529&&_0x4e7529[_0xa32f('0x4d')]===0x0){return db['UserProfileResource']['create']({'name':_0xc13b65['name'],'resourceId':_0xc13b65['id'],'type':_0x4e7529[_0xa32f('0x27')],'sectionId':_0x4e7529['id']},{})[_0xa32f('0x21')](function(){return _0x540a4d;});}else{return _0x540a4d;}})[_0xa32f('0x42')](function(_0x298012){logger[_0xa32f('0x25')](_0xa32f('0x4e'),_0x298012);throw _0x298012;});}return _0x540a4d;})['then'](respondWithResult(_0x41795d,0xc9))[_0xa32f('0x42')](handleError(_0x41795d,null));};exports['update']=function(_0x2bfa18,_0x23f3a7){if(_0x2bfa18['body']['id']){delete _0x2bfa18['body']['id'];}return db[_0xa32f('0x3e')][_0xa32f('0x4b')]({'where':{'id':_0x2bfa18[_0xa32f('0x44')]['id']}})[_0xa32f('0x21')](handleEntityNotFound(_0x23f3a7,null))[_0xa32f('0x21')](saveUpdates(_0x2bfa18[_0xa32f('0x48')],null))[_0xa32f('0x21')](respondWithResult(_0x23f3a7,null))[_0xa32f('0x42')](handleError(_0x23f3a7,null));};exports['destroy']=function(_0x202d77,_0x5913d7){return db[_0xa32f('0x3e')][_0xa32f('0x4b')]({'where':{'id':_0x202d77[_0xa32f('0x44')]['id']}})[_0xa32f('0x21')](handleEntityNotFound(_0x5913d7,null))[_0xa32f('0x21')](removeEntity(_0x5913d7,null))[_0xa32f('0x42')](handleError(_0x5913d7,null));};