Built motion from commit 9e1399f3.|2.5.37
[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 _0x8fc8=['order','where','pick','VIRTUAL','filter','options','Template','findAll','rows','catch','show','params','include','merge','find','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','then','get','Templates','UserProfileResource','destroy','sendStatus','error','stack','name','send','index','map','rawAttributes','type','key','query','keys','filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit'];(function(_0x2a32b7,_0x29b767){var _0x44c5c3=function(_0x94a295){while(--_0x94a295){_0x2a32b7['push'](_0x2a32b7['shift']());}};_0x44c5c3(++_0x29b767);}(_0x8fc8,0x6c));var _0x88fc=function(_0x4fe9ee,_0x3e8038){_0x4fe9ee=_0x4fe9ee-0x0;var _0x5d1ed6=_0x8fc8[_0x4fe9ee];return _0x5d1ed6;};'use strict';var emlformat=require(_0x88fc('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x88fc('0x1'));var moment=require(_0x88fc('0x2'));var BPromise=require(_0x88fc('0x3'));var Mustache=require(_0x88fc('0x4'));var util=require(_0x88fc('0x5'));var path=require(_0x88fc('0x6'));var sox=require(_0x88fc('0x7'));var csv=require(_0x88fc('0x8'));var ejs=require(_0x88fc('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x88fc('0xa'));var squel=require(_0x88fc('0xb'));var crypto=require(_0x88fc('0xc'));var jsforce=require(_0x88fc('0xd'));var deskjs=require(_0x88fc('0xe'));var toCsv=require(_0x88fc('0x8'));var querystring=require(_0x88fc('0xf'));var Papa=require(_0x88fc('0x10'));var Redis=require(_0x88fc('0x11'));var authService=require(_0x88fc('0x12'));var qs=require(_0x88fc('0x13'));var as=require(_0x88fc('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x88fc('0x15'))(_0x88fc('0x16'));var utils=require(_0x88fc('0x17'));var config=require(_0x88fc('0x18'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x5c632e,_0x10f67a){_0x10f67a=_0x10f67a||0xcc;return function(_0x498457){if(_0x498457){return _0x5c632e['sendStatus'](_0x10f67a);}return _0x5c632e[_0x88fc('0x19')](_0x10f67a)[_0x88fc('0x1a')]();};}function respondWithResult(_0x2b2b27,_0x390927){_0x390927=_0x390927||0xc8;return function(_0x3b9fc9){if(_0x3b9fc9){return _0x2b2b27[_0x88fc('0x19')](_0x390927)[_0x88fc('0x1b')](_0x3b9fc9);}};}function respondWithFilteredResult(_0x58cdb4,_0x3570c6){return function(_0x521fed){if(_0x521fed){var _0x447deb=typeof _0x3570c6[_0x88fc('0x1c')]===_0x88fc('0x1d')&&typeof _0x3570c6[_0x88fc('0x1e')]===_0x88fc('0x1d');var _0x44713a=_0x521fed[_0x88fc('0x1f')];var _0x449677=_0x447deb?0x0:_0x3570c6[_0x88fc('0x1c')];var _0x300b47=_0x447deb?_0x521fed[_0x88fc('0x1f')]:_0x3570c6['offset']+_0x3570c6['limit'];var _0x399a41;if(_0x300b47>=_0x44713a){_0x300b47=_0x44713a;_0x399a41=0xc8;}else{_0x399a41=0xce;}_0x58cdb4['status'](_0x399a41);return _0x58cdb4[_0x88fc('0x20')](_0x88fc('0x21'),_0x449677+'-'+_0x300b47+'/'+_0x44713a)['json'](_0x521fed);}return null;};}function patchUpdates(_0x461273){return function(_0x2c9c25){try{jsonpatch[_0x88fc('0x22')](_0x2c9c25,_0x461273,!![]);}catch(_0x364fbd){return BPromise['reject'](_0x364fbd);}return _0x2c9c25[_0x88fc('0x23')]();};}function saveUpdates(_0x398926,_0x2f6fe4){return function(_0xf47668){if(_0xf47668){return _0xf47668[_0x88fc('0x24')](_0x398926)[_0x88fc('0x25')](function(_0x3c7142){return _0x3c7142;});}return null;};}function removeEntity(_0xb21b4a,_0x20da2e){return function(_0x5ba559){if(_0x5ba559){return _0x5ba559['destroy']()['then'](function(){var _0x432b4e=_0x5ba559[_0x88fc('0x26')]({'plain':!![]});var _0x52c2bb=_0x88fc('0x27');return db[_0x88fc('0x28')][_0x88fc('0x29')]({'where':{'type':_0x52c2bb,'resourceId':_0x432b4e['id']}})[_0x88fc('0x25')](function(){return _0x5ba559;});})[_0x88fc('0x25')](function(){_0xb21b4a[_0x88fc('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x246502,_0x20bab2){return function(_0x4ccff7){if(!_0x4ccff7){_0x246502[_0x88fc('0x2a')](0x194);}return _0x4ccff7;};}function handleError(_0x472049,_0x487bb6){_0x487bb6=_0x487bb6||0x1f4;return function(_0x246f17){logger[_0x88fc('0x2b')](_0x246f17[_0x88fc('0x2c')]);if(_0x246f17[_0x88fc('0x2d')]){delete _0x246f17['name'];}_0x472049[_0x88fc('0x19')](_0x487bb6)[_0x88fc('0x2e')](_0x246f17);};}exports[_0x88fc('0x2f')]=function(_0x881ad2,_0xbb0e67){var _0x26c296={},_0x2aeda3={},_0xd05c2c={'count':0x0,'rows':[]};var _0x109fdd=_[_0x88fc('0x30')](db['Template'][_0x88fc('0x31')],function(_0x4e1070){return{'name':_0x4e1070['fieldName'],'type':_0x4e1070[_0x88fc('0x32')][_0x88fc('0x33')]};});_0x2aeda3['model']=_[_0x88fc('0x30')](_0x109fdd,_0x88fc('0x2d'));_0x2aeda3[_0x88fc('0x34')]=_[_0x88fc('0x35')](_0x881ad2[_0x88fc('0x34')]);_0x2aeda3[_0x88fc('0x36')]=_[_0x88fc('0x37')](_0x2aeda3[_0x88fc('0x38')],_0x2aeda3[_0x88fc('0x34')]);_0x26c296['attributes']=_['intersection'](_0x2aeda3['model'],qs[_0x88fc('0x39')](_0x881ad2[_0x88fc('0x34')][_0x88fc('0x39')]));_0x26c296[_0x88fc('0x3a')]=_0x26c296[_0x88fc('0x3a')][_0x88fc('0x3b')]?_0x26c296[_0x88fc('0x3a')]:_0x2aeda3[_0x88fc('0x38')];if(!_0x881ad2['query'][_0x88fc('0x3c')](_0x88fc('0x3d'))){_0x26c296[_0x88fc('0x1e')]=qs['limit'](_0x881ad2['query']['limit']);_0x26c296[_0x88fc('0x1c')]=qs['offset'](_0x881ad2[_0x88fc('0x34')][_0x88fc('0x1c')]);}_0x26c296[_0x88fc('0x3e')]=qs['sort'](_0x881ad2[_0x88fc('0x34')]['sort']);_0x26c296[_0x88fc('0x3f')]=qs['filters'](_[_0x88fc('0x40')](_0x881ad2['query'],_0x2aeda3[_0x88fc('0x36')]),_0x109fdd);if(_0x881ad2[_0x88fc('0x34')]['filter']){_0x26c296[_0x88fc('0x3f')]=_['merge'](_0x26c296['where'],{'$or':_[_0x88fc('0x30')](_0x109fdd,function(_0x18c8a8){if(_0x18c8a8[_0x88fc('0x32')]!==_0x88fc('0x41')){var _0x170f8c={};_0x170f8c[_0x18c8a8[_0x88fc('0x2d')]]={'$like':'%'+_0x881ad2[_0x88fc('0x34')][_0x88fc('0x42')]+'%'};return _0x170f8c;}})});}_0x26c296=_['merge']({},_0x26c296,_0x881ad2[_0x88fc('0x43')]);var _0x207f5c={'where':_0x26c296[_0x88fc('0x3f')]};return db[_0x88fc('0x44')][_0x88fc('0x1f')](_0x207f5c)[_0x88fc('0x25')](function(_0x3d5507){_0xd05c2c['count']=_0x3d5507;if(_0x881ad2[_0x88fc('0x34')]['includeAll']){_0x26c296['include']=[{'all':!![]}];}return db[_0x88fc('0x44')][_0x88fc('0x45')](_0x26c296);})[_0x88fc('0x25')](function(_0x5cfa93){_0xd05c2c[_0x88fc('0x46')]=_0x5cfa93;return _0xd05c2c;})['then'](respondWithFilteredResult(_0xbb0e67,_0x26c296))[_0x88fc('0x47')](handleError(_0xbb0e67,null));};exports[_0x88fc('0x48')]=function(_0x314334,_0x184d2b){var _0x2a4245={'raw':!![],'where':{'id':_0x314334[_0x88fc('0x49')]['id']}},_0x22216f={};_0x22216f[_0x88fc('0x38')]=_[_0x88fc('0x35')](db[_0x88fc('0x44')][_0x88fc('0x31')]);_0x22216f[_0x88fc('0x34')]=_['keys'](_0x314334[_0x88fc('0x34')]);_0x22216f[_0x88fc('0x36')]=_[_0x88fc('0x37')](_0x22216f['model'],_0x22216f[_0x88fc('0x34')]);_0x2a4245['attributes']=_[_0x88fc('0x37')](_0x22216f[_0x88fc('0x38')],qs['fields'](_0x314334[_0x88fc('0x34')]['fields']));_0x2a4245[_0x88fc('0x3a')]=_0x2a4245[_0x88fc('0x3a')][_0x88fc('0x3b')]?_0x2a4245['attributes']:_0x22216f['model'];if(_0x314334[_0x88fc('0x34')]['includeAll']){_0x2a4245[_0x88fc('0x4a')]=[{'all':!![]}];}_0x2a4245=_[_0x88fc('0x4b')]({},_0x2a4245,_0x314334[_0x88fc('0x43')]);return db[_0x88fc('0x44')][_0x88fc('0x4c')](_0x2a4245)[_0x88fc('0x25')](handleEntityNotFound(_0x184d2b,null))[_0x88fc('0x25')](respondWithResult(_0x184d2b,null))[_0x88fc('0x47')](handleError(_0x184d2b,null));};exports['create']=function(_0x22d67d,_0x4f8d41){return db[_0x88fc('0x44')]['create'](_0x22d67d[_0x88fc('0x4d')],{})[_0x88fc('0x25')](function(_0x2690c1){var _0x388c1a=_0x22d67d['user'][_0x88fc('0x26')]({'plain':!![]});if(!_0x388c1a)throw new Error(_0x88fc('0x4e'));if(_0x388c1a[_0x88fc('0x4f')]===_0x88fc('0x50')){var _0x23bea5=_0x2690c1[_0x88fc('0x26')]({'plain':!![]});var _0x2cdfa5=_0x88fc('0x27');return db[_0x88fc('0x51')][_0x88fc('0x4c')]({'where':{'name':_0x2cdfa5,'userProfileId':_0x388c1a[_0x88fc('0x52')]},'raw':!![]})['then'](function(_0xb906e6){if(_0xb906e6&&_0xb906e6['autoAssociation']===0x0){return db['UserProfileResource'][_0x88fc('0x53')]({'name':_0x23bea5[_0x88fc('0x2d')],'resourceId':_0x23bea5['id'],'type':_0xb906e6[_0x88fc('0x2d')],'sectionId':_0xb906e6['id']},{})['then'](function(){return _0x2690c1;});}else{return _0x2690c1;}})[_0x88fc('0x47')](function(_0x846645){logger[_0x88fc('0x2b')](_0x88fc('0x54'),_0x846645);throw _0x846645;});}return _0x2690c1;})['then'](respondWithResult(_0x4f8d41,0xc9))['catch'](handleError(_0x4f8d41,null));};exports[_0x88fc('0x24')]=function(_0x220543,_0x16222e){if(_0x220543[_0x88fc('0x4d')]['id']){delete _0x220543[_0x88fc('0x4d')]['id'];}return db[_0x88fc('0x44')][_0x88fc('0x4c')]({'where':{'id':_0x220543['params']['id']}})[_0x88fc('0x25')](handleEntityNotFound(_0x16222e,null))[_0x88fc('0x25')](saveUpdates(_0x220543[_0x88fc('0x4d')],null))[_0x88fc('0x25')](respondWithResult(_0x16222e,null))['catch'](handleError(_0x16222e,null));};exports[_0x88fc('0x29')]=function(_0xf3d4c3,_0x1a21a5){return db[_0x88fc('0x44')][_0x88fc('0x4c')]({'where':{'id':_0xf3d4c3['params']['id']}})[_0x88fc('0x25')](handleEntityNotFound(_0x1a21a5,null))[_0x88fc('0x25')](removeEntity(_0x1a21a5,null))[_0x88fc('0x47')](handleError(_0x1a21a5,null));};