Built motion from commit 753c950e.|2.5.42
[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 _0xce82=['lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../mysqldb','sendStatus','status','end','offset','limit','undefined','count','set','Content-Range','apply','save','update','then','Templates','UserProfileResource','destroy','error','stack','name','send','index','rawAttributes','type','model','map','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','Template','include','rows','show','params','includeAll','options','find','create','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','catch','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','rimraf','zip-dir','request-promise','moment','mustache','path','sox','to-csv','ejs','fs-extra'];(function(_0x599c94,_0x464f0e){var _0x34e215=function(_0x36295a){while(--_0x36295a){_0x599c94['push'](_0x599c94['shift']());}};_0x34e215(++_0x464f0e);}(_0xce82,0x186));var _0x2ce8=function(_0xf244e5,_0x15751e){_0xf244e5=_0xf244e5-0x0;var _0x1d424f=_0xce82[_0xf244e5];return _0x1d424f;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x2ce8('0x0'));var zipdir=require(_0x2ce8('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x2ce8('0x2'));var moment=require(_0x2ce8('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x2ce8('0x4'));var util=require('util');var path=require(_0x2ce8('0x5'));var sox=require(_0x2ce8('0x6'));var csv=require(_0x2ce8('0x7'));var ejs=require(_0x2ce8('0x8'));var fs=require('fs');var fs_extra=require(_0x2ce8('0x9'));var _=require(_0x2ce8('0xa'));var squel=require(_0x2ce8('0xb'));var crypto=require(_0x2ce8('0xc'));var jsforce=require(_0x2ce8('0xd'));var deskjs=require(_0x2ce8('0xe'));var toCsv=require(_0x2ce8('0x7'));var querystring=require(_0x2ce8('0xf'));var Papa=require(_0x2ce8('0x10'));var Redis=require(_0x2ce8('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x2ce8('0x12'));var hardwareService=require(_0x2ce8('0x13'));var logger=require('../../config/logger')(_0x2ce8('0x14'));var utils=require(_0x2ce8('0x15'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x2ce8('0x16'))['db'];function respondWithStatusCode(_0x2a3c57,_0x2b0071){_0x2b0071=_0x2b0071||0xcc;return function(_0x2e636a){if(_0x2e636a){return _0x2a3c57[_0x2ce8('0x17')](_0x2b0071);}return _0x2a3c57[_0x2ce8('0x18')](_0x2b0071)[_0x2ce8('0x19')]();};}function respondWithResult(_0x955181,_0x1bc61a){_0x1bc61a=_0x1bc61a||0xc8;return function(_0xdde7e6){if(_0xdde7e6){return _0x955181[_0x2ce8('0x18')](_0x1bc61a)['json'](_0xdde7e6);}};}function respondWithFilteredResult(_0x382193,_0x5ca06e){return function(_0x1144fc){if(_0x1144fc){var _0x61808a=typeof _0x5ca06e[_0x2ce8('0x1a')]==='undefined'&&typeof _0x5ca06e[_0x2ce8('0x1b')]===_0x2ce8('0x1c');var _0x33b11e=_0x1144fc[_0x2ce8('0x1d')];var _0x2b3e33=_0x61808a?0x0:_0x5ca06e['offset'];var _0x302409=_0x61808a?_0x1144fc[_0x2ce8('0x1d')]:_0x5ca06e[_0x2ce8('0x1a')]+_0x5ca06e['limit'];var _0x48013e;if(_0x302409>=_0x33b11e){_0x302409=_0x33b11e;_0x48013e=0xc8;}else{_0x48013e=0xce;}_0x382193[_0x2ce8('0x18')](_0x48013e);return _0x382193[_0x2ce8('0x1e')](_0x2ce8('0x1f'),_0x2b3e33+'-'+_0x302409+'/'+_0x33b11e)['json'](_0x1144fc);}return null;};}function patchUpdates(_0x5f4b45){return function(_0x4a0476){try{jsonpatch[_0x2ce8('0x20')](_0x4a0476,_0x5f4b45,!![]);}catch(_0x2a92d1){return BPromise['reject'](_0x2a92d1);}return _0x4a0476[_0x2ce8('0x21')]();};}function saveUpdates(_0x1feb29,_0x5bf1fd){return function(_0xc6e74){if(_0xc6e74){return _0xc6e74[_0x2ce8('0x22')](_0x1feb29)[_0x2ce8('0x23')](function(_0x41a616){return _0x41a616;});}return null;};}function removeEntity(_0x420ca9,_0x58d3d7){return function(_0x1b1796){if(_0x1b1796){return _0x1b1796['destroy']()[_0x2ce8('0x23')](function(){var _0x4f75f7=_0x1b1796['get']({'plain':!![]});var _0x24aa8b=_0x2ce8('0x24');return db[_0x2ce8('0x25')][_0x2ce8('0x26')]({'where':{'type':_0x24aa8b,'resourceId':_0x4f75f7['id']}})[_0x2ce8('0x23')](function(){return _0x1b1796;});})[_0x2ce8('0x23')](function(){_0x420ca9[_0x2ce8('0x18')](0xcc)[_0x2ce8('0x19')]();});}};}function handleEntityNotFound(_0x19b73c,_0x381c7b){return function(_0x11964b){if(!_0x11964b){_0x19b73c['sendStatus'](0x194);}return _0x11964b;};}function handleError(_0x2eeebe,_0x557cb4){_0x557cb4=_0x557cb4||0x1f4;return function(_0x3204b4){logger[_0x2ce8('0x27')](_0x3204b4[_0x2ce8('0x28')]);if(_0x3204b4[_0x2ce8('0x29')]){delete _0x3204b4[_0x2ce8('0x29')];}_0x2eeebe['status'](_0x557cb4)[_0x2ce8('0x2a')](_0x3204b4);};}exports[_0x2ce8('0x2b')]=function(_0x26b5e5,_0x4998a5){var _0x88eca3={},_0x4b377a={},_0x269dc6={'count':0x0,'rows':[]};var _0x89c04b=_['map'](db['Template'][_0x2ce8('0x2c')],function(_0x48f220){return{'name':_0x48f220['fieldName'],'type':_0x48f220[_0x2ce8('0x2d')]['key']};});_0x4b377a[_0x2ce8('0x2e')]=_[_0x2ce8('0x2f')](_0x89c04b,_0x2ce8('0x29'));_0x4b377a[_0x2ce8('0x30')]=_[_0x2ce8('0x31')](_0x26b5e5[_0x2ce8('0x30')]);_0x4b377a['filters']=_[_0x2ce8('0x32')](_0x4b377a['model'],_0x4b377a['query']);_0x88eca3[_0x2ce8('0x33')]=_['intersection'](_0x4b377a['model'],qs[_0x2ce8('0x34')](_0x26b5e5[_0x2ce8('0x30')][_0x2ce8('0x34')]));_0x88eca3['attributes']=_0x88eca3[_0x2ce8('0x33')][_0x2ce8('0x35')]?_0x88eca3[_0x2ce8('0x33')]:_0x4b377a[_0x2ce8('0x2e')];if(!_0x26b5e5['query'][_0x2ce8('0x36')](_0x2ce8('0x37'))){_0x88eca3['limit']=qs['limit'](_0x26b5e5[_0x2ce8('0x30')][_0x2ce8('0x1b')]);_0x88eca3[_0x2ce8('0x1a')]=qs[_0x2ce8('0x1a')](_0x26b5e5[_0x2ce8('0x30')]['offset']);}_0x88eca3[_0x2ce8('0x38')]=qs[_0x2ce8('0x39')](_0x26b5e5[_0x2ce8('0x30')][_0x2ce8('0x39')]);_0x88eca3[_0x2ce8('0x3a')]=qs[_0x2ce8('0x3b')](_[_0x2ce8('0x3c')](_0x26b5e5[_0x2ce8('0x30')],_0x4b377a[_0x2ce8('0x3b')]),_0x89c04b);if(_0x26b5e5[_0x2ce8('0x30')]['filter']){_0x88eca3['where']=_['merge'](_0x88eca3[_0x2ce8('0x3a')],{'$or':_[_0x2ce8('0x2f')](_0x89c04b,function(_0x518674){if(_0x518674['type']!=='VIRTUAL'){var _0x5bc08b={};_0x5bc08b[_0x518674[_0x2ce8('0x29')]]={'$like':'%'+_0x26b5e5['query'][_0x2ce8('0x3d')]+'%'};return _0x5bc08b;}})});}_0x88eca3=_[_0x2ce8('0x3e')]({},_0x88eca3,_0x26b5e5['options']);var _0x1b3e49={'where':_0x88eca3['where']};return db[_0x2ce8('0x3f')][_0x2ce8('0x1d')](_0x1b3e49)[_0x2ce8('0x23')](function(_0x1cdbf2){_0x269dc6['count']=_0x1cdbf2;if(_0x26b5e5[_0x2ce8('0x30')]['includeAll']){_0x88eca3[_0x2ce8('0x40')]=[{'all':!![]}];}return db[_0x2ce8('0x3f')]['findAll'](_0x88eca3);})[_0x2ce8('0x23')](function(_0x44c3e0){_0x269dc6[_0x2ce8('0x41')]=_0x44c3e0;return _0x269dc6;})[_0x2ce8('0x23')](respondWithFilteredResult(_0x4998a5,_0x88eca3))['catch'](handleError(_0x4998a5,null));};exports[_0x2ce8('0x42')]=function(_0xdb17b6,_0x2fbbec){var _0x3130ec={'raw':!![],'where':{'id':_0xdb17b6[_0x2ce8('0x43')]['id']}},_0x568bfd={};_0x568bfd[_0x2ce8('0x2e')]=_[_0x2ce8('0x31')](db[_0x2ce8('0x3f')]['rawAttributes']);_0x568bfd[_0x2ce8('0x30')]=_[_0x2ce8('0x31')](_0xdb17b6[_0x2ce8('0x30')]);_0x568bfd[_0x2ce8('0x3b')]=_['intersection'](_0x568bfd[_0x2ce8('0x2e')],_0x568bfd[_0x2ce8('0x30')]);_0x3130ec[_0x2ce8('0x33')]=_[_0x2ce8('0x32')](_0x568bfd[_0x2ce8('0x2e')],qs[_0x2ce8('0x34')](_0xdb17b6[_0x2ce8('0x30')][_0x2ce8('0x34')]));_0x3130ec[_0x2ce8('0x33')]=_0x3130ec[_0x2ce8('0x33')][_0x2ce8('0x35')]?_0x3130ec[_0x2ce8('0x33')]:_0x568bfd[_0x2ce8('0x2e')];if(_0xdb17b6[_0x2ce8('0x30')][_0x2ce8('0x44')]){_0x3130ec['include']=[{'all':!![]}];}_0x3130ec=_['merge']({},_0x3130ec,_0xdb17b6[_0x2ce8('0x45')]);return db[_0x2ce8('0x3f')][_0x2ce8('0x46')](_0x3130ec)[_0x2ce8('0x23')](handleEntityNotFound(_0x2fbbec,null))[_0x2ce8('0x23')](respondWithResult(_0x2fbbec,null))['catch'](handleError(_0x2fbbec,null));};exports[_0x2ce8('0x47')]=function(_0x557add,_0x266e0c){return db[_0x2ce8('0x3f')][_0x2ce8('0x47')](_0x557add['body'],{})[_0x2ce8('0x23')](function(_0x34ef4e){var _0x235eff=_0x557add[_0x2ce8('0x48')][_0x2ce8('0x49')]({'plain':!![]});if(!_0x235eff)throw new Error(_0x2ce8('0x4a'));if(_0x235eff[_0x2ce8('0x4b')]===_0x2ce8('0x48')){var _0x161457=_0x34ef4e[_0x2ce8('0x49')]({'plain':!![]});var _0x21bb74=_0x2ce8('0x24');return db[_0x2ce8('0x4c')][_0x2ce8('0x46')]({'where':{'name':_0x21bb74,'userProfileId':_0x235eff['userProfileId']},'raw':!![]})[_0x2ce8('0x23')](function(_0x351172){if(_0x351172&&_0x351172['autoAssociation']===0x0){return db['UserProfileResource'][_0x2ce8('0x47')]({'name':_0x161457[_0x2ce8('0x29')],'resourceId':_0x161457['id'],'type':_0x351172[_0x2ce8('0x29')],'sectionId':_0x351172['id']},{})['then'](function(){return _0x34ef4e;});}else{return _0x34ef4e;}})[_0x2ce8('0x4d')](function(_0x4f6454){logger[_0x2ce8('0x27')](_0x2ce8('0x4e'),_0x4f6454);throw _0x4f6454;});}return _0x34ef4e;})[_0x2ce8('0x23')](respondWithResult(_0x266e0c,0xc9))[_0x2ce8('0x4d')](handleError(_0x266e0c,null));};exports['update']=function(_0x201b73,_0x318a99){if(_0x201b73[_0x2ce8('0x4f')]['id']){delete _0x201b73[_0x2ce8('0x4f')]['id'];}return db[_0x2ce8('0x3f')][_0x2ce8('0x46')]({'where':{'id':_0x201b73[_0x2ce8('0x43')]['id']}})['then'](handleEntityNotFound(_0x318a99,null))[_0x2ce8('0x23')](saveUpdates(_0x201b73[_0x2ce8('0x4f')],null))[_0x2ce8('0x23')](respondWithResult(_0x318a99,null))[_0x2ce8('0x4d')](handleError(_0x318a99,null));};exports[_0x2ce8('0x26')]=function(_0xa82131,_0x1d3707){return db['Template'][_0x2ce8('0x46')]({'where':{'id':_0xa82131[_0x2ce8('0x43')]['id']}})[_0x2ce8('0x23')](handleEntityNotFound(_0x1d3707,null))['then'](removeEntity(_0x1d3707,null))[_0x2ce8('0x4d')](handleError(_0x1d3707,null));};