db3cb8389a0d01f6728b7aaa03e5d54cabc48b6a
[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 _0x54aa=['Templates','UserProfileResource','error','name','index','map','Template','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','fields','attributes','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','length','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','crypto','jsforce','querystring','../../components/auth/service','../../config/logger','api','../../config/environment','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','then','destroy'];(function(_0x334651,_0x6e99f6){var _0x29657c=function(_0x420a94){while(--_0x420a94){_0x334651['push'](_0x334651['shift']());}};_0x29657c(++_0x6e99f6);}(_0x54aa,0x123));var _0xa54a=function(_0x2aaff8,_0xede0f8){_0x2aaff8=_0x2aaff8-0x0;var _0x556a17=_0x54aa[_0x2aaff8];return _0x556a17;};'use strict';var emlformat=require(_0xa54a('0x0'));var rimraf=require(_0xa54a('0x1'));var zipdir=require(_0xa54a('0x2'));var jsonpatch=require(_0xa54a('0x3'));var rp=require(_0xa54a('0x4'));var moment=require(_0xa54a('0x5'));var BPromise=require(_0xa54a('0x6'));var Mustache=require(_0xa54a('0x7'));var util=require(_0xa54a('0x8'));var path=require(_0xa54a('0x9'));var sox=require('sox');var csv=require(_0xa54a('0xa'));var ejs=require(_0xa54a('0xb'));var fs=require('fs');var fs_extra=require(_0xa54a('0xc'));var _=require(_0xa54a('0xd'));var squel=require('squel');var crypto=require(_0xa54a('0xe'));var jsforce=require(_0xa54a('0xf'));var deskjs=require('desk.js');var toCsv=require(_0xa54a('0xa'));var querystring=require(_0xa54a('0x10'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xa54a('0x11'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xa54a('0x12'))(_0xa54a('0x13'));var utils=require('../../config/utils');var config=require(_0xa54a('0x14'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3dea78,_0x4555ca){_0x4555ca=_0x4555ca||0xcc;return function(_0x8dabbe){if(_0x8dabbe){return _0x3dea78[_0xa54a('0x15')](_0x4555ca);}return _0x3dea78[_0xa54a('0x16')](_0x4555ca)[_0xa54a('0x17')]();};}function respondWithResult(_0x2f2a65,_0x5755e6){_0x5755e6=_0x5755e6||0xc8;return function(_0x477fa7){if(_0x477fa7){return _0x2f2a65[_0xa54a('0x16')](_0x5755e6)[_0xa54a('0x18')](_0x477fa7);}};}function respondWithFilteredResult(_0x39b3cf,_0x2e156a){return function(_0x416e79){if(_0x416e79){var _0x34aebc=typeof _0x2e156a[_0xa54a('0x19')]===_0xa54a('0x1a')&&typeof _0x2e156a['limit']===_0xa54a('0x1a');var _0xa0c4ef=_0x416e79[_0xa54a('0x1b')];var _0x37add2=_0x34aebc?0x0:_0x2e156a['offset'];var _0x53e1df=_0x34aebc?_0x416e79[_0xa54a('0x1b')]:_0x2e156a['offset']+_0x2e156a[_0xa54a('0x1c')];var _0x10b689;if(_0x53e1df>=_0xa0c4ef){_0x53e1df=_0xa0c4ef;_0x10b689=0xc8;}else{_0x10b689=0xce;}_0x39b3cf[_0xa54a('0x16')](_0x10b689);return _0x39b3cf[_0xa54a('0x1d')](_0xa54a('0x1e'),_0x37add2+'-'+_0x53e1df+'/'+_0xa0c4ef)[_0xa54a('0x18')](_0x416e79);}return null;};}function patchUpdates(_0x1927ea){return function(_0x1227cd){try{jsonpatch[_0xa54a('0x1f')](_0x1227cd,_0x1927ea,!![]);}catch(_0x31c3b0){return BPromise[_0xa54a('0x20')](_0x31c3b0);}return _0x1227cd[_0xa54a('0x21')]();};}function saveUpdates(_0x14389d,_0x136a52){return function(_0x12ae7d){if(_0x12ae7d){return _0x12ae7d[_0xa54a('0x22')](_0x14389d)[_0xa54a('0x23')](function(_0x15b4cc){return _0x15b4cc;});}return null;};}function removeEntity(_0x2c2632,_0x3bffa4){return function(_0x2539be){if(_0x2539be){return _0x2539be[_0xa54a('0x24')]()[_0xa54a('0x23')](function(){var _0x8722d=_0x2539be['get']({'plain':!![]});var _0x169b71=_0xa54a('0x25');return db[_0xa54a('0x26')][_0xa54a('0x24')]({'where':{'type':_0x169b71,'resourceId':_0x8722d['id']}})[_0xa54a('0x23')](function(){return _0x2539be;});})['then'](function(){_0x2c2632[_0xa54a('0x16')](0xcc)[_0xa54a('0x17')]();});}};}function handleEntityNotFound(_0x272034,_0x852ebf){return function(_0x2bec61){if(!_0x2bec61){_0x272034[_0xa54a('0x15')](0x194);}return _0x2bec61;};}function handleError(_0x4b449b,_0x1b01de){_0x1b01de=_0x1b01de||0x1f4;return function(_0x1fe910){logger[_0xa54a('0x27')](_0x1fe910['stack']);if(_0x1fe910[_0xa54a('0x28')]){delete _0x1fe910[_0xa54a('0x28')];}_0x4b449b[_0xa54a('0x16')](_0x1b01de)['send'](_0x1fe910);};}exports[_0xa54a('0x29')]=function(_0x218d22,_0x375cfc){var _0x41e866={},_0x386ad5={},_0x182b42={'count':0x0,'rows':[]};var _0x78c9c7=_[_0xa54a('0x2a')](db[_0xa54a('0x2b')][_0xa54a('0x2c')],function(_0x5198cc){return{'name':_0x5198cc[_0xa54a('0x2d')],'type':_0x5198cc[_0xa54a('0x2e')][_0xa54a('0x2f')]};});_0x386ad5[_0xa54a('0x30')]=_[_0xa54a('0x2a')](_0x78c9c7,_0xa54a('0x28'));_0x386ad5['query']=_[_0xa54a('0x31')](_0x218d22[_0xa54a('0x32')]);_0x386ad5[_0xa54a('0x33')]=_['intersection'](_0x386ad5[_0xa54a('0x30')],_0x386ad5['query']);_0x41e866['attributes']=_[_0xa54a('0x34')](_0x386ad5[_0xa54a('0x30')],qs[_0xa54a('0x35')](_0x218d22[_0xa54a('0x32')][_0xa54a('0x35')]));_0x41e866[_0xa54a('0x36')]=_0x41e866[_0xa54a('0x36')]['length']?_0x41e866[_0xa54a('0x36')]:_0x386ad5[_0xa54a('0x30')];if(!_0x218d22[_0xa54a('0x32')]['hasOwnProperty'](_0xa54a('0x37'))){_0x41e866[_0xa54a('0x1c')]=qs[_0xa54a('0x1c')](_0x218d22['query'][_0xa54a('0x1c')]);_0x41e866['offset']=qs['offset'](_0x218d22[_0xa54a('0x32')][_0xa54a('0x19')]);}_0x41e866[_0xa54a('0x38')]=qs['sort'](_0x218d22['query'][_0xa54a('0x39')]);_0x41e866[_0xa54a('0x3a')]=qs[_0xa54a('0x33')](_[_0xa54a('0x3b')](_0x218d22['query'],_0x386ad5['filters']),_0x78c9c7);if(_0x218d22['query'][_0xa54a('0x3c')]){_0x41e866[_0xa54a('0x3a')]=_[_0xa54a('0x3d')](_0x41e866[_0xa54a('0x3a')],{'$or':_[_0xa54a('0x2a')](_0x78c9c7,function(_0x1e1bde){if(_0x1e1bde[_0xa54a('0x2e')]!==_0xa54a('0x3e')){var _0x3df8d9={};_0x3df8d9[_0x1e1bde['name']]={'$like':'%'+_0x218d22[_0xa54a('0x32')][_0xa54a('0x3c')]+'%'};return _0x3df8d9;}})});}_0x41e866=_[_0xa54a('0x3d')]({},_0x41e866,_0x218d22[_0xa54a('0x3f')]);var _0x2a4919={'where':_0x41e866[_0xa54a('0x3a')]};return db[_0xa54a('0x2b')]['count'](_0x2a4919)[_0xa54a('0x23')](function(_0x186d61){_0x182b42[_0xa54a('0x1b')]=_0x186d61;if(_0x218d22[_0xa54a('0x32')][_0xa54a('0x40')]){_0x41e866[_0xa54a('0x41')]=[{'all':!![]}];}return db[_0xa54a('0x2b')][_0xa54a('0x42')](_0x41e866);})[_0xa54a('0x23')](function(_0x393d7e){_0x182b42[_0xa54a('0x43')]=_0x393d7e;return _0x182b42;})[_0xa54a('0x23')](respondWithFilteredResult(_0x375cfc,_0x41e866))[_0xa54a('0x44')](handleError(_0x375cfc,null));};exports[_0xa54a('0x45')]=function(_0xd837b5,_0x33b061){var _0xa598c2={'raw':!![],'where':{'id':_0xd837b5[_0xa54a('0x46')]['id']}},_0x3baef2={};_0x3baef2[_0xa54a('0x30')]=_[_0xa54a('0x31')](db[_0xa54a('0x2b')][_0xa54a('0x2c')]);_0x3baef2[_0xa54a('0x32')]=_[_0xa54a('0x31')](_0xd837b5[_0xa54a('0x32')]);_0x3baef2[_0xa54a('0x33')]=_['intersection'](_0x3baef2[_0xa54a('0x30')],_0x3baef2[_0xa54a('0x32')]);_0xa598c2['attributes']=_['intersection'](_0x3baef2[_0xa54a('0x30')],qs['fields'](_0xd837b5[_0xa54a('0x32')]['fields']));_0xa598c2['attributes']=_0xa598c2[_0xa54a('0x36')][_0xa54a('0x47')]?_0xa598c2[_0xa54a('0x36')]:_0x3baef2[_0xa54a('0x30')];if(_0xd837b5[_0xa54a('0x32')]['includeAll']){_0xa598c2[_0xa54a('0x41')]=[{'all':!![]}];}_0xa598c2=_['merge']({},_0xa598c2,_0xd837b5[_0xa54a('0x3f')]);return db['Template'][_0xa54a('0x48')](_0xa598c2)['then'](handleEntityNotFound(_0x33b061,null))[_0xa54a('0x23')](respondWithResult(_0x33b061,null))[_0xa54a('0x44')](handleError(_0x33b061,null));};exports[_0xa54a('0x49')]=function(_0x128b46,_0x349e12){return db[_0xa54a('0x2b')][_0xa54a('0x49')](_0x128b46[_0xa54a('0x4a')],{})[_0xa54a('0x23')](function(_0x2c4e94){var _0x547c88=_0x128b46[_0xa54a('0x4b')][_0xa54a('0x4c')]({'plain':!![]});if(!_0x547c88)throw new Error(_0xa54a('0x4d'));if(_0x547c88[_0xa54a('0x4e')]===_0xa54a('0x4b')){var _0x12642b=_0x2c4e94['get']({'plain':!![]});var _0x31a2ab=_0xa54a('0x25');return db[_0xa54a('0x4f')]['find']({'where':{'name':_0x31a2ab,'userProfileId':_0x547c88['userProfileId']},'raw':!![]})[_0xa54a('0x23')](function(_0x5f1753){if(_0x5f1753&&_0x5f1753[_0xa54a('0x50')]===0x0){return db[_0xa54a('0x26')][_0xa54a('0x49')]({'name':_0x12642b[_0xa54a('0x28')],'resourceId':_0x12642b['id'],'type':_0x5f1753[_0xa54a('0x28')],'sectionId':_0x5f1753['id']},{})[_0xa54a('0x23')](function(){return _0x2c4e94;});}else{return _0x2c4e94;}})[_0xa54a('0x44')](function(_0x41a8e3){logger[_0xa54a('0x27')](_0xa54a('0x51'),_0x41a8e3);throw _0x41a8e3;});}return _0x2c4e94;})[_0xa54a('0x23')](respondWithResult(_0x349e12,0xc9))['catch'](handleError(_0x349e12,null));};exports['update']=function(_0x3698ed,_0x1c0d9c){if(_0x3698ed['body']['id']){delete _0x3698ed[_0xa54a('0x4a')]['id'];}return db['Template'][_0xa54a('0x48')]({'where':{'id':_0x3698ed[_0xa54a('0x46')]['id']}})[_0xa54a('0x23')](handleEntityNotFound(_0x1c0d9c,null))[_0xa54a('0x23')](saveUpdates(_0x3698ed[_0xa54a('0x4a')],null))['then'](respondWithResult(_0x1c0d9c,null))[_0xa54a('0x44')](handleError(_0x1c0d9c,null));};exports['destroy']=function(_0x5edc86,_0x494c4e){return db[_0xa54a('0x2b')]['find']({'where':{'id':_0x5edc86['params']['id']}})[_0xa54a('0x23')](handleEntityNotFound(_0x494c4e,null))[_0xa54a('0x23')](removeEntity(_0x494c4e,null))[_0xa54a('0x44')](handleError(_0x494c4e,null));};