90aaa83b3f2c795b34abfd3d075484d9a0da6e87
[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 _0x64b0=['name','send','index','Template','rawAttributes','type','key','model','map','query','keys','filters','intersection','attributes','length','hasOwnProperty','nolimit','order','sort','filter','where','merge','VIRTUAL','options','include','findAll','rows','catch','show','params','fields','includeAll','create','body','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','find','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','desk.js','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','undefined','limit','offset','count','Content-Range','apply','reject','save','then','destroy','Templates','UserProfileResource','error','stack'];(function(_0x4be8ba,_0x5d10ba){var _0x1af822=function(_0x40ed8a){while(--_0x40ed8a){_0x4be8ba['push'](_0x4be8ba['shift']());}};_0x1af822(++_0x5d10ba);}(_0x64b0,0x79));var _0x064b=function(_0x5a52bf,_0x5272ed){_0x5a52bf=_0x5a52bf-0x0;var _0x82abb4=_0x64b0[_0x5a52bf];return _0x82abb4;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x064b('0x0'));var zipdir=require(_0x064b('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x064b('0x2'));var moment=require(_0x064b('0x3'));var BPromise=require(_0x064b('0x4'));var Mustache=require(_0x064b('0x5'));var util=require(_0x064b('0x6'));var path=require(_0x064b('0x7'));var sox=require(_0x064b('0x8'));var csv=require(_0x064b('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x064b('0xa'));var _=require(_0x064b('0xb'));var squel=require(_0x064b('0xc'));var crypto=require(_0x064b('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x064b('0xe'));var toCsv=require(_0x064b('0x9'));var querystring=require('querystring');var Papa=require(_0x064b('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x064b('0x10'));var as=require(_0x064b('0x11'));var hardwareService=require(_0x064b('0x12'));var logger=require('../../config/logger')(_0x064b('0x13'));var utils=require(_0x064b('0x14'));var config=require(_0x064b('0x15'));var licenseUtil=require(_0x064b('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x386550,_0x5b8509){_0x5b8509=_0x5b8509||0xcc;return function(_0x86d2a6){if(_0x86d2a6){return _0x386550[_0x064b('0x17')](_0x5b8509);}return _0x386550[_0x064b('0x18')](_0x5b8509)[_0x064b('0x19')]();};}function respondWithResult(_0x4b51eb,_0x3133eb){_0x3133eb=_0x3133eb||0xc8;return function(_0x345a9e){if(_0x345a9e){return _0x4b51eb[_0x064b('0x18')](_0x3133eb)[_0x064b('0x1a')](_0x345a9e);}};}function respondWithFilteredResult(_0x336077,_0x4cf965){return function(_0x8b40d8){if(_0x8b40d8){var _0x6b4e84=typeof _0x4cf965['offset']===_0x064b('0x1b')&&typeof _0x4cf965[_0x064b('0x1c')]===_0x064b('0x1b');var _0x4e3ad0=_0x8b40d8['count'];var _0x12d508=_0x6b4e84?0x0:_0x4cf965[_0x064b('0x1d')];var _0x34d780=_0x6b4e84?_0x8b40d8[_0x064b('0x1e')]:_0x4cf965[_0x064b('0x1d')]+_0x4cf965['limit'];var _0x4673ac;if(_0x34d780>=_0x4e3ad0){_0x34d780=_0x4e3ad0;_0x4673ac=0xc8;}else{_0x4673ac=0xce;}_0x336077[_0x064b('0x18')](_0x4673ac);return _0x336077['set'](_0x064b('0x1f'),_0x12d508+'-'+_0x34d780+'/'+_0x4e3ad0)[_0x064b('0x1a')](_0x8b40d8);}return null;};}function patchUpdates(_0x1a5d0){return function(_0x4d9a87){try{jsonpatch[_0x064b('0x20')](_0x4d9a87,_0x1a5d0,!![]);}catch(_0x24a49f){return BPromise[_0x064b('0x21')](_0x24a49f);}return _0x4d9a87[_0x064b('0x22')]();};}function saveUpdates(_0x330581,_0x4c946f){return function(_0x2b2192){if(_0x2b2192){return _0x2b2192['update'](_0x330581)[_0x064b('0x23')](function(_0x33d63b){return _0x33d63b;});}return null;};}function removeEntity(_0xf6ff78,_0x8e09d7){return function(_0x2281af){if(_0x2281af){return _0x2281af[_0x064b('0x24')]()[_0x064b('0x23')](function(){var _0x3f69f3=_0x2281af['get']({'plain':!![]});var _0x4ab3e9=_0x064b('0x25');return db[_0x064b('0x26')][_0x064b('0x24')]({'where':{'type':_0x4ab3e9,'resourceId':_0x3f69f3['id']}})[_0x064b('0x23')](function(){return _0x2281af;});})['then'](function(){_0xf6ff78[_0x064b('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x47e7bd,_0x3e63e5){return function(_0x3b21c2){if(!_0x3b21c2){_0x47e7bd[_0x064b('0x17')](0x194);}return _0x3b21c2;};}function handleError(_0x309690,_0x1a158e){_0x1a158e=_0x1a158e||0x1f4;return function(_0x579723){logger[_0x064b('0x27')](_0x579723[_0x064b('0x28')]);if(_0x579723[_0x064b('0x29')]){delete _0x579723[_0x064b('0x29')];}_0x309690[_0x064b('0x18')](_0x1a158e)[_0x064b('0x2a')](_0x579723);};}exports[_0x064b('0x2b')]=function(_0x440e4e,_0x418809){var _0xf8cc31={},_0x1f7e2a={},_0x5e7045={'count':0x0,'rows':[]};var _0xedecb5=_['map'](db[_0x064b('0x2c')][_0x064b('0x2d')],function(_0x3ddc3d){return{'name':_0x3ddc3d['fieldName'],'type':_0x3ddc3d[_0x064b('0x2e')][_0x064b('0x2f')]};});_0x1f7e2a[_0x064b('0x30')]=_[_0x064b('0x31')](_0xedecb5,_0x064b('0x29'));_0x1f7e2a[_0x064b('0x32')]=_[_0x064b('0x33')](_0x440e4e[_0x064b('0x32')]);_0x1f7e2a[_0x064b('0x34')]=_[_0x064b('0x35')](_0x1f7e2a['model'],_0x1f7e2a[_0x064b('0x32')]);_0xf8cc31[_0x064b('0x36')]=_[_0x064b('0x35')](_0x1f7e2a['model'],qs['fields'](_0x440e4e[_0x064b('0x32')]['fields']));_0xf8cc31['attributes']=_0xf8cc31[_0x064b('0x36')][_0x064b('0x37')]?_0xf8cc31[_0x064b('0x36')]:_0x1f7e2a[_0x064b('0x30')];if(!_0x440e4e['query'][_0x064b('0x38')](_0x064b('0x39'))){_0xf8cc31['limit']=qs[_0x064b('0x1c')](_0x440e4e[_0x064b('0x32')][_0x064b('0x1c')]);_0xf8cc31['offset']=qs[_0x064b('0x1d')](_0x440e4e[_0x064b('0x32')][_0x064b('0x1d')]);}_0xf8cc31[_0x064b('0x3a')]=qs[_0x064b('0x3b')](_0x440e4e[_0x064b('0x32')]['sort']);_0xf8cc31['where']=qs['filters'](_['pick'](_0x440e4e[_0x064b('0x32')],_0x1f7e2a[_0x064b('0x34')]),_0xedecb5);if(_0x440e4e[_0x064b('0x32')][_0x064b('0x3c')]){_0xf8cc31[_0x064b('0x3d')]=_[_0x064b('0x3e')](_0xf8cc31['where'],{'$or':_[_0x064b('0x31')](_0xedecb5,function(_0x30a17c){if(_0x30a17c[_0x064b('0x2e')]!==_0x064b('0x3f')){var _0x5c634a={};_0x5c634a[_0x30a17c[_0x064b('0x29')]]={'$like':'%'+_0x440e4e[_0x064b('0x32')]['filter']+'%'};return _0x5c634a;}})});}_0xf8cc31=_[_0x064b('0x3e')]({},_0xf8cc31,_0x440e4e[_0x064b('0x40')]);var _0x191f49={'where':_0xf8cc31[_0x064b('0x3d')]};return db[_0x064b('0x2c')][_0x064b('0x1e')](_0x191f49)['then'](function(_0x59868f){_0x5e7045['count']=_0x59868f;if(_0x440e4e[_0x064b('0x32')]['includeAll']){_0xf8cc31[_0x064b('0x41')]=[{'all':!![]}];}return db[_0x064b('0x2c')][_0x064b('0x42')](_0xf8cc31);})[_0x064b('0x23')](function(_0x3c46dd){_0x5e7045[_0x064b('0x43')]=_0x3c46dd;return _0x5e7045;})['then'](respondWithFilteredResult(_0x418809,_0xf8cc31))[_0x064b('0x44')](handleError(_0x418809,null));};exports[_0x064b('0x45')]=function(_0x51b6b9,_0x1026d9){var _0x5cf04={'raw':!![],'where':{'id':_0x51b6b9[_0x064b('0x46')]['id']}},_0x478b96={};_0x478b96[_0x064b('0x30')]=_['keys'](db[_0x064b('0x2c')][_0x064b('0x2d')]);_0x478b96['query']=_[_0x064b('0x33')](_0x51b6b9[_0x064b('0x32')]);_0x478b96[_0x064b('0x34')]=_[_0x064b('0x35')](_0x478b96[_0x064b('0x30')],_0x478b96[_0x064b('0x32')]);_0x5cf04[_0x064b('0x36')]=_['intersection'](_0x478b96[_0x064b('0x30')],qs[_0x064b('0x47')](_0x51b6b9[_0x064b('0x32')][_0x064b('0x47')]));_0x5cf04[_0x064b('0x36')]=_0x5cf04['attributes']['length']?_0x5cf04['attributes']:_0x478b96[_0x064b('0x30')];if(_0x51b6b9['query'][_0x064b('0x48')]){_0x5cf04['include']=[{'all':!![]}];}_0x5cf04=_[_0x064b('0x3e')]({},_0x5cf04,_0x51b6b9[_0x064b('0x40')]);return db['Template']['find'](_0x5cf04)[_0x064b('0x23')](handleEntityNotFound(_0x1026d9,null))[_0x064b('0x23')](respondWithResult(_0x1026d9,null))[_0x064b('0x44')](handleError(_0x1026d9,null));};exports[_0x064b('0x49')]=function(_0x4a462,_0x2b2e03){return db[_0x064b('0x2c')][_0x064b('0x49')](_0x4a462[_0x064b('0x4a')],{})[_0x064b('0x23')](function(_0x25f41f){var _0x28eb94=_0x4a462['user'][_0x064b('0x4b')]({'plain':!![]});if(!_0x28eb94)throw new Error(_0x064b('0x4c'));if(_0x28eb94[_0x064b('0x4d')]===_0x064b('0x4e')){var _0x10def9=_0x25f41f[_0x064b('0x4b')]({'plain':!![]});var _0x3f4e0a=_0x064b('0x25');return db['UserProfileSection']['find']({'where':{'name':_0x3f4e0a,'userProfileId':_0x28eb94['userProfileId']},'raw':!![]})[_0x064b('0x23')](function(_0x55a2a1){if(_0x55a2a1&&_0x55a2a1['autoAssociation']===0x0){return db['UserProfileResource'][_0x064b('0x49')]({'name':_0x10def9[_0x064b('0x29')],'resourceId':_0x10def9['id'],'type':_0x55a2a1[_0x064b('0x29')],'sectionId':_0x55a2a1['id']},{})[_0x064b('0x23')](function(){return _0x25f41f;});}else{return _0x25f41f;}})[_0x064b('0x44')](function(_0x114506){logger['error'](_0x064b('0x4f'),_0x114506);throw _0x114506;});}return _0x25f41f;})[_0x064b('0x23')](respondWithResult(_0x2b2e03,0xc9))[_0x064b('0x44')](handleError(_0x2b2e03,null));};exports['update']=function(_0x1c83bf,_0x5b1beb){if(_0x1c83bf[_0x064b('0x4a')]['id']){delete _0x1c83bf[_0x064b('0x4a')]['id'];}return db[_0x064b('0x2c')]['find']({'where':{'id':_0x1c83bf[_0x064b('0x46')]['id']}})[_0x064b('0x23')](handleEntityNotFound(_0x5b1beb,null))['then'](saveUpdates(_0x1c83bf[_0x064b('0x4a')],null))[_0x064b('0x23')](respondWithResult(_0x5b1beb,null))[_0x064b('0x44')](handleError(_0x5b1beb,null));};exports[_0x064b('0x24')]=function(_0x4baeb6,_0x2efb08){return db[_0x064b('0x2c')][_0x064b('0x50')]({'where':{'id':_0x4baeb6[_0x064b('0x46')]['id']}})[_0x064b('0x23')](handleEntityNotFound(_0x2efb08,null))['then'](removeEntity(_0x2efb08,null))[_0x064b('0x44')](handleError(_0x2efb08,null));};