8f8084bd4dafbd0e64741d6bdef2b8ef7f37ad62
[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 _0x5255=['UserProfileResource','sendStatus','error','stack','name','send','map','Template','rawAttributes','type','key','model','query','filters','attributes','fields','hasOwnProperty','order','sort','where','pick','filter','VIRTUAL','options','includeAll','include','findAll','catch','params','keys','intersection','length','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','rimraf','zip-dir','moment','bluebird','mustache','util','path','to-csv','ejs','lodash','squel','jsforce','desk.js','papaparse','ioredis','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','end','json','offset','undefined','count','limit','status','apply','reject','save','destroy','then','get','Templates'];(function(_0x2dc28c,_0x164a43){var _0x399388=function(_0x112186){while(--_0x112186){_0x2dc28c['push'](_0x2dc28c['shift']());}};_0x399388(++_0x164a43);}(_0x5255,0x1eb));var _0x5525=function(_0x59efdd,_0x8be09a){_0x59efdd=_0x59efdd-0x0;var _0x4da8e4=_0x5255[_0x59efdd];return _0x4da8e4;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x5525('0x0'));var zipdir=require(_0x5525('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x5525('0x2'));var BPromise=require(_0x5525('0x3'));var Mustache=require(_0x5525('0x4'));var util=require(_0x5525('0x5'));var path=require(_0x5525('0x6'));var sox=require('sox');var csv=require(_0x5525('0x7'));var ejs=require(_0x5525('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x5525('0x9'));var squel=require(_0x5525('0xa'));var crypto=require('crypto');var jsforce=require(_0x5525('0xb'));var deskjs=require(_0x5525('0xc'));var toCsv=require(_0x5525('0x7'));var querystring=require('querystring');var Papa=require(_0x5525('0xd'));var Redis=require(_0x5525('0xe'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x5525('0xf'));var logger=require(_0x5525('0x10'))('api');var utils=require(_0x5525('0x11'));var config=require('../../config/environment');var licenseUtil=require(_0x5525('0x12'));var db=require(_0x5525('0x13'))['db'];function respondWithStatusCode(_0x41e225,_0x3f6711){_0x3f6711=_0x3f6711||0xcc;return function(_0x316459){if(_0x316459){return _0x41e225['sendStatus'](_0x3f6711);}return _0x41e225['status'](_0x3f6711)[_0x5525('0x14')]();};}function respondWithResult(_0x1da84c,_0x44ae02){_0x44ae02=_0x44ae02||0xc8;return function(_0x499b38){if(_0x499b38){return _0x1da84c['status'](_0x44ae02)[_0x5525('0x15')](_0x499b38);}};}function respondWithFilteredResult(_0x1c77de,_0x2c5ebb){return function(_0x57b8c3){if(_0x57b8c3){var _0x130e37=typeof _0x2c5ebb[_0x5525('0x16')]===_0x5525('0x17')&&typeof _0x2c5ebb['limit']===_0x5525('0x17');var _0x4ac31b=_0x57b8c3[_0x5525('0x18')];var _0x1baa52=_0x130e37?0x0:_0x2c5ebb[_0x5525('0x16')];var _0x2dd6d3=_0x130e37?_0x57b8c3['count']:_0x2c5ebb[_0x5525('0x16')]+_0x2c5ebb[_0x5525('0x19')];var _0x48fc4e;if(_0x2dd6d3>=_0x4ac31b){_0x2dd6d3=_0x4ac31b;_0x48fc4e=0xc8;}else{_0x48fc4e=0xce;}_0x1c77de[_0x5525('0x1a')](_0x48fc4e);return _0x1c77de['set']('Content-Range',_0x1baa52+'-'+_0x2dd6d3+'/'+_0x4ac31b)[_0x5525('0x15')](_0x57b8c3);}return null;};}function patchUpdates(_0x22b986){return function(_0x1e1dad){try{jsonpatch[_0x5525('0x1b')](_0x1e1dad,_0x22b986,!![]);}catch(_0x42cb16){return BPromise[_0x5525('0x1c')](_0x42cb16);}return _0x1e1dad[_0x5525('0x1d')]();};}function saveUpdates(_0x4b7a41,_0x5e5611){return function(_0x7a8663){if(_0x7a8663){return _0x7a8663['update'](_0x4b7a41)['then'](function(_0x33ab65){return _0x33ab65;});}return null;};}function removeEntity(_0x1941fa,_0x7e98d){return function(_0x43cb52){if(_0x43cb52){return _0x43cb52[_0x5525('0x1e')]()[_0x5525('0x1f')](function(){var _0x3e2baa=_0x43cb52[_0x5525('0x20')]({'plain':!![]});var _0x42aef4=_0x5525('0x21');return db[_0x5525('0x22')][_0x5525('0x1e')]({'where':{'type':_0x42aef4,'resourceId':_0x3e2baa['id']}})[_0x5525('0x1f')](function(){return _0x43cb52;});})['then'](function(){_0x1941fa[_0x5525('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2b4c0e,_0x21339a){return function(_0x498e7a){if(!_0x498e7a){_0x2b4c0e[_0x5525('0x23')](0x194);}return _0x498e7a;};}function handleError(_0x27d973,_0x56b803){_0x56b803=_0x56b803||0x1f4;return function(_0x4d91ca){logger[_0x5525('0x24')](_0x4d91ca[_0x5525('0x25')]);if(_0x4d91ca[_0x5525('0x26')]){delete _0x4d91ca[_0x5525('0x26')];}_0x27d973[_0x5525('0x1a')](_0x56b803)[_0x5525('0x27')](_0x4d91ca);};}exports['index']=function(_0xb99adf,_0x3df517){var _0x1b411b={},_0x581780={},_0x30ef53={'count':0x0,'rows':[]};var _0x4b6f28=_[_0x5525('0x28')](db[_0x5525('0x29')][_0x5525('0x2a')],function(_0x1688ea){return{'name':_0x1688ea['fieldName'],'type':_0x1688ea[_0x5525('0x2b')][_0x5525('0x2c')]};});_0x581780[_0x5525('0x2d')]=_[_0x5525('0x28')](_0x4b6f28,_0x5525('0x26'));_0x581780[_0x5525('0x2e')]=_['keys'](_0xb99adf[_0x5525('0x2e')]);_0x581780[_0x5525('0x2f')]=_['intersection'](_0x581780[_0x5525('0x2d')],_0x581780[_0x5525('0x2e')]);_0x1b411b[_0x5525('0x30')]=_['intersection'](_0x581780[_0x5525('0x2d')],qs[_0x5525('0x31')](_0xb99adf[_0x5525('0x2e')][_0x5525('0x31')]));_0x1b411b[_0x5525('0x30')]=_0x1b411b[_0x5525('0x30')]['length']?_0x1b411b[_0x5525('0x30')]:_0x581780['model'];if(!_0xb99adf[_0x5525('0x2e')][_0x5525('0x32')]('nolimit')){_0x1b411b['limit']=qs[_0x5525('0x19')](_0xb99adf['query']['limit']);_0x1b411b[_0x5525('0x16')]=qs[_0x5525('0x16')](_0xb99adf['query'][_0x5525('0x16')]);}_0x1b411b[_0x5525('0x33')]=qs[_0x5525('0x34')](_0xb99adf[_0x5525('0x2e')][_0x5525('0x34')]);_0x1b411b[_0x5525('0x35')]=qs[_0x5525('0x2f')](_[_0x5525('0x36')](_0xb99adf[_0x5525('0x2e')],_0x581780['filters']),_0x4b6f28);if(_0xb99adf[_0x5525('0x2e')][_0x5525('0x37')]){_0x1b411b[_0x5525('0x35')]=_['merge'](_0x1b411b[_0x5525('0x35')],{'$or':_[_0x5525('0x28')](_0x4b6f28,function(_0x152591){if(_0x152591[_0x5525('0x2b')]!==_0x5525('0x38')){var _0x1b9082={};_0x1b9082[_0x152591[_0x5525('0x26')]]={'$like':'%'+_0xb99adf[_0x5525('0x2e')]['filter']+'%'};return _0x1b9082;}})});}_0x1b411b=_['merge']({},_0x1b411b,_0xb99adf[_0x5525('0x39')]);var _0x3a9c48={'where':_0x1b411b[_0x5525('0x35')]};return db[_0x5525('0x29')][_0x5525('0x18')](_0x3a9c48)[_0x5525('0x1f')](function(_0x1a9a94){_0x30ef53[_0x5525('0x18')]=_0x1a9a94;if(_0xb99adf['query'][_0x5525('0x3a')]){_0x1b411b[_0x5525('0x3b')]=[{'all':!![]}];}return db[_0x5525('0x29')][_0x5525('0x3c')](_0x1b411b);})[_0x5525('0x1f')](function(_0x689ec8){_0x30ef53['rows']=_0x689ec8;return _0x30ef53;})[_0x5525('0x1f')](respondWithFilteredResult(_0x3df517,_0x1b411b))[_0x5525('0x3d')](handleError(_0x3df517,null));};exports['show']=function(_0x152b74,_0x45f66d){var _0x5cdf26={'raw':!![],'where':{'id':_0x152b74[_0x5525('0x3e')]['id']}},_0x21390f={};_0x21390f[_0x5525('0x2d')]=_['keys'](db[_0x5525('0x29')][_0x5525('0x2a')]);_0x21390f[_0x5525('0x2e')]=_[_0x5525('0x3f')](_0x152b74[_0x5525('0x2e')]);_0x21390f[_0x5525('0x2f')]=_[_0x5525('0x40')](_0x21390f[_0x5525('0x2d')],_0x21390f[_0x5525('0x2e')]);_0x5cdf26['attributes']=_[_0x5525('0x40')](_0x21390f[_0x5525('0x2d')],qs[_0x5525('0x31')](_0x152b74[_0x5525('0x2e')][_0x5525('0x31')]));_0x5cdf26[_0x5525('0x30')]=_0x5cdf26[_0x5525('0x30')][_0x5525('0x41')]?_0x5cdf26[_0x5525('0x30')]:_0x21390f[_0x5525('0x2d')];if(_0x152b74[_0x5525('0x2e')][_0x5525('0x3a')]){_0x5cdf26[_0x5525('0x3b')]=[{'all':!![]}];}_0x5cdf26=_['merge']({},_0x5cdf26,_0x152b74['options']);return db[_0x5525('0x29')][_0x5525('0x42')](_0x5cdf26)['then'](handleEntityNotFound(_0x45f66d,null))[_0x5525('0x1f')](respondWithResult(_0x45f66d,null))[_0x5525('0x3d')](handleError(_0x45f66d,null));};exports[_0x5525('0x43')]=function(_0x5a2e53,_0x22b753){return db[_0x5525('0x29')]['create'](_0x5a2e53[_0x5525('0x44')],{})['then'](function(_0x1935f8){var _0x3737af=_0x5a2e53[_0x5525('0x45')]['get']({'plain':!![]});if(!_0x3737af)throw new Error(_0x5525('0x46'));if(_0x3737af['role']==='user'){var _0x3415ac=_0x1935f8[_0x5525('0x20')]({'plain':!![]});var _0x70b9c4='Templates';return db['UserProfileSection'][_0x5525('0x42')]({'where':{'name':_0x70b9c4,'userProfileId':_0x3737af[_0x5525('0x47')]},'raw':!![]})[_0x5525('0x1f')](function(_0x1ff93b){if(_0x1ff93b&&_0x1ff93b[_0x5525('0x48')]===0x0){return db[_0x5525('0x22')][_0x5525('0x43')]({'name':_0x3415ac[_0x5525('0x26')],'resourceId':_0x3415ac['id'],'type':_0x1ff93b[_0x5525('0x26')],'sectionId':_0x1ff93b['id']},{})[_0x5525('0x1f')](function(){return _0x1935f8;});}else{return _0x1935f8;}})[_0x5525('0x3d')](function(_0x13bf45){logger[_0x5525('0x24')](_0x5525('0x49'),_0x13bf45);throw _0x13bf45;});}return _0x1935f8;})[_0x5525('0x1f')](respondWithResult(_0x22b753,0xc9))[_0x5525('0x3d')](handleError(_0x22b753,null));};exports[_0x5525('0x4a')]=function(_0x1cd4fb,_0x2b852c){if(_0x1cd4fb[_0x5525('0x44')]['id']){delete _0x1cd4fb[_0x5525('0x44')]['id'];}return db[_0x5525('0x29')][_0x5525('0x42')]({'where':{'id':_0x1cd4fb[_0x5525('0x3e')]['id']}})[_0x5525('0x1f')](handleEntityNotFound(_0x2b852c,null))[_0x5525('0x1f')](saveUpdates(_0x1cd4fb['body'],null))[_0x5525('0x1f')](respondWithResult(_0x2b852c,null))[_0x5525('0x3d')](handleError(_0x2b852c,null));};exports['destroy']=function(_0x29c4d7,_0x19db78){return db['Template']['find']({'where':{'id':_0x29c4d7['params']['id']}})[_0x5525('0x1f')](handleEntityNotFound(_0x19db78,null))[_0x5525('0x1f')](removeEntity(_0x19db78,null))[_0x5525('0x3d')](handleError(_0x19db78,null));};