Built motion from commit efa66e19.|2.6.22
[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 _0xdbf8=['querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','end','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','update','then','destroy','get','Templates','UserProfileResource','stack','name','map','rawAttributes','type','key','query','keys','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','filters','pick','filter','where','merge','options','Template','includeAll','include','findAll','catch','show','find','create','body','role','user','userProfileId','autoAssociation','error','params','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','ejs','fs-extra','crypto','jsforce','desk.js','to-csv'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xdbf8,0x92));var _0x8dbf=function(_0x396535,_0x3928ab){_0x396535=_0x396535-0x0;var _0x5241ef=_0xdbf8[_0x396535];return _0x5241ef;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x8dbf('0x0'));var zipdir=require(_0x8dbf('0x1'));var jsonpatch=require(_0x8dbf('0x2'));var rp=require(_0x8dbf('0x3'));var moment=require('moment');var BPromise=require(_0x8dbf('0x4'));var Mustache=require(_0x8dbf('0x5'));var util=require(_0x8dbf('0x6'));var path=require(_0x8dbf('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x8dbf('0x8'));var fs=require('fs');var fs_extra=require(_0x8dbf('0x9'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x8dbf('0xa'));var jsforce=require(_0x8dbf('0xb'));var deskjs=require(_0x8dbf('0xc'));var toCsv=require(_0x8dbf('0xd'));var querystring=require(_0x8dbf('0xe'));var Papa=require(_0x8dbf('0xf'));var Redis=require(_0x8dbf('0x10'));var authService=require(_0x8dbf('0x11'));var qs=require(_0x8dbf('0x12'));var as=require(_0x8dbf('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8dbf('0x14'))('api');var utils=require(_0x8dbf('0x15'));var config=require(_0x8dbf('0x16'));var licenseUtil=require(_0x8dbf('0x17'));var db=require(_0x8dbf('0x18'))['db'];function respondWithStatusCode(_0xf76050,_0x3f51f4){_0x3f51f4=_0x3f51f4||0xcc;return function(_0x409e2d){if(_0x409e2d){return _0xf76050['sendStatus'](_0x3f51f4);}return _0xf76050['status'](_0x3f51f4)[_0x8dbf('0x19')]();};}function respondWithResult(_0x287155,_0x4a6534){_0x4a6534=_0x4a6534||0xc8;return function(_0x535656){if(_0x535656){return _0x287155[_0x8dbf('0x1a')](_0x4a6534)[_0x8dbf('0x1b')](_0x535656);}};}function respondWithFilteredResult(_0x17cb52,_0x3f38cc){return function(_0x480308){if(_0x480308){var _0x5acc7d=typeof _0x3f38cc[_0x8dbf('0x1c')]===_0x8dbf('0x1d')&&typeof _0x3f38cc['limit']===_0x8dbf('0x1d');var _0x2b3787=_0x480308[_0x8dbf('0x1e')];var _0x40df90=_0x5acc7d?0x0:_0x3f38cc[_0x8dbf('0x1c')];var _0x5860f1=_0x5acc7d?_0x480308[_0x8dbf('0x1e')]:_0x3f38cc[_0x8dbf('0x1c')]+_0x3f38cc[_0x8dbf('0x1f')];var _0x1ebc4f;if(_0x5860f1>=_0x2b3787){_0x5860f1=_0x2b3787;_0x1ebc4f=0xc8;}else{_0x1ebc4f=0xce;}_0x17cb52['status'](_0x1ebc4f);return _0x17cb52[_0x8dbf('0x20')](_0x8dbf('0x21'),_0x40df90+'-'+_0x5860f1+'/'+_0x2b3787)[_0x8dbf('0x1b')](_0x480308);}return null;};}function patchUpdates(_0x39f0cd){return function(_0x1798f7){try{jsonpatch[_0x8dbf('0x22')](_0x1798f7,_0x39f0cd,!![]);}catch(_0x9e1e9a){return BPromise[_0x8dbf('0x23')](_0x9e1e9a);}return _0x1798f7['save']();};}function saveUpdates(_0x6e318f,_0x27d5df){return function(_0x205b5d){if(_0x205b5d){return _0x205b5d[_0x8dbf('0x24')](_0x6e318f)[_0x8dbf('0x25')](function(_0x43396e){return _0x43396e;});}return null;};}function removeEntity(_0x23eeff,_0x524d57){return function(_0x5af74b){if(_0x5af74b){return _0x5af74b[_0x8dbf('0x26')]()[_0x8dbf('0x25')](function(){var _0x13e286=_0x5af74b[_0x8dbf('0x27')]({'plain':!![]});var _0x54a3d0=_0x8dbf('0x28');return db[_0x8dbf('0x29')]['destroy']({'where':{'type':_0x54a3d0,'resourceId':_0x13e286['id']}})[_0x8dbf('0x25')](function(){return _0x5af74b;});})[_0x8dbf('0x25')](function(){_0x23eeff[_0x8dbf('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4593af,_0x20c6bb){return function(_0x7f6a45){if(!_0x7f6a45){_0x4593af['sendStatus'](0x194);}return _0x7f6a45;};}function handleError(_0x1238ac,_0x245e86){_0x245e86=_0x245e86||0x1f4;return function(_0x309ae2){logger['error'](_0x309ae2[_0x8dbf('0x2a')]);if(_0x309ae2[_0x8dbf('0x2b')]){delete _0x309ae2[_0x8dbf('0x2b')];}_0x1238ac['status'](_0x245e86)['send'](_0x309ae2);};}exports['index']=function(_0xbf5a,_0x1bf035){var _0x502991={},_0x626ce2={},_0x2bad8f={'count':0x0,'rows':[]};var _0x274ae6=_[_0x8dbf('0x2c')](db['Template'][_0x8dbf('0x2d')],function(_0x3de478){return{'name':_0x3de478['fieldName'],'type':_0x3de478[_0x8dbf('0x2e')][_0x8dbf('0x2f')]};});_0x626ce2['model']=_[_0x8dbf('0x2c')](_0x274ae6,_0x8dbf('0x2b'));_0x626ce2[_0x8dbf('0x30')]=_[_0x8dbf('0x31')](_0xbf5a[_0x8dbf('0x30')]);_0x626ce2['filters']=_[_0x8dbf('0x32')](_0x626ce2[_0x8dbf('0x33')],_0x626ce2[_0x8dbf('0x30')]);_0x502991['attributes']=_['intersection'](_0x626ce2[_0x8dbf('0x33')],qs[_0x8dbf('0x34')](_0xbf5a[_0x8dbf('0x30')][_0x8dbf('0x34')]));_0x502991['attributes']=_0x502991[_0x8dbf('0x35')][_0x8dbf('0x36')]?_0x502991['attributes']:_0x626ce2[_0x8dbf('0x33')];if(!_0xbf5a['query'][_0x8dbf('0x37')](_0x8dbf('0x38'))){_0x502991['limit']=qs[_0x8dbf('0x1f')](_0xbf5a[_0x8dbf('0x30')]['limit']);_0x502991[_0x8dbf('0x1c')]=qs[_0x8dbf('0x1c')](_0xbf5a[_0x8dbf('0x30')]['offset']);}_0x502991[_0x8dbf('0x39')]=qs[_0x8dbf('0x3a')](_0xbf5a[_0x8dbf('0x30')][_0x8dbf('0x3a')]);_0x502991['where']=qs[_0x8dbf('0x3b')](_[_0x8dbf('0x3c')](_0xbf5a[_0x8dbf('0x30')],_0x626ce2[_0x8dbf('0x3b')]),_0x274ae6);if(_0xbf5a[_0x8dbf('0x30')][_0x8dbf('0x3d')]){_0x502991[_0x8dbf('0x3e')]=_['merge'](_0x502991['where'],{'$or':_['map'](_0x274ae6,function(_0x5a9a41){if(_0x5a9a41[_0x8dbf('0x2e')]!=='VIRTUAL'){var _0x416089={};_0x416089[_0x5a9a41[_0x8dbf('0x2b')]]={'$like':'%'+_0xbf5a[_0x8dbf('0x30')][_0x8dbf('0x3d')]+'%'};return _0x416089;}})});}_0x502991=_[_0x8dbf('0x3f')]({},_0x502991,_0xbf5a[_0x8dbf('0x40')]);var _0x5d60a0={'where':_0x502991[_0x8dbf('0x3e')]};return db[_0x8dbf('0x41')][_0x8dbf('0x1e')](_0x5d60a0)[_0x8dbf('0x25')](function(_0x3641cf){_0x2bad8f[_0x8dbf('0x1e')]=_0x3641cf;if(_0xbf5a[_0x8dbf('0x30')][_0x8dbf('0x42')]){_0x502991[_0x8dbf('0x43')]=[{'all':!![]}];}return db[_0x8dbf('0x41')][_0x8dbf('0x44')](_0x502991);})[_0x8dbf('0x25')](function(_0x4d9733){_0x2bad8f['rows']=_0x4d9733;return _0x2bad8f;})['then'](respondWithFilteredResult(_0x1bf035,_0x502991))[_0x8dbf('0x45')](handleError(_0x1bf035,null));};exports[_0x8dbf('0x46')]=function(_0x5e6803,_0x4aa542){var _0x13157d={'raw':!![],'where':{'id':_0x5e6803['params']['id']}},_0x593184={};_0x593184[_0x8dbf('0x33')]=_[_0x8dbf('0x31')](db[_0x8dbf('0x41')][_0x8dbf('0x2d')]);_0x593184[_0x8dbf('0x30')]=_[_0x8dbf('0x31')](_0x5e6803['query']);_0x593184[_0x8dbf('0x3b')]=_[_0x8dbf('0x32')](_0x593184['model'],_0x593184[_0x8dbf('0x30')]);_0x13157d[_0x8dbf('0x35')]=_['intersection'](_0x593184[_0x8dbf('0x33')],qs['fields'](_0x5e6803[_0x8dbf('0x30')][_0x8dbf('0x34')]));_0x13157d['attributes']=_0x13157d[_0x8dbf('0x35')][_0x8dbf('0x36')]?_0x13157d[_0x8dbf('0x35')]:_0x593184[_0x8dbf('0x33')];if(_0x5e6803[_0x8dbf('0x30')][_0x8dbf('0x42')]){_0x13157d[_0x8dbf('0x43')]=[{'all':!![]}];}_0x13157d=_[_0x8dbf('0x3f')]({},_0x13157d,_0x5e6803['options']);return db[_0x8dbf('0x41')][_0x8dbf('0x47')](_0x13157d)[_0x8dbf('0x25')](handleEntityNotFound(_0x4aa542,null))[_0x8dbf('0x25')](respondWithResult(_0x4aa542,null))['catch'](handleError(_0x4aa542,null));};exports[_0x8dbf('0x48')]=function(_0x2a3fef,_0x1a3edd){return db[_0x8dbf('0x41')][_0x8dbf('0x48')](_0x2a3fef[_0x8dbf('0x49')],{})[_0x8dbf('0x25')](function(_0x562ac0){var _0x37fcd0=_0x2a3fef['user'][_0x8dbf('0x27')]({'plain':!![]});if(!_0x37fcd0)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x37fcd0[_0x8dbf('0x4a')]===_0x8dbf('0x4b')){var _0xd2ba9b=_0x562ac0[_0x8dbf('0x27')]({'plain':!![]});var _0x1821a7=_0x8dbf('0x28');return db['UserProfileSection'][_0x8dbf('0x47')]({'where':{'name':_0x1821a7,'userProfileId':_0x37fcd0[_0x8dbf('0x4c')]},'raw':!![]})[_0x8dbf('0x25')](function(_0x431d69){if(_0x431d69&&_0x431d69[_0x8dbf('0x4d')]===0x0){return db[_0x8dbf('0x29')][_0x8dbf('0x48')]({'name':_0xd2ba9b[_0x8dbf('0x2b')],'resourceId':_0xd2ba9b['id'],'type':_0x431d69[_0x8dbf('0x2b')],'sectionId':_0x431d69['id']},{})['then'](function(){return _0x562ac0;});}else{return _0x562ac0;}})[_0x8dbf('0x45')](function(_0x291697){logger[_0x8dbf('0x4e')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x291697);throw _0x291697;});}return _0x562ac0;})['then'](respondWithResult(_0x1a3edd,0xc9))[_0x8dbf('0x45')](handleError(_0x1a3edd,null));};exports[_0x8dbf('0x24')]=function(_0x47a6f1,_0xc1bddf){if(_0x47a6f1[_0x8dbf('0x49')]['id']){delete _0x47a6f1[_0x8dbf('0x49')]['id'];}return db[_0x8dbf('0x41')][_0x8dbf('0x47')]({'where':{'id':_0x47a6f1[_0x8dbf('0x4f')]['id']}})[_0x8dbf('0x25')](handleEntityNotFound(_0xc1bddf,null))[_0x8dbf('0x25')](saveUpdates(_0x47a6f1[_0x8dbf('0x49')],null))[_0x8dbf('0x25')](respondWithResult(_0xc1bddf,null))[_0x8dbf('0x45')](handleError(_0xc1bddf,null));};exports[_0x8dbf('0x26')]=function(_0x5998a3,_0x4490e3){return db[_0x8dbf('0x41')]['find']({'where':{'id':_0x5998a3[_0x8dbf('0x4f')]['id']}})[_0x8dbf('0x25')](handleEntityNotFound(_0x4490e3,null))[_0x8dbf('0x25')](removeEntity(_0x4490e3,null))['catch'](handleError(_0x4490e3,null));};