dbf560c7247608bda4a4e7cbf5c41c70ceb9479d
[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 _0x6bd7=['sendStatus','status','end','json','offset','undefined','limit','count','set','save','update','then','destroy','get','Templates','UserProfileResource','error','name','send','Template','fieldName','type','key','model','map','query','keys','intersection','attributes','fields','length','nolimit','sort','where','filters','pick','filter','merge','includeAll','findAll','rows','params','options','catch','create','body','user','role','UserProfileSection','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','moment','mustache','path','sox','fs-extra','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb'];(function(_0x3ec76f,_0x28485){var _0x2ba0ab=function(_0x390149){while(--_0x390149){_0x3ec76f['push'](_0x3ec76f['shift']());}};_0x2ba0ab(++_0x28485);}(_0x6bd7,0x80));var _0x76bd=function(_0x584d37,_0x13fb20){_0x584d37=_0x584d37-0x0;var _0x1a1dbf=_0x6bd7[_0x584d37];return _0x1a1dbf;};'use strict';var emlformat=require(_0x76bd('0x0'));var rimraf=require(_0x76bd('0x1'));var zipdir=require(_0x76bd('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x76bd('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x76bd('0x4'));var util=require('util');var path=require(_0x76bd('0x5'));var sox=require(_0x76bd('0x6'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x76bd('0x7'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x76bd('0x8'));var jsforce=require('jsforce');var deskjs=require(_0x76bd('0x9'));var toCsv=require(_0x76bd('0xa'));var querystring=require(_0x76bd('0xb'));var Papa=require(_0x76bd('0xc'));var Redis=require(_0x76bd('0xd'));var authService=require(_0x76bd('0xe'));var qs=require(_0x76bd('0xf'));var as=require(_0x76bd('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x76bd('0x11'))('api');var utils=require(_0x76bd('0x12'));var config=require(_0x76bd('0x13'));var licenseUtil=require(_0x76bd('0x14'));var db=require(_0x76bd('0x15'))['db'];function respondWithStatusCode(_0x1ea9ba,_0x37ea4d){_0x37ea4d=_0x37ea4d||0xcc;return function(_0x4c5d66){if(_0x4c5d66){return _0x1ea9ba[_0x76bd('0x16')](_0x37ea4d);}return _0x1ea9ba[_0x76bd('0x17')](_0x37ea4d)[_0x76bd('0x18')]();};}function respondWithResult(_0x172112,_0x5654da){_0x5654da=_0x5654da||0xc8;return function(_0x2ae6e1){if(_0x2ae6e1){return _0x172112['status'](_0x5654da)[_0x76bd('0x19')](_0x2ae6e1);}};}function respondWithFilteredResult(_0x50b60c,_0x476e17){return function(_0x1075bb){if(_0x1075bb){var _0x27cf96=typeof _0x476e17[_0x76bd('0x1a')]===_0x76bd('0x1b')&&typeof _0x476e17[_0x76bd('0x1c')]===_0x76bd('0x1b');var _0x22246b=_0x1075bb[_0x76bd('0x1d')];var _0x29d319=_0x27cf96?0x0:_0x476e17[_0x76bd('0x1a')];var _0x30964a=_0x27cf96?_0x1075bb[_0x76bd('0x1d')]:_0x476e17[_0x76bd('0x1a')]+_0x476e17[_0x76bd('0x1c')];var _0xc5dec0;if(_0x30964a>=_0x22246b){_0x30964a=_0x22246b;_0xc5dec0=0xc8;}else{_0xc5dec0=0xce;}_0x50b60c[_0x76bd('0x17')](_0xc5dec0);return _0x50b60c[_0x76bd('0x1e')]('Content-Range',_0x29d319+'-'+_0x30964a+'/'+_0x22246b)[_0x76bd('0x19')](_0x1075bb);}return null;};}function patchUpdates(_0x4ce1b6){return function(_0x4f8d03){try{jsonpatch['apply'](_0x4f8d03,_0x4ce1b6,!![]);}catch(_0x1e0b59){return BPromise['reject'](_0x1e0b59);}return _0x4f8d03[_0x76bd('0x1f')]();};}function saveUpdates(_0x425aa0,_0x4d5dac){return function(_0x432f3b){if(_0x432f3b){return _0x432f3b[_0x76bd('0x20')](_0x425aa0)[_0x76bd('0x21')](function(_0x520de4){return _0x520de4;});}return null;};}function removeEntity(_0x411c7e,_0x39b0a2){return function(_0x22bbf8){if(_0x22bbf8){return _0x22bbf8[_0x76bd('0x22')]()[_0x76bd('0x21')](function(){var _0xadbfd=_0x22bbf8[_0x76bd('0x23')]({'plain':!![]});var _0x309706=_0x76bd('0x24');return db[_0x76bd('0x25')][_0x76bd('0x22')]({'where':{'type':_0x309706,'resourceId':_0xadbfd['id']}})[_0x76bd('0x21')](function(){return _0x22bbf8;});})[_0x76bd('0x21')](function(){_0x411c7e[_0x76bd('0x17')](0xcc)[_0x76bd('0x18')]();});}};}function handleEntityNotFound(_0x194d8b,_0x2da784){return function(_0x69c0cd){if(!_0x69c0cd){_0x194d8b[_0x76bd('0x16')](0x194);}return _0x69c0cd;};}function handleError(_0x51bcd2,_0x58ce6f){_0x58ce6f=_0x58ce6f||0x1f4;return function(_0x19bda6){logger[_0x76bd('0x26')](_0x19bda6['stack']);if(_0x19bda6[_0x76bd('0x27')]){delete _0x19bda6['name'];}_0x51bcd2[_0x76bd('0x17')](_0x58ce6f)[_0x76bd('0x28')](_0x19bda6);};}exports['index']=function(_0x5420ca,_0x1a6507){var _0x3ff164={},_0x13430f={},_0x2ce690={'count':0x0,'rows':[]};var _0x214282=_['map'](db[_0x76bd('0x29')]['rawAttributes'],function(_0x5612bb){return{'name':_0x5612bb[_0x76bd('0x2a')],'type':_0x5612bb[_0x76bd('0x2b')][_0x76bd('0x2c')]};});_0x13430f[_0x76bd('0x2d')]=_[_0x76bd('0x2e')](_0x214282,_0x76bd('0x27'));_0x13430f[_0x76bd('0x2f')]=_[_0x76bd('0x30')](_0x5420ca['query']);_0x13430f['filters']=_[_0x76bd('0x31')](_0x13430f[_0x76bd('0x2d')],_0x13430f[_0x76bd('0x2f')]);_0x3ff164[_0x76bd('0x32')]=_['intersection'](_0x13430f[_0x76bd('0x2d')],qs[_0x76bd('0x33')](_0x5420ca[_0x76bd('0x2f')][_0x76bd('0x33')]));_0x3ff164['attributes']=_0x3ff164[_0x76bd('0x32')][_0x76bd('0x34')]?_0x3ff164[_0x76bd('0x32')]:_0x13430f['model'];if(!_0x5420ca['query']['hasOwnProperty'](_0x76bd('0x35'))){_0x3ff164[_0x76bd('0x1c')]=qs[_0x76bd('0x1c')](_0x5420ca[_0x76bd('0x2f')][_0x76bd('0x1c')]);_0x3ff164[_0x76bd('0x1a')]=qs[_0x76bd('0x1a')](_0x5420ca[_0x76bd('0x2f')][_0x76bd('0x1a')]);}_0x3ff164['order']=qs[_0x76bd('0x36')](_0x5420ca[_0x76bd('0x2f')][_0x76bd('0x36')]);_0x3ff164[_0x76bd('0x37')]=qs[_0x76bd('0x38')](_[_0x76bd('0x39')](_0x5420ca[_0x76bd('0x2f')],_0x13430f[_0x76bd('0x38')]),_0x214282);if(_0x5420ca[_0x76bd('0x2f')][_0x76bd('0x3a')]){_0x3ff164['where']=_[_0x76bd('0x3b')](_0x3ff164['where'],{'$or':_[_0x76bd('0x2e')](_0x214282,function(_0x168bd6){if(_0x168bd6[_0x76bd('0x2b')]!=='VIRTUAL'){var _0x2ead6d={};_0x2ead6d[_0x168bd6[_0x76bd('0x27')]]={'$like':'%'+_0x5420ca['query'][_0x76bd('0x3a')]+'%'};return _0x2ead6d;}})});}_0x3ff164=_[_0x76bd('0x3b')]({},_0x3ff164,_0x5420ca['options']);var _0x4ce51b={'where':_0x3ff164[_0x76bd('0x37')]};return db[_0x76bd('0x29')][_0x76bd('0x1d')](_0x4ce51b)[_0x76bd('0x21')](function(_0x3595b1){_0x2ce690[_0x76bd('0x1d')]=_0x3595b1;if(_0x5420ca[_0x76bd('0x2f')][_0x76bd('0x3c')]){_0x3ff164['include']=[{'all':!![]}];}return db[_0x76bd('0x29')][_0x76bd('0x3d')](_0x3ff164);})[_0x76bd('0x21')](function(_0x51306e){_0x2ce690[_0x76bd('0x3e')]=_0x51306e;return _0x2ce690;})['then'](respondWithFilteredResult(_0x1a6507,_0x3ff164))['catch'](handleError(_0x1a6507,null));};exports['show']=function(_0x12eeca,_0x782827){var _0xbf47c0={'raw':!![],'where':{'id':_0x12eeca[_0x76bd('0x3f')]['id']}},_0x21d5e0={};_0x21d5e0[_0x76bd('0x2d')]=_[_0x76bd('0x30')](db['Template']['rawAttributes']);_0x21d5e0['query']=_[_0x76bd('0x30')](_0x12eeca[_0x76bd('0x2f')]);_0x21d5e0[_0x76bd('0x38')]=_[_0x76bd('0x31')](_0x21d5e0[_0x76bd('0x2d')],_0x21d5e0[_0x76bd('0x2f')]);_0xbf47c0[_0x76bd('0x32')]=_[_0x76bd('0x31')](_0x21d5e0[_0x76bd('0x2d')],qs[_0x76bd('0x33')](_0x12eeca[_0x76bd('0x2f')][_0x76bd('0x33')]));_0xbf47c0['attributes']=_0xbf47c0[_0x76bd('0x32')][_0x76bd('0x34')]?_0xbf47c0['attributes']:_0x21d5e0[_0x76bd('0x2d')];if(_0x12eeca[_0x76bd('0x2f')][_0x76bd('0x3c')]){_0xbf47c0['include']=[{'all':!![]}];}_0xbf47c0=_['merge']({},_0xbf47c0,_0x12eeca[_0x76bd('0x40')]);return db[_0x76bd('0x29')]['find'](_0xbf47c0)[_0x76bd('0x21')](handleEntityNotFound(_0x782827,null))['then'](respondWithResult(_0x782827,null))[_0x76bd('0x41')](handleError(_0x782827,null));};exports[_0x76bd('0x42')]=function(_0x42d4fb,_0xb9f692){return db['Template'][_0x76bd('0x42')](_0x42d4fb[_0x76bd('0x43')],{})[_0x76bd('0x21')](function(_0x4a98a9){var _0x5d7a59=_0x42d4fb[_0x76bd('0x44')][_0x76bd('0x23')]({'plain':!![]});if(!_0x5d7a59)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x5d7a59[_0x76bd('0x45')]===_0x76bd('0x44')){var _0x58d157=_0x4a98a9[_0x76bd('0x23')]({'plain':!![]});var _0x5a6200=_0x76bd('0x24');return db[_0x76bd('0x46')][_0x76bd('0x47')]({'where':{'name':_0x5a6200,'userProfileId':_0x5d7a59[_0x76bd('0x48')]},'raw':!![]})[_0x76bd('0x21')](function(_0x4bbbad){if(_0x4bbbad&&_0x4bbbad[_0x76bd('0x49')]===0x0){return db[_0x76bd('0x25')]['create']({'name':_0x58d157[_0x76bd('0x27')],'resourceId':_0x58d157['id'],'type':_0x4bbbad[_0x76bd('0x27')],'sectionId':_0x4bbbad['id']},{})['then'](function(){return _0x4a98a9;});}else{return _0x4a98a9;}})[_0x76bd('0x41')](function(_0x17c41f){logger[_0x76bd('0x26')](_0x76bd('0x4a'),_0x17c41f);throw _0x17c41f;});}return _0x4a98a9;})[_0x76bd('0x21')](respondWithResult(_0xb9f692,0xc9))[_0x76bd('0x41')](handleError(_0xb9f692,null));};exports[_0x76bd('0x20')]=function(_0x41947e,_0x565e6c){if(_0x41947e[_0x76bd('0x43')]['id']){delete _0x41947e[_0x76bd('0x43')]['id'];}return db[_0x76bd('0x29')][_0x76bd('0x47')]({'where':{'id':_0x41947e[_0x76bd('0x3f')]['id']}})[_0x76bd('0x21')](handleEntityNotFound(_0x565e6c,null))[_0x76bd('0x21')](saveUpdates(_0x41947e[_0x76bd('0x43')],null))['then'](respondWithResult(_0x565e6c,null))[_0x76bd('0x41')](handleError(_0x565e6c,null));};exports['destroy']=function(_0x2c1e77,_0x414a99){return db[_0x76bd('0x29')]['find']({'where':{'id':_0x2c1e77['params']['id']}})['then'](handleEntityNotFound(_0x414a99,null))['then'](removeEntity(_0x414a99,null))[_0x76bd('0x41')](handleError(_0x414a99,null));};