f54138aa7d6fda04737ad29a268f5f5c81f0e8d3
[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 _0xd16e=['bluebird','mustache','path','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','json','offset','limit','undefined','count','status','set','Content-Range','apply','reject','save','update','then','destroy','get','Templates','UserProfileResource','stack','name','send','index','map','Template','rawAttributes','type','query','filters','intersection','model','fields','attributes','length','hasOwnProperty','order','sort','where','filter','merge','VIRTUAL','options','includeAll','include','findAll','catch','show','params','keys','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','request-promise','moment'];(function(_0x47b8ef,_0x557dd9){var _0x240c8d=function(_0x1ed5e9){while(--_0x1ed5e9){_0x47b8ef['push'](_0x47b8ef['shift']());}};_0x240c8d(++_0x557dd9);}(_0xd16e,0xf7));var _0xed16=function(_0x12304b,_0x3133ad){_0x12304b=_0x12304b-0x0;var _0x49d207=_0xd16e[_0x12304b];return _0x49d207;};'use strict';var emlformat=require(_0xed16('0x0'));var rimraf=require(_0xed16('0x1'));var zipdir=require(_0xed16('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xed16('0x3'));var moment=require(_0xed16('0x4'));var BPromise=require(_0xed16('0x5'));var Mustache=require(_0xed16('0x6'));var util=require('util');var path=require(_0xed16('0x7'));var sox=require('sox');var csv=require(_0xed16('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xed16('0x9'));var _=require(_0xed16('0xa'));var squel=require(_0xed16('0xb'));var crypto=require(_0xed16('0xc'));var jsforce=require(_0xed16('0xd'));var deskjs=require(_0xed16('0xe'));var toCsv=require(_0xed16('0x8'));var querystring=require(_0xed16('0xf'));var Papa=require(_0xed16('0x10'));var Redis=require(_0xed16('0x11'));var authService=require('../../components/auth/service');var qs=require(_0xed16('0x12'));var as=require(_0xed16('0x13'));var hardwareService=require(_0xed16('0x14'));var logger=require(_0xed16('0x15'))(_0xed16('0x16'));var utils=require(_0xed16('0x17'));var config=require(_0xed16('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0xed16('0x19'))['db'];function respondWithStatusCode(_0x578960,_0x2da08d){_0x2da08d=_0x2da08d||0xcc;return function(_0x406e11){if(_0x406e11){return _0x578960[_0xed16('0x1a')](_0x2da08d);}return _0x578960['status'](_0x2da08d)[_0xed16('0x1b')]();};}function respondWithResult(_0x45e648,_0x2873a7){_0x2873a7=_0x2873a7||0xc8;return function(_0x142571){if(_0x142571){return _0x45e648['status'](_0x2873a7)[_0xed16('0x1c')](_0x142571);}};}function respondWithFilteredResult(_0x4faa40,_0x1289e8){return function(_0x16d8a7){if(_0x16d8a7){var _0x553356=typeof _0x1289e8[_0xed16('0x1d')]==='undefined'&&typeof _0x1289e8[_0xed16('0x1e')]===_0xed16('0x1f');var _0x16c257=_0x16d8a7[_0xed16('0x20')];var _0x1f0ca6=_0x553356?0x0:_0x1289e8[_0xed16('0x1d')];var _0xbacbb=_0x553356?_0x16d8a7[_0xed16('0x20')]:_0x1289e8['offset']+_0x1289e8[_0xed16('0x1e')];var _0x5dc0f4;if(_0xbacbb>=_0x16c257){_0xbacbb=_0x16c257;_0x5dc0f4=0xc8;}else{_0x5dc0f4=0xce;}_0x4faa40[_0xed16('0x21')](_0x5dc0f4);return _0x4faa40[_0xed16('0x22')](_0xed16('0x23'),_0x1f0ca6+'-'+_0xbacbb+'/'+_0x16c257)[_0xed16('0x1c')](_0x16d8a7);}return null;};}function patchUpdates(_0x5b502f){return function(_0x3300de){try{jsonpatch[_0xed16('0x24')](_0x3300de,_0x5b502f,!![]);}catch(_0xb0ef9a){return BPromise[_0xed16('0x25')](_0xb0ef9a);}return _0x3300de[_0xed16('0x26')]();};}function saveUpdates(_0x5c0ee9,_0x1665e8){return function(_0x1b0b84){if(_0x1b0b84){return _0x1b0b84[_0xed16('0x27')](_0x5c0ee9)[_0xed16('0x28')](function(_0x63800d){return _0x63800d;});}return null;};}function removeEntity(_0x586233,_0x14682a){return function(_0x5c3f60){if(_0x5c3f60){return _0x5c3f60[_0xed16('0x29')]()[_0xed16('0x28')](function(){var _0x3d1b3d=_0x5c3f60[_0xed16('0x2a')]({'plain':!![]});var _0x46f76f=_0xed16('0x2b');return db[_0xed16('0x2c')]['destroy']({'where':{'type':_0x46f76f,'resourceId':_0x3d1b3d['id']}})[_0xed16('0x28')](function(){return _0x5c3f60;});})[_0xed16('0x28')](function(){_0x586233['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x51fe6d,_0x5f42a7){return function(_0x55ac3e){if(!_0x55ac3e){_0x51fe6d[_0xed16('0x1a')](0x194);}return _0x55ac3e;};}function handleError(_0x180411,_0x24ee53){_0x24ee53=_0x24ee53||0x1f4;return function(_0x37532b){logger['error'](_0x37532b[_0xed16('0x2d')]);if(_0x37532b[_0xed16('0x2e')]){delete _0x37532b[_0xed16('0x2e')];}_0x180411[_0xed16('0x21')](_0x24ee53)[_0xed16('0x2f')](_0x37532b);};}exports[_0xed16('0x30')]=function(_0x211a14,_0x41f1e6){var _0xded232={},_0xcef584={},_0x1b8557={'count':0x0,'rows':[]};var _0xb35594=_[_0xed16('0x31')](db[_0xed16('0x32')][_0xed16('0x33')],function(_0x6f993e){return{'name':_0x6f993e['fieldName'],'type':_0x6f993e[_0xed16('0x34')]['key']};});_0xcef584['model']=_[_0xed16('0x31')](_0xb35594,_0xed16('0x2e'));_0xcef584[_0xed16('0x35')]=_['keys'](_0x211a14['query']);_0xcef584[_0xed16('0x36')]=_[_0xed16('0x37')](_0xcef584['model'],_0xcef584['query']);_0xded232['attributes']=_[_0xed16('0x37')](_0xcef584[_0xed16('0x38')],qs[_0xed16('0x39')](_0x211a14[_0xed16('0x35')][_0xed16('0x39')]));_0xded232[_0xed16('0x3a')]=_0xded232[_0xed16('0x3a')][_0xed16('0x3b')]?_0xded232[_0xed16('0x3a')]:_0xcef584['model'];if(!_0x211a14['query'][_0xed16('0x3c')]('nolimit')){_0xded232[_0xed16('0x1e')]=qs[_0xed16('0x1e')](_0x211a14[_0xed16('0x35')][_0xed16('0x1e')]);_0xded232[_0xed16('0x1d')]=qs['offset'](_0x211a14[_0xed16('0x35')][_0xed16('0x1d')]);}_0xded232[_0xed16('0x3d')]=qs[_0xed16('0x3e')](_0x211a14['query'][_0xed16('0x3e')]);_0xded232[_0xed16('0x3f')]=qs['filters'](_['pick'](_0x211a14[_0xed16('0x35')],_0xcef584[_0xed16('0x36')]),_0xb35594);if(_0x211a14[_0xed16('0x35')][_0xed16('0x40')]){_0xded232[_0xed16('0x3f')]=_[_0xed16('0x41')](_0xded232[_0xed16('0x3f')],{'$or':_['map'](_0xb35594,function(_0x2cd6d6){if(_0x2cd6d6['type']!==_0xed16('0x42')){var _0x19acb0={};_0x19acb0[_0x2cd6d6[_0xed16('0x2e')]]={'$like':'%'+_0x211a14[_0xed16('0x35')][_0xed16('0x40')]+'%'};return _0x19acb0;}})});}_0xded232=_[_0xed16('0x41')]({},_0xded232,_0x211a14[_0xed16('0x43')]);var _0xae3a2a={'where':_0xded232[_0xed16('0x3f')]};return db[_0xed16('0x32')][_0xed16('0x20')](_0xae3a2a)[_0xed16('0x28')](function(_0x43d9b0){_0x1b8557[_0xed16('0x20')]=_0x43d9b0;if(_0x211a14[_0xed16('0x35')][_0xed16('0x44')]){_0xded232[_0xed16('0x45')]=[{'all':!![]}];}return db['Template'][_0xed16('0x46')](_0xded232);})[_0xed16('0x28')](function(_0x389a40){_0x1b8557['rows']=_0x389a40;return _0x1b8557;})['then'](respondWithFilteredResult(_0x41f1e6,_0xded232))[_0xed16('0x47')](handleError(_0x41f1e6,null));};exports[_0xed16('0x48')]=function(_0x5510fd,_0x5a3eb8){var _0x24906d={'raw':!![],'where':{'id':_0x5510fd[_0xed16('0x49')]['id']}},_0x2b48b5={};_0x2b48b5[_0xed16('0x38')]=_[_0xed16('0x4a')](db[_0xed16('0x32')]['rawAttributes']);_0x2b48b5[_0xed16('0x35')]=_['keys'](_0x5510fd[_0xed16('0x35')]);_0x2b48b5[_0xed16('0x36')]=_[_0xed16('0x37')](_0x2b48b5[_0xed16('0x38')],_0x2b48b5[_0xed16('0x35')]);_0x24906d['attributes']=_[_0xed16('0x37')](_0x2b48b5[_0xed16('0x38')],qs['fields'](_0x5510fd[_0xed16('0x35')][_0xed16('0x39')]));_0x24906d[_0xed16('0x3a')]=_0x24906d['attributes'][_0xed16('0x3b')]?_0x24906d[_0xed16('0x3a')]:_0x2b48b5['model'];if(_0x5510fd[_0xed16('0x35')][_0xed16('0x44')]){_0x24906d[_0xed16('0x45')]=[{'all':!![]}];}_0x24906d=_[_0xed16('0x41')]({},_0x24906d,_0x5510fd[_0xed16('0x43')]);return db[_0xed16('0x32')][_0xed16('0x4b')](_0x24906d)[_0xed16('0x28')](handleEntityNotFound(_0x5a3eb8,null))['then'](respondWithResult(_0x5a3eb8,null))[_0xed16('0x47')](handleError(_0x5a3eb8,null));};exports[_0xed16('0x4c')]=function(_0x5f3b4f,_0x1397f0){return db[_0xed16('0x32')][_0xed16('0x4c')](_0x5f3b4f[_0xed16('0x4d')],{})['then'](function(_0x1e39e0){var _0x4b68b9=_0x5f3b4f[_0xed16('0x4e')][_0xed16('0x2a')]({'plain':!![]});if(!_0x4b68b9)throw new Error(_0xed16('0x4f'));if(_0x4b68b9['role']==='user'){var _0x20d2f8=_0x1e39e0[_0xed16('0x2a')]({'plain':!![]});var _0x2014a4=_0xed16('0x2b');return db[_0xed16('0x50')][_0xed16('0x4b')]({'where':{'name':_0x2014a4,'userProfileId':_0x4b68b9[_0xed16('0x51')]},'raw':!![]})[_0xed16('0x28')](function(_0x4d73eb){if(_0x4d73eb&&_0x4d73eb[_0xed16('0x52')]===0x0){return db['UserProfileResource'][_0xed16('0x4c')]({'name':_0x20d2f8[_0xed16('0x2e')],'resourceId':_0x20d2f8['id'],'type':_0x4d73eb['name'],'sectionId':_0x4d73eb['id']},{})[_0xed16('0x28')](function(){return _0x1e39e0;});}else{return _0x1e39e0;}})[_0xed16('0x47')](function(_0x340cf8){logger['error'](_0xed16('0x53'),_0x340cf8);throw _0x340cf8;});}return _0x1e39e0;})[_0xed16('0x28')](respondWithResult(_0x1397f0,0xc9))['catch'](handleError(_0x1397f0,null));};exports[_0xed16('0x27')]=function(_0x509244,_0x2d0e21){if(_0x509244['body']['id']){delete _0x509244[_0xed16('0x4d')]['id'];}return db[_0xed16('0x32')][_0xed16('0x4b')]({'where':{'id':_0x509244['params']['id']}})[_0xed16('0x28')](handleEntityNotFound(_0x2d0e21,null))[_0xed16('0x28')](saveUpdates(_0x509244[_0xed16('0x4d')],null))['then'](respondWithResult(_0x2d0e21,null))[_0xed16('0x47')](handleError(_0x2d0e21,null));};exports[_0xed16('0x29')]=function(_0x538772,_0x717a2a){return db[_0xed16('0x32')][_0xed16('0x4b')]({'where':{'id':_0x538772[_0xed16('0x49')]['id']}})[_0xed16('0x28')](handleEntityNotFound(_0x717a2a,null))[_0xed16('0x28')](removeEntity(_0x717a2a,null))['catch'](handleError(_0x717a2a,null));};