Built motion from commit 9d0783e6.|2.6.13
[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 _0x9aab=['intersection','query','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','Template','includeAll','include','rows','catch','show','find','create','body','user','role','userProfileId','autoAssociation','destroy','params','eml-format','zip-dir','request-promise','moment','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','get','Templates','UserProfileResource','then','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','keys','filters'];(function(_0x37d139,_0x5c17cf){var _0x379db9=function(_0x5ba61a){while(--_0x5ba61a){_0x37d139['push'](_0x37d139['shift']());}};_0x379db9(++_0x5c17cf);}(_0x9aab,0x1c7));var _0xb9aa=function(_0x142a22,_0x496ed7){_0x142a22=_0x142a22-0x0;var _0x780679=_0x9aab[_0x142a22];return _0x780679;};'use strict';var emlformat=require(_0xb9aa('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xb9aa('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xb9aa('0x2'));var moment=require(_0xb9aa('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xb9aa('0x4'));var util=require(_0xb9aa('0x5'));var path=require('path');var sox=require(_0xb9aa('0x6'));var csv=require(_0xb9aa('0x7'));var ejs=require(_0xb9aa('0x8'));var fs=require('fs');var fs_extra=require(_0xb9aa('0x9'));var _=require(_0xb9aa('0xa'));var squel=require(_0xb9aa('0xb'));var crypto=require(_0xb9aa('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xb9aa('0x7'));var querystring=require(_0xb9aa('0xd'));var Papa=require(_0xb9aa('0xe'));var Redis=require(_0xb9aa('0xf'));var authService=require(_0xb9aa('0x10'));var qs=require(_0xb9aa('0x11'));var as=require(_0xb9aa('0x12'));var hardwareService=require(_0xb9aa('0x13'));var logger=require(_0xb9aa('0x14'))(_0xb9aa('0x15'));var utils=require(_0xb9aa('0x16'));var config=require(_0xb9aa('0x17'));var licenseUtil=require(_0xb9aa('0x18'));var db=require(_0xb9aa('0x19'))['db'];function respondWithStatusCode(_0x319b55,_0x5f21c1){_0x5f21c1=_0x5f21c1||0xcc;return function(_0x2195e6){if(_0x2195e6){return _0x319b55['sendStatus'](_0x5f21c1);}return _0x319b55[_0xb9aa('0x1a')](_0x5f21c1)[_0xb9aa('0x1b')]();};}function respondWithResult(_0x442fe3,_0x59c8c9){_0x59c8c9=_0x59c8c9||0xc8;return function(_0x1c074a){if(_0x1c074a){return _0x442fe3[_0xb9aa('0x1a')](_0x59c8c9)[_0xb9aa('0x1c')](_0x1c074a);}};}function respondWithFilteredResult(_0x14cbf1,_0x5980a1){return function(_0x47fa19){if(_0x47fa19){var _0x22c6d2=typeof _0x5980a1[_0xb9aa('0x1d')]===_0xb9aa('0x1e')&&typeof _0x5980a1[_0xb9aa('0x1f')]==='undefined';var _0x9b8296=_0x47fa19[_0xb9aa('0x20')];var _0x3ea158=_0x22c6d2?0x0:_0x5980a1[_0xb9aa('0x1d')];var _0x5ec6bf=_0x22c6d2?_0x47fa19[_0xb9aa('0x20')]:_0x5980a1[_0xb9aa('0x1d')]+_0x5980a1['limit'];var _0x53c570;if(_0x5ec6bf>=_0x9b8296){_0x5ec6bf=_0x9b8296;_0x53c570=0xc8;}else{_0x53c570=0xce;}_0x14cbf1[_0xb9aa('0x1a')](_0x53c570);return _0x14cbf1[_0xb9aa('0x21')](_0xb9aa('0x22'),_0x3ea158+'-'+_0x5ec6bf+'/'+_0x9b8296)['json'](_0x47fa19);}return null;};}function patchUpdates(_0x5f601a){return function(_0x5f2858){try{jsonpatch['apply'](_0x5f2858,_0x5f601a,!![]);}catch(_0xc1f4df){return BPromise[_0xb9aa('0x23')](_0xc1f4df);}return _0x5f2858[_0xb9aa('0x24')]();};}function saveUpdates(_0x46e53a,_0x266b68){return function(_0x2795a2){if(_0x2795a2){return _0x2795a2[_0xb9aa('0x25')](_0x46e53a)['then'](function(_0xbe2b96){return _0xbe2b96;});}return null;};}function removeEntity(_0x494713,_0x568ef0){return function(_0x4d0de6){if(_0x4d0de6){return _0x4d0de6['destroy']()['then'](function(){var _0x351b5b=_0x4d0de6[_0xb9aa('0x26')]({'plain':!![]});var _0x7a90dc=_0xb9aa('0x27');return db[_0xb9aa('0x28')]['destroy']({'where':{'type':_0x7a90dc,'resourceId':_0x351b5b['id']}})[_0xb9aa('0x29')](function(){return _0x4d0de6;});})[_0xb9aa('0x29')](function(){_0x494713['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x41bc0a,_0x53cb67){return function(_0x2ebea9){if(!_0x2ebea9){_0x41bc0a['sendStatus'](0x194);}return _0x2ebea9;};}function handleError(_0xa1b27f,_0x3420d1){_0x3420d1=_0x3420d1||0x1f4;return function(_0x2ae9b8){logger[_0xb9aa('0x2a')](_0x2ae9b8[_0xb9aa('0x2b')]);if(_0x2ae9b8[_0xb9aa('0x2c')]){delete _0x2ae9b8['name'];}_0xa1b27f[_0xb9aa('0x1a')](_0x3420d1)[_0xb9aa('0x2d')](_0x2ae9b8);};}exports[_0xb9aa('0x2e')]=function(_0x4a3330,_0x37717d){var _0x5eedf8={},_0x323708={},_0x138077={'count':0x0,'rows':[]};var _0x33273e=_[_0xb9aa('0x2f')](db['Template'][_0xb9aa('0x30')],function(_0x3d9f98){return{'name':_0x3d9f98[_0xb9aa('0x31')],'type':_0x3d9f98[_0xb9aa('0x32')][_0xb9aa('0x33')]};});_0x323708[_0xb9aa('0x34')]=_[_0xb9aa('0x2f')](_0x33273e,_0xb9aa('0x2c'));_0x323708['query']=_[_0xb9aa('0x35')](_0x4a3330['query']);_0x323708[_0xb9aa('0x36')]=_[_0xb9aa('0x37')](_0x323708[_0xb9aa('0x34')],_0x323708[_0xb9aa('0x38')]);_0x5eedf8[_0xb9aa('0x39')]=_[_0xb9aa('0x37')](_0x323708[_0xb9aa('0x34')],qs[_0xb9aa('0x3a')](_0x4a3330['query'][_0xb9aa('0x3a')]));_0x5eedf8['attributes']=_0x5eedf8[_0xb9aa('0x39')][_0xb9aa('0x3b')]?_0x5eedf8[_0xb9aa('0x39')]:_0x323708['model'];if(!_0x4a3330[_0xb9aa('0x38')][_0xb9aa('0x3c')](_0xb9aa('0x3d'))){_0x5eedf8[_0xb9aa('0x1f')]=qs['limit'](_0x4a3330['query'][_0xb9aa('0x1f')]);_0x5eedf8[_0xb9aa('0x1d')]=qs[_0xb9aa('0x1d')](_0x4a3330['query'][_0xb9aa('0x1d')]);}_0x5eedf8[_0xb9aa('0x3e')]=qs[_0xb9aa('0x3f')](_0x4a3330[_0xb9aa('0x38')][_0xb9aa('0x3f')]);_0x5eedf8[_0xb9aa('0x40')]=qs['filters'](_[_0xb9aa('0x41')](_0x4a3330['query'],_0x323708['filters']),_0x33273e);if(_0x4a3330[_0xb9aa('0x38')][_0xb9aa('0x42')]){_0x5eedf8['where']=_[_0xb9aa('0x43')](_0x5eedf8[_0xb9aa('0x40')],{'$or':_[_0xb9aa('0x2f')](_0x33273e,function(_0xcafbcc){if(_0xcafbcc[_0xb9aa('0x32')]!==_0xb9aa('0x44')){var _0x176d2c={};_0x176d2c[_0xcafbcc[_0xb9aa('0x2c')]]={'$like':'%'+_0x4a3330[_0xb9aa('0x38')][_0xb9aa('0x42')]+'%'};return _0x176d2c;}})});}_0x5eedf8=_[_0xb9aa('0x43')]({},_0x5eedf8,_0x4a3330[_0xb9aa('0x45')]);var _0x15cdc5={'where':_0x5eedf8[_0xb9aa('0x40')]};return db[_0xb9aa('0x46')]['count'](_0x15cdc5)[_0xb9aa('0x29')](function(_0x42f8d2){_0x138077[_0xb9aa('0x20')]=_0x42f8d2;if(_0x4a3330[_0xb9aa('0x38')][_0xb9aa('0x47')]){_0x5eedf8[_0xb9aa('0x48')]=[{'all':!![]}];}return db['Template']['findAll'](_0x5eedf8);})[_0xb9aa('0x29')](function(_0x41accc){_0x138077[_0xb9aa('0x49')]=_0x41accc;return _0x138077;})['then'](respondWithFilteredResult(_0x37717d,_0x5eedf8))[_0xb9aa('0x4a')](handleError(_0x37717d,null));};exports[_0xb9aa('0x4b')]=function(_0x478e4c,_0x49576e){var _0x4a4d4d={'raw':!![],'where':{'id':_0x478e4c['params']['id']}},_0x425e8f={};_0x425e8f[_0xb9aa('0x34')]=_[_0xb9aa('0x35')](db[_0xb9aa('0x46')][_0xb9aa('0x30')]);_0x425e8f['query']=_[_0xb9aa('0x35')](_0x478e4c['query']);_0x425e8f[_0xb9aa('0x36')]=_[_0xb9aa('0x37')](_0x425e8f[_0xb9aa('0x34')],_0x425e8f['query']);_0x4a4d4d[_0xb9aa('0x39')]=_[_0xb9aa('0x37')](_0x425e8f[_0xb9aa('0x34')],qs[_0xb9aa('0x3a')](_0x478e4c[_0xb9aa('0x38')][_0xb9aa('0x3a')]));_0x4a4d4d[_0xb9aa('0x39')]=_0x4a4d4d[_0xb9aa('0x39')]['length']?_0x4a4d4d['attributes']:_0x425e8f[_0xb9aa('0x34')];if(_0x478e4c[_0xb9aa('0x38')][_0xb9aa('0x47')]){_0x4a4d4d['include']=[{'all':!![]}];}_0x4a4d4d=_['merge']({},_0x4a4d4d,_0x478e4c[_0xb9aa('0x45')]);return db[_0xb9aa('0x46')][_0xb9aa('0x4c')](_0x4a4d4d)['then'](handleEntityNotFound(_0x49576e,null))[_0xb9aa('0x29')](respondWithResult(_0x49576e,null))[_0xb9aa('0x4a')](handleError(_0x49576e,null));};exports[_0xb9aa('0x4d')]=function(_0xc9764,_0x16b783){return db[_0xb9aa('0x46')][_0xb9aa('0x4d')](_0xc9764[_0xb9aa('0x4e')],{})['then'](function(_0xf3e738){var _0x514f75=_0xc9764[_0xb9aa('0x4f')]['get']({'plain':!![]});if(!_0x514f75)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x514f75[_0xb9aa('0x50')]===_0xb9aa('0x4f')){var _0x14b496=_0xf3e738[_0xb9aa('0x26')]({'plain':!![]});var _0x42d0f7=_0xb9aa('0x27');return db['UserProfileSection']['find']({'where':{'name':_0x42d0f7,'userProfileId':_0x514f75[_0xb9aa('0x51')]},'raw':!![]})[_0xb9aa('0x29')](function(_0x5cc7d6){if(_0x5cc7d6&&_0x5cc7d6[_0xb9aa('0x52')]===0x0){return db[_0xb9aa('0x28')][_0xb9aa('0x4d')]({'name':_0x14b496[_0xb9aa('0x2c')],'resourceId':_0x14b496['id'],'type':_0x5cc7d6['name'],'sectionId':_0x5cc7d6['id']},{})[_0xb9aa('0x29')](function(){return _0xf3e738;});}else{return _0xf3e738;}})['catch'](function(_0x2ad8f3){logger[_0xb9aa('0x2a')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2ad8f3);throw _0x2ad8f3;});}return _0xf3e738;})[_0xb9aa('0x29')](respondWithResult(_0x16b783,0xc9))['catch'](handleError(_0x16b783,null));};exports['update']=function(_0x53b648,_0x2a5afb){if(_0x53b648[_0xb9aa('0x4e')]['id']){delete _0x53b648[_0xb9aa('0x4e')]['id'];}return db[_0xb9aa('0x46')]['find']({'where':{'id':_0x53b648['params']['id']}})[_0xb9aa('0x29')](handleEntityNotFound(_0x2a5afb,null))[_0xb9aa('0x29')](saveUpdates(_0x53b648[_0xb9aa('0x4e')],null))[_0xb9aa('0x29')](respondWithResult(_0x2a5afb,null))[_0xb9aa('0x4a')](handleError(_0x2a5afb,null));};exports[_0xb9aa('0x53')]=function(_0x3bbf6e,_0x5ce855){return db['Template'][_0xb9aa('0x4c')]({'where':{'id':_0x3bbf6e[_0xb9aa('0x54')]['id']}})['then'](handleEntityNotFound(_0x5ce855,null))[_0xb9aa('0x29')](removeEntity(_0x5ce855,null))[_0xb9aa('0x4a')](handleError(_0x5ce855,null));};