b25610e2e5b25cd48442530b2ad4595b511d1f04
[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 _0xf41c=['moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','destroy','Templates','stack','send','index','map','Template','rawAttributes','fieldName','type','key','query','keys','filters','model','fields','attributes','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','rows','catch','show','params','intersection','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','get','UserProfileSection','userProfileId','UserProfileResource','name','error','find','eml-format','rimraf','zip-dir','fast-json-patch','request-promise'];(function(_0x4154a6,_0x2c0b8e){var _0x3b2786=function(_0x2f5936){while(--_0x2f5936){_0x4154a6['push'](_0x4154a6['shift']());}};_0x3b2786(++_0x2c0b8e);}(_0xf41c,0xa7));var _0xcf41=function(_0x884bee,_0x3c58bf){_0x884bee=_0x884bee-0x0;var _0x36cf30=_0xf41c[_0x884bee];return _0x36cf30;};'use strict';var emlformat=require(_0xcf41('0x0'));var rimraf=require(_0xcf41('0x1'));var zipdir=require(_0xcf41('0x2'));var jsonpatch=require(_0xcf41('0x3'));var rp=require(_0xcf41('0x4'));var moment=require(_0xcf41('0x5'));var BPromise=require(_0xcf41('0x6'));var Mustache=require(_0xcf41('0x7'));var util=require('util');var path=require(_0xcf41('0x8'));var sox=require(_0xcf41('0x9'));var csv=require(_0xcf41('0xa'));var ejs=require(_0xcf41('0xb'));var fs=require('fs');var fs_extra=require(_0xcf41('0xc'));var _=require(_0xcf41('0xd'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xcf41('0xe'));var deskjs=require(_0xcf41('0xf'));var toCsv=require(_0xcf41('0xa'));var querystring=require(_0xcf41('0x10'));var Papa=require(_0xcf41('0x11'));var Redis=require(_0xcf41('0x12'));var authService=require('../../components/auth/service');var qs=require(_0xcf41('0x13'));var as=require(_0xcf41('0x14'));var hardwareService=require(_0xcf41('0x15'));var logger=require(_0xcf41('0x16'))(_0xcf41('0x17'));var utils=require(_0xcf41('0x18'));var config=require(_0xcf41('0x19'));var licenseUtil=require(_0xcf41('0x1a'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4f6a1b,_0x440f82){_0x440f82=_0x440f82||0xcc;return function(_0x3a44eb){if(_0x3a44eb){return _0x4f6a1b[_0xcf41('0x1b')](_0x440f82);}return _0x4f6a1b[_0xcf41('0x1c')](_0x440f82)[_0xcf41('0x1d')]();};}function respondWithResult(_0x2ad4f3,_0x49e09b){_0x49e09b=_0x49e09b||0xc8;return function(_0x292404){if(_0x292404){return _0x2ad4f3[_0xcf41('0x1c')](_0x49e09b)[_0xcf41('0x1e')](_0x292404);}};}function respondWithFilteredResult(_0x4dcf31,_0x493103){return function(_0x15c962){if(_0x15c962){var _0x5c760e=typeof _0x493103[_0xcf41('0x1f')]===_0xcf41('0x20')&&typeof _0x493103[_0xcf41('0x21')]==='undefined';var _0xf931ed=_0x15c962['count'];var _0xb17d5b=_0x5c760e?0x0:_0x493103['offset'];var _0x2a150c=_0x5c760e?_0x15c962[_0xcf41('0x22')]:_0x493103[_0xcf41('0x1f')]+_0x493103[_0xcf41('0x21')];var _0x23ae75;if(_0x2a150c>=_0xf931ed){_0x2a150c=_0xf931ed;_0x23ae75=0xc8;}else{_0x23ae75=0xce;}_0x4dcf31['status'](_0x23ae75);return _0x4dcf31[_0xcf41('0x23')](_0xcf41('0x24'),_0xb17d5b+'-'+_0x2a150c+'/'+_0xf931ed)[_0xcf41('0x1e')](_0x15c962);}return null;};}function patchUpdates(_0x423a47){return function(_0x307f2f){try{jsonpatch['apply'](_0x307f2f,_0x423a47,!![]);}catch(_0x367c95){return BPromise[_0xcf41('0x25')](_0x367c95);}return _0x307f2f[_0xcf41('0x26')]();};}function saveUpdates(_0x43fe44,_0x2c17c3){return function(_0x1a979a){if(_0x1a979a){return _0x1a979a[_0xcf41('0x27')](_0x43fe44)[_0xcf41('0x28')](function(_0x525cc4){return _0x525cc4;});}return null;};}function removeEntity(_0x40cff1,_0x1ef7c6){return function(_0x3b6244){if(_0x3b6244){return _0x3b6244[_0xcf41('0x29')]()[_0xcf41('0x28')](function(){var _0x1f5371=_0x3b6244['get']({'plain':!![]});var _0x3cb100=_0xcf41('0x2a');return db['UserProfileResource'][_0xcf41('0x29')]({'where':{'type':_0x3cb100,'resourceId':_0x1f5371['id']}})[_0xcf41('0x28')](function(){return _0x3b6244;});})[_0xcf41('0x28')](function(){_0x40cff1['status'](0xcc)[_0xcf41('0x1d')]();});}};}function handleEntityNotFound(_0x30d377,_0x314728){return function(_0x1bb6e7){if(!_0x1bb6e7){_0x30d377[_0xcf41('0x1b')](0x194);}return _0x1bb6e7;};}function handleError(_0x14e349,_0x2bd876){_0x2bd876=_0x2bd876||0x1f4;return function(_0x42ec37){logger['error'](_0x42ec37[_0xcf41('0x2b')]);if(_0x42ec37['name']){delete _0x42ec37['name'];}_0x14e349[_0xcf41('0x1c')](_0x2bd876)[_0xcf41('0x2c')](_0x42ec37);};}exports[_0xcf41('0x2d')]=function(_0x3b54cb,_0x1727b9){var _0x299e52={},_0x28e43d={},_0x57821c={'count':0x0,'rows':[]};var _0x1e206d=_[_0xcf41('0x2e')](db[_0xcf41('0x2f')][_0xcf41('0x30')],function(_0x4c2718){return{'name':_0x4c2718[_0xcf41('0x31')],'type':_0x4c2718[_0xcf41('0x32')][_0xcf41('0x33')]};});_0x28e43d['model']=_[_0xcf41('0x2e')](_0x1e206d,'name');_0x28e43d[_0xcf41('0x34')]=_[_0xcf41('0x35')](_0x3b54cb[_0xcf41('0x34')]);_0x28e43d[_0xcf41('0x36')]=_['intersection'](_0x28e43d[_0xcf41('0x37')],_0x28e43d[_0xcf41('0x34')]);_0x299e52['attributes']=_['intersection'](_0x28e43d[_0xcf41('0x37')],qs[_0xcf41('0x38')](_0x3b54cb[_0xcf41('0x34')][_0xcf41('0x38')]));_0x299e52[_0xcf41('0x39')]=_0x299e52['attributes'][_0xcf41('0x3a')]?_0x299e52[_0xcf41('0x39')]:_0x28e43d[_0xcf41('0x37')];if(!_0x3b54cb['query'][_0xcf41('0x3b')]('nolimit')){_0x299e52[_0xcf41('0x21')]=qs[_0xcf41('0x21')](_0x3b54cb[_0xcf41('0x34')]['limit']);_0x299e52[_0xcf41('0x1f')]=qs[_0xcf41('0x1f')](_0x3b54cb[_0xcf41('0x34')][_0xcf41('0x1f')]);}_0x299e52[_0xcf41('0x3c')]=qs[_0xcf41('0x3d')](_0x3b54cb['query'][_0xcf41('0x3d')]);_0x299e52[_0xcf41('0x3e')]=qs[_0xcf41('0x36')](_[_0xcf41('0x3f')](_0x3b54cb[_0xcf41('0x34')],_0x28e43d[_0xcf41('0x36')]),_0x1e206d);if(_0x3b54cb[_0xcf41('0x34')][_0xcf41('0x40')]){_0x299e52['where']=_[_0xcf41('0x41')](_0x299e52[_0xcf41('0x3e')],{'$or':_[_0xcf41('0x2e')](_0x1e206d,function(_0x57f8f1){if(_0x57f8f1[_0xcf41('0x32')]!==_0xcf41('0x42')){var _0x32d986={};_0x32d986[_0x57f8f1['name']]={'$like':'%'+_0x3b54cb[_0xcf41('0x34')][_0xcf41('0x40')]+'%'};return _0x32d986;}})});}_0x299e52=_[_0xcf41('0x41')]({},_0x299e52,_0x3b54cb['options']);var _0x151ab9={'where':_0x299e52[_0xcf41('0x3e')]};return db[_0xcf41('0x2f')][_0xcf41('0x22')](_0x151ab9)[_0xcf41('0x28')](function(_0xf730f2){_0x57821c[_0xcf41('0x22')]=_0xf730f2;if(_0x3b54cb['query'][_0xcf41('0x43')]){_0x299e52[_0xcf41('0x44')]=[{'all':!![]}];}return db['Template']['findAll'](_0x299e52);})[_0xcf41('0x28')](function(_0x2c2060){_0x57821c[_0xcf41('0x45')]=_0x2c2060;return _0x57821c;})['then'](respondWithFilteredResult(_0x1727b9,_0x299e52))[_0xcf41('0x46')](handleError(_0x1727b9,null));};exports[_0xcf41('0x47')]=function(_0x21d735,_0x5858f7){var _0x195991={'raw':!![],'where':{'id':_0x21d735[_0xcf41('0x48')]['id']}},_0x39da84={};_0x39da84[_0xcf41('0x37')]=_[_0xcf41('0x35')](db[_0xcf41('0x2f')][_0xcf41('0x30')]);_0x39da84[_0xcf41('0x34')]=_[_0xcf41('0x35')](_0x21d735[_0xcf41('0x34')]);_0x39da84[_0xcf41('0x36')]=_['intersection'](_0x39da84[_0xcf41('0x37')],_0x39da84[_0xcf41('0x34')]);_0x195991[_0xcf41('0x39')]=_[_0xcf41('0x49')](_0x39da84[_0xcf41('0x37')],qs[_0xcf41('0x38')](_0x21d735['query']['fields']));_0x195991[_0xcf41('0x39')]=_0x195991[_0xcf41('0x39')]['length']?_0x195991['attributes']:_0x39da84[_0xcf41('0x37')];if(_0x21d735[_0xcf41('0x34')][_0xcf41('0x43')]){_0x195991[_0xcf41('0x44')]=[{'all':!![]}];}_0x195991=_[_0xcf41('0x41')]({},_0x195991,_0x21d735['options']);return db['Template']['find'](_0x195991)[_0xcf41('0x28')](handleEntityNotFound(_0x5858f7,null))[_0xcf41('0x28')](respondWithResult(_0x5858f7,null))[_0xcf41('0x46')](handleError(_0x5858f7,null));};exports['create']=function(_0x22933b,_0x2afbfc){return db[_0xcf41('0x2f')][_0xcf41('0x4a')](_0x22933b[_0xcf41('0x4b')],{})['then'](function(_0x277d94){var _0x2cbf03=_0x22933b[_0xcf41('0x4c')]['get']({'plain':!![]});if(!_0x2cbf03)throw new Error(_0xcf41('0x4d'));if(_0x2cbf03[_0xcf41('0x4e')]==='user'){var _0x1b1c7f=_0x277d94[_0xcf41('0x4f')]({'plain':!![]});var _0x2f1941=_0xcf41('0x2a');return db[_0xcf41('0x50')]['find']({'where':{'name':_0x2f1941,'userProfileId':_0x2cbf03[_0xcf41('0x51')]},'raw':!![]})[_0xcf41('0x28')](function(_0x4c1814){if(_0x4c1814&&_0x4c1814['autoAssociation']===0x0){return db[_0xcf41('0x52')][_0xcf41('0x4a')]({'name':_0x1b1c7f[_0xcf41('0x53')],'resourceId':_0x1b1c7f['id'],'type':_0x4c1814[_0xcf41('0x53')],'sectionId':_0x4c1814['id']},{})[_0xcf41('0x28')](function(){return _0x277d94;});}else{return _0x277d94;}})[_0xcf41('0x46')](function(_0x1f6b40){logger[_0xcf41('0x54')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1f6b40);throw _0x1f6b40;});}return _0x277d94;})[_0xcf41('0x28')](respondWithResult(_0x2afbfc,0xc9))[_0xcf41('0x46')](handleError(_0x2afbfc,null));};exports[_0xcf41('0x27')]=function(_0x3217c9,_0x56804d){if(_0x3217c9[_0xcf41('0x4b')]['id']){delete _0x3217c9[_0xcf41('0x4b')]['id'];}return db[_0xcf41('0x2f')][_0xcf41('0x55')]({'where':{'id':_0x3217c9[_0xcf41('0x48')]['id']}})[_0xcf41('0x28')](handleEntityNotFound(_0x56804d,null))[_0xcf41('0x28')](saveUpdates(_0x3217c9[_0xcf41('0x4b')],null))[_0xcf41('0x28')](respondWithResult(_0x56804d,null))['catch'](handleError(_0x56804d,null));};exports['destroy']=function(_0x438c99,_0x120f17){return db[_0xcf41('0x2f')][_0xcf41('0x55')]({'where':{'id':_0x438c99['params']['id']}})[_0xcf41('0x28')](handleEntityNotFound(_0x120f17,null))[_0xcf41('0x28')](removeEntity(_0x120f17,null))[_0xcf41('0x46')](handleError(_0x120f17,null));};