Built motion from commit (unavailable).|2.5.2
[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 _0x3f84=['end','count','offset','limit','set','Content-Range','json','apply','reject','save','update','then','destroy','Templates','UserProfileResource','error','stack','name','index','map','rawAttributes','type','key','model','query','keys','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','filter','merge','VIRTUAL','Template','includeAll','include','catch','show','params','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','zip-dir','request-promise','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status'];(function(_0x470fb4,_0xb22632){var _0x3101dc=function(_0xa9e593){while(--_0xa9e593){_0x470fb4['push'](_0x470fb4['shift']());}};_0x3101dc(++_0xb22632);}(_0x3f84,0x1b6));var _0x43f8=function(_0x165fa0,_0x3a25a9){_0x165fa0=_0x165fa0-0x0;var _0x5d58bb=_0x3f84[_0x165fa0];return _0x5d58bb;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x43f8('0x0'));var jsonpatch=require('fast-json-patch');var rp=require(_0x43f8('0x1'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x43f8('0x2'));var util=require(_0x43f8('0x3'));var path=require(_0x43f8('0x4'));var sox=require(_0x43f8('0x5'));var csv=require(_0x43f8('0x6'));var ejs=require(_0x43f8('0x7'));var fs=require('fs');var _=require(_0x43f8('0x8'));var squel=require(_0x43f8('0x9'));var crypto=require(_0x43f8('0xa'));var jsforce=require(_0x43f8('0xb'));var deskjs=require(_0x43f8('0xc'));var toCsv=require(_0x43f8('0x6'));var querystring=require('querystring');var Papa=require(_0x43f8('0xd'));var Redis=require(_0x43f8('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x43f8('0xf'));var as=require(_0x43f8('0x10'));var hardwareService=require(_0x43f8('0x11'));var logger=require('../../config/logger')(_0x43f8('0x12'));var utils=require(_0x43f8('0x13'));var config=require(_0x43f8('0x14'));var db=require(_0x43f8('0x15'))['db'];function respondWithStatusCode(_0xe637f6,_0x4f19a4){_0x4f19a4=_0x4f19a4||0xcc;return function(_0x11fd3c){if(_0x11fd3c){return _0xe637f6[_0x43f8('0x16')](_0x4f19a4);}return _0xe637f6[_0x43f8('0x17')](_0x4f19a4)[_0x43f8('0x18')]();};}function respondWithResult(_0x1133f7,_0x20bcf6){_0x20bcf6=_0x20bcf6||0xc8;return function(_0x20d09b){if(_0x20d09b){return _0x1133f7[_0x43f8('0x17')](_0x20bcf6)['json'](_0x20d09b);}};}function respondWithFilteredResult(_0x21a221,_0x4f8916){return function(_0x1aa424){if(_0x1aa424){var _0x373958=_0x1aa424[_0x43f8('0x19')],_0x2df684=_0x4f8916[_0x43f8('0x1a')],_0x1c8bdf=_0x4f8916['offset']+_0x4f8916[_0x43f8('0x1b')],_0x100fa7;if(_0x1c8bdf>=_0x373958){_0x1c8bdf=_0x373958;_0x100fa7=0xc8;}else{_0x100fa7=0xce;}_0x21a221[_0x43f8('0x17')](_0x100fa7);return _0x21a221[_0x43f8('0x1c')](_0x43f8('0x1d'),_0x2df684+'-'+_0x1c8bdf+'/'+_0x373958)[_0x43f8('0x1e')](_0x1aa424);}return null;};}function patchUpdates(_0x506004){return function(_0x43c541){try{jsonpatch[_0x43f8('0x1f')](_0x43c541,_0x506004,!![]);}catch(_0x4c1630){return BPromise[_0x43f8('0x20')](_0x4c1630);}return _0x43c541[_0x43f8('0x21')]();};}function saveUpdates(_0x101aab,_0x3a3065){return function(_0x57b65e){if(_0x57b65e){return _0x57b65e[_0x43f8('0x22')](_0x101aab)[_0x43f8('0x23')](function(_0x5d271c){return _0x5d271c;});}return null;};}function removeEntity(_0x8f91c3,_0x123f3c){return function(_0x1b7e08){if(_0x1b7e08){return _0x1b7e08[_0x43f8('0x24')]()[_0x43f8('0x23')](function(){var _0x447126=_0x1b7e08['get']({'plain':!![]});var _0x42c688=_0x43f8('0x25');return db[_0x43f8('0x26')][_0x43f8('0x24')]({'where':{'type':_0x42c688,'resourceId':_0x447126['id']}})['then'](function(){return _0x1b7e08;});})[_0x43f8('0x23')](function(){_0x8f91c3[_0x43f8('0x17')](0xcc)[_0x43f8('0x18')]();});}};}function handleEntityNotFound(_0x53fbdf,_0x3f9bc0){return function(_0x2af980){if(!_0x2af980){_0x53fbdf[_0x43f8('0x16')](0x194);}return _0x2af980;};}function handleError(_0x15a0a8,_0x3a7a38){_0x3a7a38=_0x3a7a38||0x1f4;return function(_0x21dd3b){logger[_0x43f8('0x27')](_0x21dd3b[_0x43f8('0x28')]);if(_0x21dd3b['name']){delete _0x21dd3b[_0x43f8('0x29')];}_0x15a0a8['status'](_0x3a7a38)['send'](_0x21dd3b);};}exports[_0x43f8('0x2a')]=function(_0x487fd7,_0x49d99b){var _0x5a383d={},_0x3756ac={},_0x43c89e={'count':0x0,'rows':[]};var _0x53079d=_[_0x43f8('0x2b')](db['Template'][_0x43f8('0x2c')],function(_0x25e9ae){return{'name':_0x25e9ae['fieldName'],'type':_0x25e9ae[_0x43f8('0x2d')][_0x43f8('0x2e')]};});_0x3756ac[_0x43f8('0x2f')]=_[_0x43f8('0x2b')](_0x53079d,_0x43f8('0x29'));_0x3756ac[_0x43f8('0x30')]=_[_0x43f8('0x31')](_0x487fd7['query']);_0x3756ac['filters']=_[_0x43f8('0x32')](_0x3756ac['model'],_0x3756ac['query']);_0x5a383d['attributes']=_[_0x43f8('0x32')](_0x3756ac[_0x43f8('0x2f')],qs[_0x43f8('0x33')](_0x487fd7['query'][_0x43f8('0x33')]));_0x5a383d['attributes']=_0x5a383d[_0x43f8('0x34')][_0x43f8('0x35')]?_0x5a383d[_0x43f8('0x34')]:_0x3756ac[_0x43f8('0x2f')];if(!_0x487fd7['query'][_0x43f8('0x36')](_0x43f8('0x37'))){_0x5a383d['limit']=qs[_0x43f8('0x1b')](_0x487fd7[_0x43f8('0x30')][_0x43f8('0x1b')]);_0x5a383d[_0x43f8('0x1a')]=qs[_0x43f8('0x1a')](_0x487fd7[_0x43f8('0x30')][_0x43f8('0x1a')]);}_0x5a383d[_0x43f8('0x38')]=qs[_0x43f8('0x39')](_0x487fd7[_0x43f8('0x30')]['sort']);_0x5a383d[_0x43f8('0x3a')]=qs[_0x43f8('0x3b')](_['pick'](_0x487fd7[_0x43f8('0x30')],_0x3756ac[_0x43f8('0x3b')]),_0x53079d);if(_0x487fd7[_0x43f8('0x30')][_0x43f8('0x3c')]){_0x5a383d[_0x43f8('0x3a')]=_[_0x43f8('0x3d')](_0x5a383d[_0x43f8('0x3a')],{'$or':_[_0x43f8('0x2b')](_0x53079d,function(_0x8a73d9){if(_0x8a73d9[_0x43f8('0x2d')]!==_0x43f8('0x3e')){var _0x364ba8={};_0x364ba8[_0x8a73d9['name']]={'$like':'%'+_0x487fd7[_0x43f8('0x30')]['filter']+'%'};return _0x364ba8;}})});}_0x5a383d=_[_0x43f8('0x3d')]({},_0x5a383d,_0x487fd7['options']);var _0x29824d={'where':_0x5a383d['where']};return db[_0x43f8('0x3f')]['count'](_0x29824d)[_0x43f8('0x23')](function(_0x1493d3){_0x43c89e[_0x43f8('0x19')]=_0x1493d3;if(_0x487fd7[_0x43f8('0x30')][_0x43f8('0x40')]){_0x5a383d[_0x43f8('0x41')]=[{'all':!![]}];}return db[_0x43f8('0x3f')]['findAll'](_0x5a383d);})[_0x43f8('0x23')](function(_0x128309){_0x43c89e['rows']=_0x128309;return _0x43c89e;})['then'](respondWithFilteredResult(_0x49d99b,_0x5a383d))[_0x43f8('0x42')](handleError(_0x49d99b,null));};exports[_0x43f8('0x43')]=function(_0x54b61b,_0x1d862e){var _0x4dc8a0={'raw':!![],'where':{'id':_0x54b61b[_0x43f8('0x44')]['id']}},_0x41ff34={};_0x41ff34['model']=_[_0x43f8('0x31')](db[_0x43f8('0x3f')][_0x43f8('0x2c')]);_0x41ff34[_0x43f8('0x30')]=_['keys'](_0x54b61b['query']);_0x41ff34['filters']=_['intersection'](_0x41ff34[_0x43f8('0x2f')],_0x41ff34[_0x43f8('0x30')]);_0x4dc8a0[_0x43f8('0x34')]=_[_0x43f8('0x32')](_0x41ff34['model'],qs[_0x43f8('0x33')](_0x54b61b['query'][_0x43f8('0x33')]));_0x4dc8a0[_0x43f8('0x34')]=_0x4dc8a0[_0x43f8('0x34')]['length']?_0x4dc8a0[_0x43f8('0x34')]:_0x41ff34[_0x43f8('0x2f')];if(_0x54b61b[_0x43f8('0x30')][_0x43f8('0x40')]){_0x4dc8a0['include']=[{'all':!![]}];}_0x4dc8a0=_[_0x43f8('0x3d')]({},_0x4dc8a0,_0x54b61b['options']);return db[_0x43f8('0x3f')][_0x43f8('0x45')](_0x4dc8a0)['then'](handleEntityNotFound(_0x1d862e,null))[_0x43f8('0x23')](respondWithResult(_0x1d862e,null))[_0x43f8('0x42')](handleError(_0x1d862e,null));};exports[_0x43f8('0x46')]=function(_0x2a5c1d,_0x478da6){return db[_0x43f8('0x3f')][_0x43f8('0x46')](_0x2a5c1d[_0x43f8('0x47')],{})[_0x43f8('0x23')](function(_0x3d00ce){var _0x12f761=_0x2a5c1d[_0x43f8('0x48')][_0x43f8('0x49')]({'plain':!![]});if(!_0x12f761)throw new Error(_0x43f8('0x4a'));if(_0x12f761[_0x43f8('0x4b')]===_0x43f8('0x48')){var _0x418837=_0x3d00ce[_0x43f8('0x49')]({'plain':!![]});var _0x41d91e=_0x43f8('0x25');return db['UserProfileSection']['find']({'where':{'name':_0x41d91e,'userProfileId':_0x12f761['userProfileId']},'raw':!![]})[_0x43f8('0x23')](function(_0x112be2){if(_0x112be2&&_0x112be2['autoAssociation']===0x0){return db['UserProfileResource'][_0x43f8('0x46')]({'name':_0x418837[_0x43f8('0x29')],'resourceId':_0x418837['id'],'type':_0x112be2[_0x43f8('0x29')],'sectionId':_0x112be2['id']},{})[_0x43f8('0x23')](function(){return _0x3d00ce;});}else{return _0x3d00ce;}})[_0x43f8('0x42')](function(_0x213a6f){logger[_0x43f8('0x27')](_0x43f8('0x4c'),_0x213a6f);throw _0x213a6f;});}return _0x3d00ce;})[_0x43f8('0x23')](respondWithResult(_0x478da6,0xc9))[_0x43f8('0x42')](handleError(_0x478da6,null));};exports['update']=function(_0x1153cd,_0x23548c){if(_0x1153cd[_0x43f8('0x47')]['id']){delete _0x1153cd[_0x43f8('0x47')]['id'];}return db['Template']['find']({'where':{'id':_0x1153cd[_0x43f8('0x44')]['id']}})['then'](handleEntityNotFound(_0x23548c,null))[_0x43f8('0x23')](saveUpdates(_0x1153cd[_0x43f8('0x47')],null))[_0x43f8('0x23')](respondWithResult(_0x23548c,null))['catch'](handleError(_0x23548c,null));};exports[_0x43f8('0x24')]=function(_0x5fba31,_0x2f4b9a){return db['Template'][_0x43f8('0x45')]({'where':{'id':_0x5fba31[_0x43f8('0x44')]['id']}})[_0x43f8('0x23')](handleEntityNotFound(_0x2f4b9a,null))[_0x43f8('0x23')](removeEntity(_0x2f4b9a,null))[_0x43f8('0x42')](handleError(_0x2f4b9a,null));};