Built motion from commit 0900f080.|2.5.45
[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 _0x0bf4=['query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','merge','VIRTUAL','filter','options','include','findAll','catch','show','includeAll','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','get','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','update','then','destroy','Templates','UserProfileResource','error','name','send','index','map','Template','rawAttributes','fieldName','type','model','keys'];(function(_0x631a3c,_0x1b61b6){var _0x2bdfa3=function(_0x21711b){while(--_0x21711b){_0x631a3c['push'](_0x631a3c['shift']());}};_0x2bdfa3(++_0x1b61b6);}(_0x0bf4,0x76));var _0x40bf=function(_0x317497,_0x2d6cf7){_0x317497=_0x317497-0x0;var _0x3445b0=_0x0bf4[_0x317497];return _0x3445b0;};'use strict';var emlformat=require(_0x40bf('0x0'));var rimraf=require(_0x40bf('0x1'));var zipdir=require(_0x40bf('0x2'));var jsonpatch=require(_0x40bf('0x3'));var rp=require(_0x40bf('0x4'));var moment=require(_0x40bf('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0x40bf('0x6'));var sox=require(_0x40bf('0x7'));var csv=require(_0x40bf('0x8'));var ejs=require(_0x40bf('0x9'));var fs=require('fs');var fs_extra=require(_0x40bf('0xa'));var _=require(_0x40bf('0xb'));var squel=require(_0x40bf('0xc'));var crypto=require(_0x40bf('0xd'));var jsforce=require(_0x40bf('0xe'));var deskjs=require(_0x40bf('0xf'));var toCsv=require('to-csv');var querystring=require(_0x40bf('0x10'));var Papa=require(_0x40bf('0x11'));var Redis=require(_0x40bf('0x12'));var authService=require(_0x40bf('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x40bf('0x14'));var hardwareService=require(_0x40bf('0x15'));var logger=require(_0x40bf('0x16'))(_0x40bf('0x17'));var utils=require('../../config/utils');var config=require(_0x40bf('0x18'));var licenseUtil=require(_0x40bf('0x19'));var db=require(_0x40bf('0x1a'))['db'];function respondWithStatusCode(_0x4de5aa,_0x298e49){_0x298e49=_0x298e49||0xcc;return function(_0x3e3813){if(_0x3e3813){return _0x4de5aa[_0x40bf('0x1b')](_0x298e49);}return _0x4de5aa[_0x40bf('0x1c')](_0x298e49)[_0x40bf('0x1d')]();};}function respondWithResult(_0x47d40f,_0x45971f){_0x45971f=_0x45971f||0xc8;return function(_0xa07a81){if(_0xa07a81){return _0x47d40f[_0x40bf('0x1c')](_0x45971f)[_0x40bf('0x1e')](_0xa07a81);}};}function respondWithFilteredResult(_0x425df4,_0x2665a1){return function(_0xf7e35e){if(_0xf7e35e){var _0x1d2c79=typeof _0x2665a1[_0x40bf('0x1f')]==='undefined'&&typeof _0x2665a1[_0x40bf('0x20')]===_0x40bf('0x21');var _0xb2ef4=_0xf7e35e['count'];var _0x29b0b3=_0x1d2c79?0x0:_0x2665a1[_0x40bf('0x1f')];var _0x362edf=_0x1d2c79?_0xf7e35e[_0x40bf('0x22')]:_0x2665a1[_0x40bf('0x1f')]+_0x2665a1[_0x40bf('0x20')];var _0xe54cfb;if(_0x362edf>=_0xb2ef4){_0x362edf=_0xb2ef4;_0xe54cfb=0xc8;}else{_0xe54cfb=0xce;}_0x425df4[_0x40bf('0x1c')](_0xe54cfb);return _0x425df4[_0x40bf('0x23')](_0x40bf('0x24'),_0x29b0b3+'-'+_0x362edf+'/'+_0xb2ef4)['json'](_0xf7e35e);}return null;};}function patchUpdates(_0x3712dd){return function(_0x23c005){try{jsonpatch[_0x40bf('0x25')](_0x23c005,_0x3712dd,!![]);}catch(_0x19ebda){return BPromise[_0x40bf('0x26')](_0x19ebda);}return _0x23c005[_0x40bf('0x27')]();};}function saveUpdates(_0x3c8682,_0x10fae2){return function(_0x2b64b7){if(_0x2b64b7){return _0x2b64b7[_0x40bf('0x28')](_0x3c8682)[_0x40bf('0x29')](function(_0x34f33b){return _0x34f33b;});}return null;};}function removeEntity(_0x2bce10,_0x570845){return function(_0x6b8e4c){if(_0x6b8e4c){return _0x6b8e4c[_0x40bf('0x2a')]()[_0x40bf('0x29')](function(){var _0x4d33f4=_0x6b8e4c['get']({'plain':!![]});var _0x1fa64f=_0x40bf('0x2b');return db[_0x40bf('0x2c')][_0x40bf('0x2a')]({'where':{'type':_0x1fa64f,'resourceId':_0x4d33f4['id']}})[_0x40bf('0x29')](function(){return _0x6b8e4c;});})[_0x40bf('0x29')](function(){_0x2bce10[_0x40bf('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x123bcb,_0x502a04){return function(_0x38d9c0){if(!_0x38d9c0){_0x123bcb[_0x40bf('0x1b')](0x194);}return _0x38d9c0;};}function handleError(_0x4ce2c7,_0xd94980){_0xd94980=_0xd94980||0x1f4;return function(_0x5cbbb4){logger[_0x40bf('0x2d')](_0x5cbbb4['stack']);if(_0x5cbbb4[_0x40bf('0x2e')]){delete _0x5cbbb4[_0x40bf('0x2e')];}_0x4ce2c7[_0x40bf('0x1c')](_0xd94980)[_0x40bf('0x2f')](_0x5cbbb4);};}exports[_0x40bf('0x30')]=function(_0x264a7d,_0x4bd90a){var _0x3b428d={},_0x25145f={},_0xf28bd6={'count':0x0,'rows':[]};var _0x166e47=_[_0x40bf('0x31')](db[_0x40bf('0x32')][_0x40bf('0x33')],function(_0x3cc17d){return{'name':_0x3cc17d[_0x40bf('0x34')],'type':_0x3cc17d[_0x40bf('0x35')]['key']};});_0x25145f[_0x40bf('0x36')]=_['map'](_0x166e47,_0x40bf('0x2e'));_0x25145f['query']=_[_0x40bf('0x37')](_0x264a7d[_0x40bf('0x38')]);_0x25145f[_0x40bf('0x39')]=_['intersection'](_0x25145f[_0x40bf('0x36')],_0x25145f[_0x40bf('0x38')]);_0x3b428d[_0x40bf('0x3a')]=_[_0x40bf('0x3b')](_0x25145f[_0x40bf('0x36')],qs[_0x40bf('0x3c')](_0x264a7d[_0x40bf('0x38')][_0x40bf('0x3c')]));_0x3b428d['attributes']=_0x3b428d[_0x40bf('0x3a')][_0x40bf('0x3d')]?_0x3b428d[_0x40bf('0x3a')]:_0x25145f[_0x40bf('0x36')];if(!_0x264a7d[_0x40bf('0x38')][_0x40bf('0x3e')](_0x40bf('0x3f'))){_0x3b428d[_0x40bf('0x20')]=qs[_0x40bf('0x20')](_0x264a7d[_0x40bf('0x38')][_0x40bf('0x20')]);_0x3b428d[_0x40bf('0x1f')]=qs[_0x40bf('0x1f')](_0x264a7d['query'][_0x40bf('0x1f')]);}_0x3b428d[_0x40bf('0x40')]=qs[_0x40bf('0x41')](_0x264a7d[_0x40bf('0x38')][_0x40bf('0x41')]);_0x3b428d[_0x40bf('0x42')]=qs[_0x40bf('0x39')](_['pick'](_0x264a7d[_0x40bf('0x38')],_0x25145f[_0x40bf('0x39')]),_0x166e47);if(_0x264a7d[_0x40bf('0x38')]['filter']){_0x3b428d['where']=_[_0x40bf('0x43')](_0x3b428d[_0x40bf('0x42')],{'$or':_[_0x40bf('0x31')](_0x166e47,function(_0x213ca6){if(_0x213ca6[_0x40bf('0x35')]!==_0x40bf('0x44')){var _0xac472a={};_0xac472a[_0x213ca6[_0x40bf('0x2e')]]={'$like':'%'+_0x264a7d[_0x40bf('0x38')][_0x40bf('0x45')]+'%'};return _0xac472a;}})});}_0x3b428d=_[_0x40bf('0x43')]({},_0x3b428d,_0x264a7d[_0x40bf('0x46')]);var _0x309c7b={'where':_0x3b428d[_0x40bf('0x42')]};return db[_0x40bf('0x32')][_0x40bf('0x22')](_0x309c7b)[_0x40bf('0x29')](function(_0x4d5378){_0xf28bd6['count']=_0x4d5378;if(_0x264a7d[_0x40bf('0x38')]['includeAll']){_0x3b428d[_0x40bf('0x47')]=[{'all':!![]}];}return db[_0x40bf('0x32')][_0x40bf('0x48')](_0x3b428d);})[_0x40bf('0x29')](function(_0x2204ab){_0xf28bd6['rows']=_0x2204ab;return _0xf28bd6;})[_0x40bf('0x29')](respondWithFilteredResult(_0x4bd90a,_0x3b428d))[_0x40bf('0x49')](handleError(_0x4bd90a,null));};exports[_0x40bf('0x4a')]=function(_0x38b2ff,_0x16286d){var _0x881968={'raw':!![],'where':{'id':_0x38b2ff['params']['id']}},_0x5179cd={};_0x5179cd[_0x40bf('0x36')]=_['keys'](db[_0x40bf('0x32')][_0x40bf('0x33')]);_0x5179cd[_0x40bf('0x38')]=_['keys'](_0x38b2ff[_0x40bf('0x38')]);_0x5179cd[_0x40bf('0x39')]=_['intersection'](_0x5179cd[_0x40bf('0x36')],_0x5179cd['query']);_0x881968[_0x40bf('0x3a')]=_['intersection'](_0x5179cd[_0x40bf('0x36')],qs[_0x40bf('0x3c')](_0x38b2ff['query']['fields']));_0x881968[_0x40bf('0x3a')]=_0x881968['attributes'][_0x40bf('0x3d')]?_0x881968['attributes']:_0x5179cd['model'];if(_0x38b2ff[_0x40bf('0x38')][_0x40bf('0x4b')]){_0x881968['include']=[{'all':!![]}];}_0x881968=_['merge']({},_0x881968,_0x38b2ff['options']);return db['Template'][_0x40bf('0x4c')](_0x881968)[_0x40bf('0x29')](handleEntityNotFound(_0x16286d,null))['then'](respondWithResult(_0x16286d,null))[_0x40bf('0x49')](handleError(_0x16286d,null));};exports[_0x40bf('0x4d')]=function(_0x1457e3,_0x5c64f3){return db['Template'][_0x40bf('0x4d')](_0x1457e3[_0x40bf('0x4e')],{})[_0x40bf('0x29')](function(_0x35c2bb){var _0x1ec04c=_0x1457e3[_0x40bf('0x4f')]['get']({'plain':!![]});if(!_0x1ec04c)throw new Error(_0x40bf('0x50'));if(_0x1ec04c[_0x40bf('0x51')]==='user'){var _0x329f71=_0x35c2bb[_0x40bf('0x52')]({'plain':!![]});var _0x228bf7=_0x40bf('0x2b');return db['UserProfileSection']['find']({'where':{'name':_0x228bf7,'userProfileId':_0x1ec04c[_0x40bf('0x53')]},'raw':!![]})[_0x40bf('0x29')](function(_0x34e778){if(_0x34e778&&_0x34e778[_0x40bf('0x54')]===0x0){return db['UserProfileResource']['create']({'name':_0x329f71[_0x40bf('0x2e')],'resourceId':_0x329f71['id'],'type':_0x34e778['name'],'sectionId':_0x34e778['id']},{})[_0x40bf('0x29')](function(){return _0x35c2bb;});}else{return _0x35c2bb;}})[_0x40bf('0x49')](function(_0x23d5c4){logger[_0x40bf('0x2d')](_0x40bf('0x55'),_0x23d5c4);throw _0x23d5c4;});}return _0x35c2bb;})['then'](respondWithResult(_0x5c64f3,0xc9))['catch'](handleError(_0x5c64f3,null));};exports['update']=function(_0x146495,_0x3795db){if(_0x146495['body']['id']){delete _0x146495[_0x40bf('0x4e')]['id'];}return db[_0x40bf('0x32')]['find']({'where':{'id':_0x146495[_0x40bf('0x56')]['id']}})['then'](handleEntityNotFound(_0x3795db,null))[_0x40bf('0x29')](saveUpdates(_0x146495[_0x40bf('0x4e')],null))[_0x40bf('0x29')](respondWithResult(_0x3795db,null))[_0x40bf('0x49')](handleError(_0x3795db,null));};exports[_0x40bf('0x2a')]=function(_0xc02f31,_0x182949){return db[_0x40bf('0x32')][_0x40bf('0x4c')]({'where':{'id':_0xc02f31[_0x40bf('0x56')]['id']}})[_0x40bf('0x29')](handleEntityNotFound(_0x182949,null))['then'](removeEntity(_0x182949,null))[_0x40bf('0x49')](handleError(_0x182949,null));};