Built motion from commit d1eab355.|2.6.28
[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 _0xe492=['find','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','path','to-csv','ejs','squel','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','map','Template','model','query','intersection','attributes','nolimit','sort','where','filters','pick','type','VIRTUAL','filter','options','count','includeAll','include','findAll','rows','catch','show','params','keys','rawAttributes','fields','length','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Templates','UserProfileSection'];(function(_0xd2d54,_0x5329f7){var _0x78b113=function(_0x7d2b29){while(--_0x7d2b29){_0xd2d54['push'](_0xd2d54['shift']());}};_0x78b113(++_0x5329f7);}(_0xe492,0xf8));var _0x2e49=function(_0xddc3ca,_0x374e5f){_0xddc3ca=_0xddc3ca-0x0;var _0x4e9eb7=_0xe492[_0xddc3ca];return _0x4e9eb7;};'use strict';var emlformat=require(_0x2e49('0x0'));var rimraf=require(_0x2e49('0x1'));var zipdir=require(_0x2e49('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x2e49('0x3'));var BPromise=require(_0x2e49('0x4'));var Mustache=require(_0x2e49('0x5'));var util=require(_0x2e49('0x6'));var path=require(_0x2e49('0x7'));var sox=require('sox');var csv=require(_0x2e49('0x8'));var ejs=require(_0x2e49('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x2e49('0xa'));var crypto=require('crypto');var jsforce=require(_0x2e49('0xb'));var deskjs=require(_0x2e49('0xc'));var toCsv=require('to-csv');var querystring=require(_0x2e49('0xd'));var Papa=require(_0x2e49('0xe'));var Redis=require('ioredis');var authService=require(_0x2e49('0xf'));var qs=require(_0x2e49('0x10'));var as=require(_0x2e49('0x11'));var hardwareService=require(_0x2e49('0x12'));var logger=require(_0x2e49('0x13'))('api');var utils=require(_0x2e49('0x14'));var config=require(_0x2e49('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x2e49('0x16'))['db'];function respondWithStatusCode(_0x12326b,_0x4aaaf5){_0x4aaaf5=_0x4aaaf5||0xcc;return function(_0x137e48){if(_0x137e48){return _0x12326b[_0x2e49('0x17')](_0x4aaaf5);}return _0x12326b[_0x2e49('0x18')](_0x4aaaf5)[_0x2e49('0x19')]();};}function respondWithResult(_0x2306cf,_0x5a1764){_0x5a1764=_0x5a1764||0xc8;return function(_0x139fb7){if(_0x139fb7){return _0x2306cf[_0x2e49('0x18')](_0x5a1764)[_0x2e49('0x1a')](_0x139fb7);}};}function respondWithFilteredResult(_0x3a0890,_0x405c78){return function(_0x17d08a){if(_0x17d08a){var _0x48f97e=typeof _0x405c78[_0x2e49('0x1b')]===_0x2e49('0x1c')&&typeof _0x405c78[_0x2e49('0x1d')]===_0x2e49('0x1c');var _0x194c40=_0x17d08a['count'];var _0x22d844=_0x48f97e?0x0:_0x405c78[_0x2e49('0x1b')];var _0x370615=_0x48f97e?_0x17d08a['count']:_0x405c78[_0x2e49('0x1b')]+_0x405c78[_0x2e49('0x1d')];var _0x5cd8e4;if(_0x370615>=_0x194c40){_0x370615=_0x194c40;_0x5cd8e4=0xc8;}else{_0x5cd8e4=0xce;}_0x3a0890[_0x2e49('0x18')](_0x5cd8e4);return _0x3a0890['set'](_0x2e49('0x1e'),_0x22d844+'-'+_0x370615+'/'+_0x194c40)[_0x2e49('0x1a')](_0x17d08a);}return null;};}function patchUpdates(_0x4f3ff2){return function(_0x5c85ec){try{jsonpatch[_0x2e49('0x1f')](_0x5c85ec,_0x4f3ff2,!![]);}catch(_0x1954c3){return BPromise[_0x2e49('0x20')](_0x1954c3);}return _0x5c85ec[_0x2e49('0x21')]();};}function saveUpdates(_0x133d63,_0x92c9c4){return function(_0x31b6f1){if(_0x31b6f1){return _0x31b6f1[_0x2e49('0x22')](_0x133d63)[_0x2e49('0x23')](function(_0x106316){return _0x106316;});}return null;};}function removeEntity(_0x4a9ef5,_0x33d18e){return function(_0x1adc7f){if(_0x1adc7f){return _0x1adc7f[_0x2e49('0x24')]()[_0x2e49('0x23')](function(){var _0xc4ac85=_0x1adc7f['get']({'plain':!![]});var _0x33fa55='Templates';return db['UserProfileResource']['destroy']({'where':{'type':_0x33fa55,'resourceId':_0xc4ac85['id']}})['then'](function(){return _0x1adc7f;});})[_0x2e49('0x23')](function(){_0x4a9ef5[_0x2e49('0x18')](0xcc)[_0x2e49('0x19')]();});}};}function handleEntityNotFound(_0x5a16e8,_0x3ab0db){return function(_0x1092aa){if(!_0x1092aa){_0x5a16e8['sendStatus'](0x194);}return _0x1092aa;};}function handleError(_0x2b3f49,_0x583d69){_0x583d69=_0x583d69||0x1f4;return function(_0xfc2c53){logger[_0x2e49('0x25')](_0xfc2c53[_0x2e49('0x26')]);if(_0xfc2c53[_0x2e49('0x27')]){delete _0xfc2c53[_0x2e49('0x27')];}_0x2b3f49[_0x2e49('0x18')](_0x583d69)[_0x2e49('0x28')](_0xfc2c53);};}exports['index']=function(_0x32ee37,_0x2ac3f8){var _0x206def={},_0x304a82={},_0x309518={'count':0x0,'rows':[]};var _0x49456a=_[_0x2e49('0x29')](db[_0x2e49('0x2a')]['rawAttributes'],function(_0x157ba9){return{'name':_0x157ba9['fieldName'],'type':_0x157ba9['type']['key']};});_0x304a82[_0x2e49('0x2b')]=_[_0x2e49('0x29')](_0x49456a,_0x2e49('0x27'));_0x304a82[_0x2e49('0x2c')]=_['keys'](_0x32ee37[_0x2e49('0x2c')]);_0x304a82['filters']=_[_0x2e49('0x2d')](_0x304a82['model'],_0x304a82[_0x2e49('0x2c')]);_0x206def[_0x2e49('0x2e')]=_[_0x2e49('0x2d')](_0x304a82[_0x2e49('0x2b')],qs['fields'](_0x32ee37[_0x2e49('0x2c')]['fields']));_0x206def[_0x2e49('0x2e')]=_0x206def['attributes']['length']?_0x206def[_0x2e49('0x2e')]:_0x304a82[_0x2e49('0x2b')];if(!_0x32ee37[_0x2e49('0x2c')]['hasOwnProperty'](_0x2e49('0x2f'))){_0x206def['limit']=qs[_0x2e49('0x1d')](_0x32ee37[_0x2e49('0x2c')][_0x2e49('0x1d')]);_0x206def[_0x2e49('0x1b')]=qs['offset'](_0x32ee37[_0x2e49('0x2c')]['offset']);}_0x206def['order']=qs[_0x2e49('0x30')](_0x32ee37[_0x2e49('0x2c')][_0x2e49('0x30')]);_0x206def[_0x2e49('0x31')]=qs[_0x2e49('0x32')](_[_0x2e49('0x33')](_0x32ee37['query'],_0x304a82[_0x2e49('0x32')]),_0x49456a);if(_0x32ee37['query']['filter']){_0x206def[_0x2e49('0x31')]=_['merge'](_0x206def['where'],{'$or':_[_0x2e49('0x29')](_0x49456a,function(_0x360c91){if(_0x360c91[_0x2e49('0x34')]!==_0x2e49('0x35')){var _0x5224e8={};_0x5224e8[_0x360c91[_0x2e49('0x27')]]={'$like':'%'+_0x32ee37[_0x2e49('0x2c')][_0x2e49('0x36')]+'%'};return _0x5224e8;}})});}_0x206def=_['merge']({},_0x206def,_0x32ee37[_0x2e49('0x37')]);var _0x71b275={'where':_0x206def[_0x2e49('0x31')]};return db['Template'][_0x2e49('0x38')](_0x71b275)[_0x2e49('0x23')](function(_0x171a4f){_0x309518[_0x2e49('0x38')]=_0x171a4f;if(_0x32ee37[_0x2e49('0x2c')][_0x2e49('0x39')]){_0x206def[_0x2e49('0x3a')]=[{'all':!![]}];}return db[_0x2e49('0x2a')][_0x2e49('0x3b')](_0x206def);})[_0x2e49('0x23')](function(_0x31c218){_0x309518[_0x2e49('0x3c')]=_0x31c218;return _0x309518;})['then'](respondWithFilteredResult(_0x2ac3f8,_0x206def))[_0x2e49('0x3d')](handleError(_0x2ac3f8,null));};exports[_0x2e49('0x3e')]=function(_0x3f2191,_0x43c26a){var _0x138702={'raw':!![],'where':{'id':_0x3f2191[_0x2e49('0x3f')]['id']}},_0x5933c1={};_0x5933c1[_0x2e49('0x2b')]=_[_0x2e49('0x40')](db['Template'][_0x2e49('0x41')]);_0x5933c1[_0x2e49('0x2c')]=_[_0x2e49('0x40')](_0x3f2191[_0x2e49('0x2c')]);_0x5933c1[_0x2e49('0x32')]=_[_0x2e49('0x2d')](_0x5933c1[_0x2e49('0x2b')],_0x5933c1[_0x2e49('0x2c')]);_0x138702[_0x2e49('0x2e')]=_['intersection'](_0x5933c1[_0x2e49('0x2b')],qs[_0x2e49('0x42')](_0x3f2191[_0x2e49('0x2c')][_0x2e49('0x42')]));_0x138702[_0x2e49('0x2e')]=_0x138702[_0x2e49('0x2e')][_0x2e49('0x43')]?_0x138702[_0x2e49('0x2e')]:_0x5933c1[_0x2e49('0x2b')];if(_0x3f2191[_0x2e49('0x2c')][_0x2e49('0x39')]){_0x138702[_0x2e49('0x3a')]=[{'all':!![]}];}_0x138702=_['merge']({},_0x138702,_0x3f2191[_0x2e49('0x37')]);return db[_0x2e49('0x2a')]['find'](_0x138702)[_0x2e49('0x23')](handleEntityNotFound(_0x43c26a,null))[_0x2e49('0x23')](respondWithResult(_0x43c26a,null))[_0x2e49('0x3d')](handleError(_0x43c26a,null));};exports[_0x2e49('0x44')]=function(_0x1bfaff,_0x1b6cca){return db[_0x2e49('0x2a')][_0x2e49('0x44')](_0x1bfaff[_0x2e49('0x45')],{})[_0x2e49('0x23')](function(_0x5962cd){var _0x3c01de=_0x1bfaff[_0x2e49('0x46')][_0x2e49('0x47')]({'plain':!![]});if(!_0x3c01de)throw new Error(_0x2e49('0x48'));if(_0x3c01de[_0x2e49('0x49')]===_0x2e49('0x46')){var _0x55384d=_0x5962cd[_0x2e49('0x47')]({'plain':!![]});var _0x16ff46=_0x2e49('0x4a');return db[_0x2e49('0x4b')][_0x2e49('0x4c')]({'where':{'name':_0x16ff46,'userProfileId':_0x3c01de[_0x2e49('0x4d')]},'raw':!![]})[_0x2e49('0x23')](function(_0x9ae086){if(_0x9ae086&&_0x9ae086[_0x2e49('0x4e')]===0x0){return db[_0x2e49('0x4f')]['create']({'name':_0x55384d[_0x2e49('0x27')],'resourceId':_0x55384d['id'],'type':_0x9ae086['name'],'sectionId':_0x9ae086['id']},{})[_0x2e49('0x23')](function(){return _0x5962cd;});}else{return _0x5962cd;}})[_0x2e49('0x3d')](function(_0x162028){logger[_0x2e49('0x25')](_0x2e49('0x50'),_0x162028);throw _0x162028;});}return _0x5962cd;})['then'](respondWithResult(_0x1b6cca,0xc9))['catch'](handleError(_0x1b6cca,null));};exports[_0x2e49('0x22')]=function(_0x144b39,_0x509f19){if(_0x144b39[_0x2e49('0x45')]['id']){delete _0x144b39[_0x2e49('0x45')]['id'];}return db['Template'][_0x2e49('0x4c')]({'where':{'id':_0x144b39[_0x2e49('0x3f')]['id']}})[_0x2e49('0x23')](handleEntityNotFound(_0x509f19,null))['then'](saveUpdates(_0x144b39['body'],null))['then'](respondWithResult(_0x509f19,null))[_0x2e49('0x3d')](handleError(_0x509f19,null));};exports[_0x2e49('0x24')]=function(_0x2bcbb4,_0x219302){return db[_0x2e49('0x2a')][_0x2e49('0x4c')]({'where':{'id':_0x2bcbb4[_0x2e49('0x3f')]['id']}})['then'](handleEntityNotFound(_0x219302,null))[_0x2e49('0x23')](removeEntity(_0x219302,null))[_0x2e49('0x3d')](handleError(_0x219302,null));};