741ed15763bb00218fe8443370f678df579cf0ad
[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 _0x41f7=['count','set','Content-Range','reject','save','update','then','destroy','Templates','UserProfileResource','status','sendStatus','error','stack','name','send','index','map','Template','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','nolimit','sort','where','pick','merge','VIRTUAL','filter','options','include','findAll','rows','params','rawAttributes','includeAll','catch','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','find','eml-format','fast-json-patch','request-promise','moment','bluebird','util','sox','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','end','json','offset','undefined','limit'];(function(_0x5963be,_0x233e91){var _0x52d64a=function(_0x4223aa){while(--_0x4223aa){_0x5963be['push'](_0x5963be['shift']());}};_0x52d64a(++_0x233e91);}(_0x41f7,0x171));var _0x741f=function(_0xc800f,_0xc14721){_0xc800f=_0xc800f-0x0;var _0xc686dc=_0x41f7[_0xc800f];return _0xc686dc;};'use strict';var emlformat=require(_0x741f('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x741f('0x1'));var rp=require(_0x741f('0x2'));var moment=require(_0x741f('0x3'));var BPromise=require(_0x741f('0x4'));var Mustache=require('mustache');var util=require(_0x741f('0x5'));var path=require('path');var sox=require(_0x741f('0x6'));var csv=require(_0x741f('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x741f('0x8'));var _=require(_0x741f('0x9'));var squel=require('squel');var crypto=require(_0x741f('0xa'));var jsforce=require(_0x741f('0xb'));var deskjs=require(_0x741f('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x741f('0xd'));var Redis=require(_0x741f('0xe'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x741f('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x741f('0x10'))('api');var utils=require(_0x741f('0x11'));var config=require(_0x741f('0x12'));var licenseUtil=require(_0x741f('0x13'));var db=require(_0x741f('0x14'))['db'];function respondWithStatusCode(_0x2ac359,_0xc638a4){_0xc638a4=_0xc638a4||0xcc;return function(_0x4b0b7f){if(_0x4b0b7f){return _0x2ac359['sendStatus'](_0xc638a4);}return _0x2ac359['status'](_0xc638a4)[_0x741f('0x15')]();};}function respondWithResult(_0x82c55d,_0x23bdbd){_0x23bdbd=_0x23bdbd||0xc8;return function(_0x3231b4){if(_0x3231b4){return _0x82c55d['status'](_0x23bdbd)[_0x741f('0x16')](_0x3231b4);}};}function respondWithFilteredResult(_0x591fe9,_0xa9ffea){return function(_0x137f0a){if(_0x137f0a){var _0xcf797=typeof _0xa9ffea[_0x741f('0x17')]===_0x741f('0x18')&&typeof _0xa9ffea[_0x741f('0x19')]==='undefined';var _0x39cd53=_0x137f0a[_0x741f('0x1a')];var _0x1cd87c=_0xcf797?0x0:_0xa9ffea[_0x741f('0x17')];var _0x2667e1=_0xcf797?_0x137f0a[_0x741f('0x1a')]:_0xa9ffea[_0x741f('0x17')]+_0xa9ffea['limit'];var _0x203aca;if(_0x2667e1>=_0x39cd53){_0x2667e1=_0x39cd53;_0x203aca=0xc8;}else{_0x203aca=0xce;}_0x591fe9['status'](_0x203aca);return _0x591fe9[_0x741f('0x1b')](_0x741f('0x1c'),_0x1cd87c+'-'+_0x2667e1+'/'+_0x39cd53)['json'](_0x137f0a);}return null;};}function patchUpdates(_0x5f5d94){return function(_0x55fdea){try{jsonpatch['apply'](_0x55fdea,_0x5f5d94,!![]);}catch(_0x15816b){return BPromise[_0x741f('0x1d')](_0x15816b);}return _0x55fdea[_0x741f('0x1e')]();};}function saveUpdates(_0x556b32,_0x386cea){return function(_0x3b7a7d){if(_0x3b7a7d){return _0x3b7a7d[_0x741f('0x1f')](_0x556b32)[_0x741f('0x20')](function(_0x53f92c){return _0x53f92c;});}return null;};}function removeEntity(_0x39f782,_0x403195){return function(_0x2369f2){if(_0x2369f2){return _0x2369f2[_0x741f('0x21')]()['then'](function(){var _0x3df644=_0x2369f2['get']({'plain':!![]});var _0xd9ea1e=_0x741f('0x22');return db[_0x741f('0x23')][_0x741f('0x21')]({'where':{'type':_0xd9ea1e,'resourceId':_0x3df644['id']}})['then'](function(){return _0x2369f2;});})[_0x741f('0x20')](function(){_0x39f782[_0x741f('0x24')](0xcc)[_0x741f('0x15')]();});}};}function handleEntityNotFound(_0x2a550e,_0x299ffd){return function(_0x2f402a){if(!_0x2f402a){_0x2a550e[_0x741f('0x25')](0x194);}return _0x2f402a;};}function handleError(_0x5aa65d,_0x4397cc){_0x4397cc=_0x4397cc||0x1f4;return function(_0x373d59){logger[_0x741f('0x26')](_0x373d59[_0x741f('0x27')]);if(_0x373d59[_0x741f('0x28')]){delete _0x373d59['name'];}_0x5aa65d[_0x741f('0x24')](_0x4397cc)[_0x741f('0x29')](_0x373d59);};}exports[_0x741f('0x2a')]=function(_0x120705,_0x36afb5){var _0x207621={},_0x2a6ef3={},_0xedb18b={'count':0x0,'rows':[]};var _0x17a5c5=_[_0x741f('0x2b')](db[_0x741f('0x2c')]['rawAttributes'],function(_0x4be6f2){return{'name':_0x4be6f2[_0x741f('0x2d')],'type':_0x4be6f2[_0x741f('0x2e')]['key']};});_0x2a6ef3[_0x741f('0x2f')]=_['map'](_0x17a5c5,_0x741f('0x28'));_0x2a6ef3[_0x741f('0x30')]=_[_0x741f('0x31')](_0x120705[_0x741f('0x30')]);_0x2a6ef3[_0x741f('0x32')]=_[_0x741f('0x33')](_0x2a6ef3[_0x741f('0x2f')],_0x2a6ef3[_0x741f('0x30')]);_0x207621[_0x741f('0x34')]=_[_0x741f('0x33')](_0x2a6ef3['model'],qs[_0x741f('0x35')](_0x120705[_0x741f('0x30')][_0x741f('0x35')]));_0x207621[_0x741f('0x34')]=_0x207621[_0x741f('0x34')][_0x741f('0x36')]?_0x207621[_0x741f('0x34')]:_0x2a6ef3[_0x741f('0x2f')];if(!_0x120705[_0x741f('0x30')]['hasOwnProperty'](_0x741f('0x37'))){_0x207621['limit']=qs[_0x741f('0x19')](_0x120705['query']['limit']);_0x207621[_0x741f('0x17')]=qs[_0x741f('0x17')](_0x120705['query'][_0x741f('0x17')]);}_0x207621['order']=qs[_0x741f('0x38')](_0x120705[_0x741f('0x30')][_0x741f('0x38')]);_0x207621[_0x741f('0x39')]=qs[_0x741f('0x32')](_[_0x741f('0x3a')](_0x120705[_0x741f('0x30')],_0x2a6ef3[_0x741f('0x32')]),_0x17a5c5);if(_0x120705[_0x741f('0x30')]['filter']){_0x207621[_0x741f('0x39')]=_[_0x741f('0x3b')](_0x207621[_0x741f('0x39')],{'$or':_[_0x741f('0x2b')](_0x17a5c5,function(_0x402262){if(_0x402262['type']!==_0x741f('0x3c')){var _0x45286c={};_0x45286c[_0x402262[_0x741f('0x28')]]={'$like':'%'+_0x120705['query'][_0x741f('0x3d')]+'%'};return _0x45286c;}})});}_0x207621=_[_0x741f('0x3b')]({},_0x207621,_0x120705[_0x741f('0x3e')]);var _0x32ae78={'where':_0x207621[_0x741f('0x39')]};return db[_0x741f('0x2c')][_0x741f('0x1a')](_0x32ae78)[_0x741f('0x20')](function(_0x3e5f5b){_0xedb18b[_0x741f('0x1a')]=_0x3e5f5b;if(_0x120705['query']['includeAll']){_0x207621[_0x741f('0x3f')]=[{'all':!![]}];}return db['Template'][_0x741f('0x40')](_0x207621);})['then'](function(_0x31b4bb){_0xedb18b[_0x741f('0x41')]=_0x31b4bb;return _0xedb18b;})[_0x741f('0x20')](respondWithFilteredResult(_0x36afb5,_0x207621))['catch'](handleError(_0x36afb5,null));};exports['show']=function(_0xd96595,_0x47cb92){var _0x2fb8fe={'raw':!![],'where':{'id':_0xd96595[_0x741f('0x42')]['id']}},_0x135d84={};_0x135d84[_0x741f('0x2f')]=_[_0x741f('0x31')](db['Template'][_0x741f('0x43')]);_0x135d84[_0x741f('0x30')]=_[_0x741f('0x31')](_0xd96595['query']);_0x135d84[_0x741f('0x32')]=_[_0x741f('0x33')](_0x135d84[_0x741f('0x2f')],_0x135d84[_0x741f('0x30')]);_0x2fb8fe['attributes']=_[_0x741f('0x33')](_0x135d84['model'],qs[_0x741f('0x35')](_0xd96595[_0x741f('0x30')][_0x741f('0x35')]));_0x2fb8fe[_0x741f('0x34')]=_0x2fb8fe[_0x741f('0x34')][_0x741f('0x36')]?_0x2fb8fe[_0x741f('0x34')]:_0x135d84[_0x741f('0x2f')];if(_0xd96595[_0x741f('0x30')][_0x741f('0x44')]){_0x2fb8fe['include']=[{'all':!![]}];}_0x2fb8fe=_['merge']({},_0x2fb8fe,_0xd96595[_0x741f('0x3e')]);return db[_0x741f('0x2c')]['find'](_0x2fb8fe)[_0x741f('0x20')](handleEntityNotFound(_0x47cb92,null))['then'](respondWithResult(_0x47cb92,null))[_0x741f('0x45')](handleError(_0x47cb92,null));};exports[_0x741f('0x46')]=function(_0xaf1791,_0x2a1a32){return db[_0x741f('0x2c')][_0x741f('0x46')](_0xaf1791[_0x741f('0x47')],{})['then'](function(_0x2a2eb6){var _0x1b90d5=_0xaf1791[_0x741f('0x48')][_0x741f('0x49')]({'plain':!![]});if(!_0x1b90d5)throw new Error(_0x741f('0x4a'));if(_0x1b90d5[_0x741f('0x4b')]===_0x741f('0x48')){var _0x1a1ae4=_0x2a2eb6['get']({'plain':!![]});var _0x29bcbc=_0x741f('0x22');return db[_0x741f('0x4c')]['find']({'where':{'name':_0x29bcbc,'userProfileId':_0x1b90d5['userProfileId']},'raw':!![]})[_0x741f('0x20')](function(_0x30aab7){if(_0x30aab7&&_0x30aab7['autoAssociation']===0x0){return db[_0x741f('0x23')][_0x741f('0x46')]({'name':_0x1a1ae4[_0x741f('0x28')],'resourceId':_0x1a1ae4['id'],'type':_0x30aab7['name'],'sectionId':_0x30aab7['id']},{})[_0x741f('0x20')](function(){return _0x2a2eb6;});}else{return _0x2a2eb6;}})[_0x741f('0x45')](function(_0x14e6a9){logger['error'](_0x741f('0x4d'),_0x14e6a9);throw _0x14e6a9;});}return _0x2a2eb6;})['then'](respondWithResult(_0x2a1a32,0xc9))[_0x741f('0x45')](handleError(_0x2a1a32,null));};exports[_0x741f('0x1f')]=function(_0x47f543,_0x4a83b3){if(_0x47f543[_0x741f('0x47')]['id']){delete _0x47f543['body']['id'];}return db[_0x741f('0x2c')][_0x741f('0x4e')]({'where':{'id':_0x47f543['params']['id']}})[_0x741f('0x20')](handleEntityNotFound(_0x4a83b3,null))[_0x741f('0x20')](saveUpdates(_0x47f543[_0x741f('0x47')],null))[_0x741f('0x20')](respondWithResult(_0x4a83b3,null))[_0x741f('0x45')](handleError(_0x4a83b3,null));};exports[_0x741f('0x21')]=function(_0x13e0f4,_0x2009d1){return db[_0x741f('0x2c')]['find']({'where':{'id':_0x13e0f4['params']['id']}})['then'](handleEntityNotFound(_0x2009d1,null))['then'](removeEntity(_0x2009d1,null))['catch'](handleError(_0x2009d1,null));};