Built motion from commit b0a9a629.|2.6.33
[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 _0xb460=['body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','get','Templates','UserProfileResource','destroy','then','stack','name','send','index','map','Template','fieldName','type','query','keys','intersection','model','attributes','fields','hasOwnProperty','order','sort','where','filters','pick','filter','merge','options','includeAll','include','rows','catch','show','params','rawAttributes','find','create'];(function(_0x3565ae,_0x42ce0e){var _0x1f6ef9=function(_0x27ffd8){while(--_0x27ffd8){_0x3565ae['push'](_0x3565ae['shift']());}};_0x1f6ef9(++_0x42ce0e);}(_0xb460,0x100));var _0x0b46=function(_0x5dee7f,_0x1451af){_0x5dee7f=_0x5dee7f-0x0;var _0x2699fa=_0xb460[_0x5dee7f];return _0x2699fa;};'use strict';var emlformat=require(_0x0b46('0x0'));var rimraf=require(_0x0b46('0x1'));var zipdir=require(_0x0b46('0x2'));var jsonpatch=require(_0x0b46('0x3'));var rp=require('request-promise');var moment=require(_0x0b46('0x4'));var BPromise=require(_0x0b46('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0x0b46('0x6'));var sox=require(_0x0b46('0x7'));var csv=require(_0x0b46('0x8'));var ejs=require(_0x0b46('0x9'));var fs=require('fs');var fs_extra=require(_0x0b46('0xa'));var _=require(_0x0b46('0xb'));var squel=require(_0x0b46('0xc'));var crypto=require('crypto');var jsforce=require(_0x0b46('0xd'));var deskjs=require(_0x0b46('0xe'));var toCsv=require('to-csv');var querystring=require(_0x0b46('0xf'));var Papa=require(_0x0b46('0x10'));var Redis=require('ioredis');var authService=require(_0x0b46('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x0b46('0x12'));var hardwareService=require(_0x0b46('0x13'));var logger=require(_0x0b46('0x14'))(_0x0b46('0x15'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x0b46('0x16'))['db'];function respondWithStatusCode(_0xf4d219,_0x3470c7){_0x3470c7=_0x3470c7||0xcc;return function(_0x22a8a8){if(_0x22a8a8){return _0xf4d219[_0x0b46('0x17')](_0x3470c7);}return _0xf4d219[_0x0b46('0x18')](_0x3470c7)[_0x0b46('0x19')]();};}function respondWithResult(_0x310a75,_0x81820a){_0x81820a=_0x81820a||0xc8;return function(_0xea587a){if(_0xea587a){return _0x310a75[_0x0b46('0x18')](_0x81820a)[_0x0b46('0x1a')](_0xea587a);}};}function respondWithFilteredResult(_0x14a482,_0x599578){return function(_0x36a226){if(_0x36a226){var _0x1911e3=typeof _0x599578['offset']===_0x0b46('0x1b')&&typeof _0x599578[_0x0b46('0x1c')]===_0x0b46('0x1b');var _0x41f195=_0x36a226[_0x0b46('0x1d')];var _0xe3792=_0x1911e3?0x0:_0x599578[_0x0b46('0x1e')];var _0x17fc0b=_0x1911e3?_0x36a226[_0x0b46('0x1d')]:_0x599578['offset']+_0x599578[_0x0b46('0x1c')];var _0x4ec3e4;if(_0x17fc0b>=_0x41f195){_0x17fc0b=_0x41f195;_0x4ec3e4=0xc8;}else{_0x4ec3e4=0xce;}_0x14a482[_0x0b46('0x18')](_0x4ec3e4);return _0x14a482[_0x0b46('0x1f')](_0x0b46('0x20'),_0xe3792+'-'+_0x17fc0b+'/'+_0x41f195)[_0x0b46('0x1a')](_0x36a226);}return null;};}function patchUpdates(_0x5ef155){return function(_0x18b979){try{jsonpatch[_0x0b46('0x21')](_0x18b979,_0x5ef155,!![]);}catch(_0x449116){return BPromise[_0x0b46('0x22')](_0x449116);}return _0x18b979['save']();};}function saveUpdates(_0x45bde3,_0x78ee7b){return function(_0x3a449e){if(_0x3a449e){return _0x3a449e['update'](_0x45bde3)['then'](function(_0x2c7f6e){return _0x2c7f6e;});}return null;};}function removeEntity(_0x57dfa5,_0x58b24c){return function(_0x235696){if(_0x235696){return _0x235696['destroy']()['then'](function(){var _0x2944ad=_0x235696[_0x0b46('0x23')]({'plain':!![]});var _0x49057e=_0x0b46('0x24');return db[_0x0b46('0x25')][_0x0b46('0x26')]({'where':{'type':_0x49057e,'resourceId':_0x2944ad['id']}})[_0x0b46('0x27')](function(){return _0x235696;});})[_0x0b46('0x27')](function(){_0x57dfa5[_0x0b46('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x382911,_0x414af8){return function(_0x221a39){if(!_0x221a39){_0x382911[_0x0b46('0x17')](0x194);}return _0x221a39;};}function handleError(_0x457968,_0x2d6d74){_0x2d6d74=_0x2d6d74||0x1f4;return function(_0x56abd9){logger['error'](_0x56abd9[_0x0b46('0x28')]);if(_0x56abd9[_0x0b46('0x29')]){delete _0x56abd9[_0x0b46('0x29')];}_0x457968[_0x0b46('0x18')](_0x2d6d74)[_0x0b46('0x2a')](_0x56abd9);};}exports[_0x0b46('0x2b')]=function(_0x49b536,_0x19566e){var _0x5b50f6={},_0xf44c94={},_0x4df1f5={'count':0x0,'rows':[]};var _0x5db314=_[_0x0b46('0x2c')](db[_0x0b46('0x2d')]['rawAttributes'],function(_0x4e4eb3){return{'name':_0x4e4eb3[_0x0b46('0x2e')],'type':_0x4e4eb3[_0x0b46('0x2f')]['key']};});_0xf44c94['model']=_[_0x0b46('0x2c')](_0x5db314,_0x0b46('0x29'));_0xf44c94[_0x0b46('0x30')]=_[_0x0b46('0x31')](_0x49b536[_0x0b46('0x30')]);_0xf44c94['filters']=_[_0x0b46('0x32')](_0xf44c94[_0x0b46('0x33')],_0xf44c94[_0x0b46('0x30')]);_0x5b50f6[_0x0b46('0x34')]=_[_0x0b46('0x32')](_0xf44c94['model'],qs[_0x0b46('0x35')](_0x49b536[_0x0b46('0x30')][_0x0b46('0x35')]));_0x5b50f6[_0x0b46('0x34')]=_0x5b50f6[_0x0b46('0x34')]['length']?_0x5b50f6['attributes']:_0xf44c94['model'];if(!_0x49b536[_0x0b46('0x30')][_0x0b46('0x36')]('nolimit')){_0x5b50f6[_0x0b46('0x1c')]=qs[_0x0b46('0x1c')](_0x49b536['query'][_0x0b46('0x1c')]);_0x5b50f6[_0x0b46('0x1e')]=qs['offset'](_0x49b536['query'][_0x0b46('0x1e')]);}_0x5b50f6[_0x0b46('0x37')]=qs[_0x0b46('0x38')](_0x49b536[_0x0b46('0x30')][_0x0b46('0x38')]);_0x5b50f6[_0x0b46('0x39')]=qs[_0x0b46('0x3a')](_[_0x0b46('0x3b')](_0x49b536[_0x0b46('0x30')],_0xf44c94[_0x0b46('0x3a')]),_0x5db314);if(_0x49b536[_0x0b46('0x30')][_0x0b46('0x3c')]){_0x5b50f6[_0x0b46('0x39')]=_[_0x0b46('0x3d')](_0x5b50f6[_0x0b46('0x39')],{'$or':_[_0x0b46('0x2c')](_0x5db314,function(_0x3639e5){if(_0x3639e5[_0x0b46('0x2f')]!=='VIRTUAL'){var _0x1eda1d={};_0x1eda1d[_0x3639e5['name']]={'$like':'%'+_0x49b536[_0x0b46('0x30')][_0x0b46('0x3c')]+'%'};return _0x1eda1d;}})});}_0x5b50f6=_[_0x0b46('0x3d')]({},_0x5b50f6,_0x49b536[_0x0b46('0x3e')]);var _0x5680aa={'where':_0x5b50f6[_0x0b46('0x39')]};return db['Template'][_0x0b46('0x1d')](_0x5680aa)[_0x0b46('0x27')](function(_0x15c9c6){_0x4df1f5[_0x0b46('0x1d')]=_0x15c9c6;if(_0x49b536[_0x0b46('0x30')][_0x0b46('0x3f')]){_0x5b50f6[_0x0b46('0x40')]=[{'all':!![]}];}return db[_0x0b46('0x2d')]['findAll'](_0x5b50f6);})['then'](function(_0x18956b){_0x4df1f5[_0x0b46('0x41')]=_0x18956b;return _0x4df1f5;})[_0x0b46('0x27')](respondWithFilteredResult(_0x19566e,_0x5b50f6))[_0x0b46('0x42')](handleError(_0x19566e,null));};exports[_0x0b46('0x43')]=function(_0x47f09f,_0x4ae8b9){var _0x344e1f={'raw':!![],'where':{'id':_0x47f09f[_0x0b46('0x44')]['id']}},_0x5445fc={};_0x5445fc[_0x0b46('0x33')]=_['keys'](db[_0x0b46('0x2d')][_0x0b46('0x45')]);_0x5445fc['query']=_[_0x0b46('0x31')](_0x47f09f[_0x0b46('0x30')]);_0x5445fc[_0x0b46('0x3a')]=_[_0x0b46('0x32')](_0x5445fc[_0x0b46('0x33')],_0x5445fc['query']);_0x344e1f[_0x0b46('0x34')]=_[_0x0b46('0x32')](_0x5445fc[_0x0b46('0x33')],qs[_0x0b46('0x35')](_0x47f09f[_0x0b46('0x30')][_0x0b46('0x35')]));_0x344e1f[_0x0b46('0x34')]=_0x344e1f[_0x0b46('0x34')]['length']?_0x344e1f[_0x0b46('0x34')]:_0x5445fc['model'];if(_0x47f09f[_0x0b46('0x30')][_0x0b46('0x3f')]){_0x344e1f['include']=[{'all':!![]}];}_0x344e1f=_['merge']({},_0x344e1f,_0x47f09f[_0x0b46('0x3e')]);return db['Template'][_0x0b46('0x46')](_0x344e1f)[_0x0b46('0x27')](handleEntityNotFound(_0x4ae8b9,null))[_0x0b46('0x27')](respondWithResult(_0x4ae8b9,null))[_0x0b46('0x42')](handleError(_0x4ae8b9,null));};exports[_0x0b46('0x47')]=function(_0x5d8b09,_0x1d9a58){return db['Template'][_0x0b46('0x47')](_0x5d8b09[_0x0b46('0x48')],{})[_0x0b46('0x27')](function(_0x52c14a){var _0x1a9d38=_0x5d8b09[_0x0b46('0x49')]['get']({'plain':!![]});if(!_0x1a9d38)throw new Error(_0x0b46('0x4a'));if(_0x1a9d38[_0x0b46('0x4b')]===_0x0b46('0x49')){var _0xc43138=_0x52c14a[_0x0b46('0x23')]({'plain':!![]});var _0x107e66=_0x0b46('0x24');return db[_0x0b46('0x4c')][_0x0b46('0x46')]({'where':{'name':_0x107e66,'userProfileId':_0x1a9d38[_0x0b46('0x4d')]},'raw':!![]})[_0x0b46('0x27')](function(_0x3ba8e6){if(_0x3ba8e6&&_0x3ba8e6[_0x0b46('0x4e')]===0x0){return db[_0x0b46('0x25')][_0x0b46('0x47')]({'name':_0xc43138[_0x0b46('0x29')],'resourceId':_0xc43138['id'],'type':_0x3ba8e6['name'],'sectionId':_0x3ba8e6['id']},{})[_0x0b46('0x27')](function(){return _0x52c14a;});}else{return _0x52c14a;}})[_0x0b46('0x42')](function(_0x30a8a2){logger[_0x0b46('0x4f')](_0x0b46('0x50'),_0x30a8a2);throw _0x30a8a2;});}return _0x52c14a;})['then'](respondWithResult(_0x1d9a58,0xc9))['catch'](handleError(_0x1d9a58,null));};exports[_0x0b46('0x51')]=function(_0x1259ea,_0x352cf1){if(_0x1259ea[_0x0b46('0x48')]['id']){delete _0x1259ea[_0x0b46('0x48')]['id'];}return db[_0x0b46('0x2d')]['find']({'where':{'id':_0x1259ea[_0x0b46('0x44')]['id']}})[_0x0b46('0x27')](handleEntityNotFound(_0x352cf1,null))[_0x0b46('0x27')](saveUpdates(_0x1259ea[_0x0b46('0x48')],null))[_0x0b46('0x27')](respondWithResult(_0x352cf1,null))['catch'](handleError(_0x352cf1,null));};exports['destroy']=function(_0x2fc10b,_0x5e772d){return db[_0x0b46('0x2d')][_0x0b46('0x46')]({'where':{'id':_0x2fc10b[_0x0b46('0x44')]['id']}})[_0x0b46('0x27')](handleEntityNotFound(_0x5e772d,null))[_0x0b46('0x27')](removeEntity(_0x5e772d,null))[_0x0b46('0x42')](handleError(_0x5e772d,null));};