37a477ca7316d23251408a67256668edf9cd087d
[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 _0xe976=['Template','includeAll','findAll','rows','catch','show','params','options','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','then','get','Templates','UserProfileResource','destroy','error','name','send','index','map','rawAttributes','fieldName','type','key','query','keys','intersection','attributes','model','fields','nolimit','order','sort','filters','pick','filter','where','merge','VIRTUAL'];(function(_0x3adb8e,_0x247ca2){var _0x3eacdb=function(_0x127ddf){while(--_0x127ddf){_0x3adb8e['push'](_0x3adb8e['shift']());}};_0x3eacdb(++_0x247ca2);}(_0xe976,0x10e));var _0x6e97=function(_0x3ad7ad,_0x291a8d){_0x3ad7ad=_0x3ad7ad-0x0;var _0x225a60=_0xe976[_0x3ad7ad];return _0x225a60;};'use strict';var emlformat=require(_0x6e97('0x0'));var rimraf=require(_0x6e97('0x1'));var zipdir=require(_0x6e97('0x2'));var jsonpatch=require(_0x6e97('0x3'));var rp=require(_0x6e97('0x4'));var moment=require('moment');var BPromise=require(_0x6e97('0x5'));var Mustache=require('mustache');var util=require(_0x6e97('0x6'));var path=require(_0x6e97('0x7'));var sox=require(_0x6e97('0x8'));var csv=require(_0x6e97('0x9'));var ejs=require(_0x6e97('0xa'));var fs=require('fs');var fs_extra=require(_0x6e97('0xb'));var _=require(_0x6e97('0xc'));var squel=require('squel');var crypto=require(_0x6e97('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x6e97('0xe'));var toCsv=require('to-csv');var querystring=require(_0x6e97('0xf'));var Papa=require('papaparse');var Redis=require(_0x6e97('0x10'));var authService=require(_0x6e97('0x11'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x6e97('0x12'));var logger=require(_0x6e97('0x13'))('api');var utils=require(_0x6e97('0x14'));var config=require(_0x6e97('0x15'));var licenseUtil=require(_0x6e97('0x16'));var db=require(_0x6e97('0x17'))['db'];function respondWithStatusCode(_0x39cb45,_0x473657){_0x473657=_0x473657||0xcc;return function(_0x270613){if(_0x270613){return _0x39cb45[_0x6e97('0x18')](_0x473657);}return _0x39cb45[_0x6e97('0x19')](_0x473657)[_0x6e97('0x1a')]();};}function respondWithResult(_0x1045b5,_0x3fb1f9){_0x3fb1f9=_0x3fb1f9||0xc8;return function(_0x34ea6b){if(_0x34ea6b){return _0x1045b5['status'](_0x3fb1f9)[_0x6e97('0x1b')](_0x34ea6b);}};}function respondWithFilteredResult(_0x3e57de,_0x23796a){return function(_0x47202b){if(_0x47202b){var _0x44912d=typeof _0x23796a[_0x6e97('0x1c')]==='undefined'&&typeof _0x23796a['limit']===_0x6e97('0x1d');var _0x57d120=_0x47202b[_0x6e97('0x1e')];var _0x1f0b0d=_0x44912d?0x0:_0x23796a['offset'];var _0x23fe74=_0x44912d?_0x47202b[_0x6e97('0x1e')]:_0x23796a[_0x6e97('0x1c')]+_0x23796a[_0x6e97('0x1f')];var _0x50da1a;if(_0x23fe74>=_0x57d120){_0x23fe74=_0x57d120;_0x50da1a=0xc8;}else{_0x50da1a=0xce;}_0x3e57de[_0x6e97('0x19')](_0x50da1a);return _0x3e57de[_0x6e97('0x20')](_0x6e97('0x21'),_0x1f0b0d+'-'+_0x23fe74+'/'+_0x57d120)['json'](_0x47202b);}return null;};}function patchUpdates(_0x227ac3){return function(_0x1f94ce){try{jsonpatch[_0x6e97('0x22')](_0x1f94ce,_0x227ac3,!![]);}catch(_0x37918e){return BPromise[_0x6e97('0x23')](_0x37918e);}return _0x1f94ce[_0x6e97('0x24')]();};}function saveUpdates(_0x1b7364,_0x102412){return function(_0x3217d1){if(_0x3217d1){return _0x3217d1['update'](_0x1b7364)[_0x6e97('0x25')](function(_0x2623c0){return _0x2623c0;});}return null;};}function removeEntity(_0x425d50,_0x5e6896){return function(_0xe770af){if(_0xe770af){return _0xe770af['destroy']()[_0x6e97('0x25')](function(){var _0x5e6ab3=_0xe770af[_0x6e97('0x26')]({'plain':!![]});var _0x33706d=_0x6e97('0x27');return db[_0x6e97('0x28')][_0x6e97('0x29')]({'where':{'type':_0x33706d,'resourceId':_0x5e6ab3['id']}})['then'](function(){return _0xe770af;});})[_0x6e97('0x25')](function(){_0x425d50[_0x6e97('0x19')](0xcc)[_0x6e97('0x1a')]();});}};}function handleEntityNotFound(_0x386ee7,_0x47a155){return function(_0x19c68b){if(!_0x19c68b){_0x386ee7[_0x6e97('0x18')](0x194);}return _0x19c68b;};}function handleError(_0x2d3571,_0x1b9f10){_0x1b9f10=_0x1b9f10||0x1f4;return function(_0x3b9ec1){logger[_0x6e97('0x2a')](_0x3b9ec1['stack']);if(_0x3b9ec1[_0x6e97('0x2b')]){delete _0x3b9ec1[_0x6e97('0x2b')];}_0x2d3571[_0x6e97('0x19')](_0x1b9f10)[_0x6e97('0x2c')](_0x3b9ec1);};}exports[_0x6e97('0x2d')]=function(_0x59f126,_0x287bbd){var _0x550dc4={},_0x5cf569={},_0x163811={'count':0x0,'rows':[]};var _0x3de56d=_[_0x6e97('0x2e')](db['Template'][_0x6e97('0x2f')],function(_0x245c8c){return{'name':_0x245c8c[_0x6e97('0x30')],'type':_0x245c8c[_0x6e97('0x31')][_0x6e97('0x32')]};});_0x5cf569['model']=_[_0x6e97('0x2e')](_0x3de56d,_0x6e97('0x2b'));_0x5cf569[_0x6e97('0x33')]=_[_0x6e97('0x34')](_0x59f126[_0x6e97('0x33')]);_0x5cf569['filters']=_[_0x6e97('0x35')](_0x5cf569['model'],_0x5cf569[_0x6e97('0x33')]);_0x550dc4[_0x6e97('0x36')]=_[_0x6e97('0x35')](_0x5cf569[_0x6e97('0x37')],qs[_0x6e97('0x38')](_0x59f126['query']['fields']));_0x550dc4[_0x6e97('0x36')]=_0x550dc4[_0x6e97('0x36')]['length']?_0x550dc4['attributes']:_0x5cf569[_0x6e97('0x37')];if(!_0x59f126[_0x6e97('0x33')]['hasOwnProperty'](_0x6e97('0x39'))){_0x550dc4['limit']=qs['limit'](_0x59f126[_0x6e97('0x33')]['limit']);_0x550dc4[_0x6e97('0x1c')]=qs[_0x6e97('0x1c')](_0x59f126[_0x6e97('0x33')]['offset']);}_0x550dc4[_0x6e97('0x3a')]=qs[_0x6e97('0x3b')](_0x59f126[_0x6e97('0x33')]['sort']);_0x550dc4['where']=qs[_0x6e97('0x3c')](_[_0x6e97('0x3d')](_0x59f126['query'],_0x5cf569[_0x6e97('0x3c')]),_0x3de56d);if(_0x59f126[_0x6e97('0x33')][_0x6e97('0x3e')]){_0x550dc4[_0x6e97('0x3f')]=_[_0x6e97('0x40')](_0x550dc4[_0x6e97('0x3f')],{'$or':_[_0x6e97('0x2e')](_0x3de56d,function(_0x2e689b){if(_0x2e689b[_0x6e97('0x31')]!==_0x6e97('0x41')){var _0x16a037={};_0x16a037[_0x2e689b[_0x6e97('0x2b')]]={'$like':'%'+_0x59f126['query']['filter']+'%'};return _0x16a037;}})});}_0x550dc4=_[_0x6e97('0x40')]({},_0x550dc4,_0x59f126['options']);var _0xe6067a={'where':_0x550dc4[_0x6e97('0x3f')]};return db[_0x6e97('0x42')][_0x6e97('0x1e')](_0xe6067a)['then'](function(_0x488f8d){_0x163811[_0x6e97('0x1e')]=_0x488f8d;if(_0x59f126[_0x6e97('0x33')][_0x6e97('0x43')]){_0x550dc4['include']=[{'all':!![]}];}return db[_0x6e97('0x42')][_0x6e97('0x44')](_0x550dc4);})[_0x6e97('0x25')](function(_0x5e6bf4){_0x163811[_0x6e97('0x45')]=_0x5e6bf4;return _0x163811;})[_0x6e97('0x25')](respondWithFilteredResult(_0x287bbd,_0x550dc4))[_0x6e97('0x46')](handleError(_0x287bbd,null));};exports[_0x6e97('0x47')]=function(_0x47c0c3,_0x3921fb){var _0x1b4619={'raw':!![],'where':{'id':_0x47c0c3[_0x6e97('0x48')]['id']}},_0x6d60d7={};_0x6d60d7['model']=_[_0x6e97('0x34')](db[_0x6e97('0x42')][_0x6e97('0x2f')]);_0x6d60d7[_0x6e97('0x33')]=_['keys'](_0x47c0c3[_0x6e97('0x33')]);_0x6d60d7[_0x6e97('0x3c')]=_[_0x6e97('0x35')](_0x6d60d7[_0x6e97('0x37')],_0x6d60d7[_0x6e97('0x33')]);_0x1b4619[_0x6e97('0x36')]=_[_0x6e97('0x35')](_0x6d60d7['model'],qs[_0x6e97('0x38')](_0x47c0c3[_0x6e97('0x33')][_0x6e97('0x38')]));_0x1b4619[_0x6e97('0x36')]=_0x1b4619['attributes']['length']?_0x1b4619['attributes']:_0x6d60d7[_0x6e97('0x37')];if(_0x47c0c3[_0x6e97('0x33')][_0x6e97('0x43')]){_0x1b4619['include']=[{'all':!![]}];}_0x1b4619=_[_0x6e97('0x40')]({},_0x1b4619,_0x47c0c3[_0x6e97('0x49')]);return db[_0x6e97('0x42')][_0x6e97('0x4a')](_0x1b4619)['then'](handleEntityNotFound(_0x3921fb,null))[_0x6e97('0x25')](respondWithResult(_0x3921fb,null))['catch'](handleError(_0x3921fb,null));};exports[_0x6e97('0x4b')]=function(_0x338701,_0x1921d8){return db[_0x6e97('0x42')][_0x6e97('0x4b')](_0x338701['body'],{})[_0x6e97('0x25')](function(_0x452a2a){var _0x44b101=_0x338701[_0x6e97('0x4c')][_0x6e97('0x26')]({'plain':!![]});if(!_0x44b101)throw new Error(_0x6e97('0x4d'));if(_0x44b101[_0x6e97('0x4e')]===_0x6e97('0x4c')){var _0x426c43=_0x452a2a[_0x6e97('0x26')]({'plain':!![]});var _0x2f4300=_0x6e97('0x27');return db[_0x6e97('0x4f')]['find']({'where':{'name':_0x2f4300,'userProfileId':_0x44b101['userProfileId']},'raw':!![]})[_0x6e97('0x25')](function(_0xcc8b84){if(_0xcc8b84&&_0xcc8b84[_0x6e97('0x50')]===0x0){return db[_0x6e97('0x28')]['create']({'name':_0x426c43[_0x6e97('0x2b')],'resourceId':_0x426c43['id'],'type':_0xcc8b84[_0x6e97('0x2b')],'sectionId':_0xcc8b84['id']},{})[_0x6e97('0x25')](function(){return _0x452a2a;});}else{return _0x452a2a;}})[_0x6e97('0x46')](function(_0x34c2a0){logger['error'](_0x6e97('0x51'),_0x34c2a0);throw _0x34c2a0;});}return _0x452a2a;})['then'](respondWithResult(_0x1921d8,0xc9))[_0x6e97('0x46')](handleError(_0x1921d8,null));};exports[_0x6e97('0x52')]=function(_0x20a6a8,_0x3f7283){if(_0x20a6a8[_0x6e97('0x53')]['id']){delete _0x20a6a8[_0x6e97('0x53')]['id'];}return db[_0x6e97('0x42')][_0x6e97('0x4a')]({'where':{'id':_0x20a6a8[_0x6e97('0x48')]['id']}})['then'](handleEntityNotFound(_0x3f7283,null))[_0x6e97('0x25')](saveUpdates(_0x20a6a8['body'],null))[_0x6e97('0x25')](respondWithResult(_0x3f7283,null))[_0x6e97('0x46')](handleError(_0x3f7283,null));};exports[_0x6e97('0x29')]=function(_0x1deecd,_0x48b513){return db[_0x6e97('0x42')]['find']({'where':{'id':_0x1deecd[_0x6e97('0x48')]['id']}})[_0x6e97('0x25')](handleEntityNotFound(_0x48b513,null))[_0x6e97('0x25')](removeEntity(_0x48b513,null))[_0x6e97('0x46')](handleError(_0x48b513,null));};