c62b11d9a7ce33698870b1145fc452d71ccfd77d
[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 _0x60a1=['body','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','sox','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','get','Templates','UserProfileResource','sendStatus','error','stack','name','send','index','map','rawAttributes','type','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','order','where','VIRTUAL','filter','merge','options','includeAll','include','Template','findAll','rows','catch','show','params','find','create','user','role','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s'];(function(_0x1c4a6d,_0x377f38){var _0x467231=function(_0x3fc251){while(--_0x3fc251){_0x1c4a6d['push'](_0x1c4a6d['shift']());}};_0x467231(++_0x377f38);}(_0x60a1,0xa5));var _0x160a=function(_0x540f56,_0x57c9b4){_0x540f56=_0x540f56-0x0;var _0x10ba59=_0x60a1[_0x540f56];return _0x10ba59;};'use strict';var emlformat=require(_0x160a('0x0'));var rimraf=require(_0x160a('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x160a('0x2'));var moment=require(_0x160a('0x3'));var BPromise=require(_0x160a('0x4'));var Mustache=require(_0x160a('0x5'));var util=require(_0x160a('0x6'));var path=require('path');var sox=require(_0x160a('0x7'));var csv=require(_0x160a('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x160a('0x9'));var _=require(_0x160a('0xa'));var squel=require('squel');var crypto=require(_0x160a('0xb'));var jsforce=require(_0x160a('0xc'));var deskjs=require(_0x160a('0xd'));var toCsv=require(_0x160a('0x8'));var querystring=require(_0x160a('0xe'));var Papa=require(_0x160a('0xf'));var Redis=require('ioredis');var authService=require(_0x160a('0x10'));var qs=require(_0x160a('0x11'));var as=require(_0x160a('0x12'));var hardwareService=require(_0x160a('0x13'));var logger=require('../../config/logger')(_0x160a('0x14'));var utils=require(_0x160a('0x15'));var config=require(_0x160a('0x16'));var licenseUtil=require(_0x160a('0x17'));var db=require(_0x160a('0x18'))['db'];function respondWithStatusCode(_0x57aa84,_0x35e12f){_0x35e12f=_0x35e12f||0xcc;return function(_0x593629){if(_0x593629){return _0x57aa84['sendStatus'](_0x35e12f);}return _0x57aa84[_0x160a('0x19')](_0x35e12f)[_0x160a('0x1a')]();};}function respondWithResult(_0x528aa8,_0x2e45f6){_0x2e45f6=_0x2e45f6||0xc8;return function(_0x406943){if(_0x406943){return _0x528aa8[_0x160a('0x19')](_0x2e45f6)['json'](_0x406943);}};}function respondWithFilteredResult(_0x4e28d5,_0x2c4f96){return function(_0x497a11){if(_0x497a11){var _0x5c2508=typeof _0x2c4f96[_0x160a('0x1b')]===_0x160a('0x1c')&&typeof _0x2c4f96[_0x160a('0x1d')]===_0x160a('0x1c');var _0x19fb79=_0x497a11[_0x160a('0x1e')];var _0x4b6ca9=_0x5c2508?0x0:_0x2c4f96[_0x160a('0x1b')];var _0x2309f4=_0x5c2508?_0x497a11[_0x160a('0x1e')]:_0x2c4f96[_0x160a('0x1b')]+_0x2c4f96[_0x160a('0x1d')];var _0x33a1b0;if(_0x2309f4>=_0x19fb79){_0x2309f4=_0x19fb79;_0x33a1b0=0xc8;}else{_0x33a1b0=0xce;}_0x4e28d5[_0x160a('0x19')](_0x33a1b0);return _0x4e28d5[_0x160a('0x1f')](_0x160a('0x20'),_0x4b6ca9+'-'+_0x2309f4+'/'+_0x19fb79)['json'](_0x497a11);}return null;};}function patchUpdates(_0x2c4375){return function(_0x5ab4be){try{jsonpatch[_0x160a('0x21')](_0x5ab4be,_0x2c4375,!![]);}catch(_0x4385f4){return BPromise[_0x160a('0x22')](_0x4385f4);}return _0x5ab4be[_0x160a('0x23')]();};}function saveUpdates(_0x514e9c,_0x3490d8){return function(_0x5e2f21){if(_0x5e2f21){return _0x5e2f21[_0x160a('0x24')](_0x514e9c)[_0x160a('0x25')](function(_0x5afdd1){return _0x5afdd1;});}return null;};}function removeEntity(_0x88e670,_0x5aea08){return function(_0x2c6c4c){if(_0x2c6c4c){return _0x2c6c4c[_0x160a('0x26')]()[_0x160a('0x25')](function(){var _0x95d6cc=_0x2c6c4c[_0x160a('0x27')]({'plain':!![]});var _0x4a9c05=_0x160a('0x28');return db[_0x160a('0x29')][_0x160a('0x26')]({'where':{'type':_0x4a9c05,'resourceId':_0x95d6cc['id']}})[_0x160a('0x25')](function(){return _0x2c6c4c;});})['then'](function(){_0x88e670[_0x160a('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1bb6cc,_0x9df60e){return function(_0x3abf96){if(!_0x3abf96){_0x1bb6cc[_0x160a('0x2a')](0x194);}return _0x3abf96;};}function handleError(_0x2368a2,_0x2935c4){_0x2935c4=_0x2935c4||0x1f4;return function(_0x27e49a){logger[_0x160a('0x2b')](_0x27e49a[_0x160a('0x2c')]);if(_0x27e49a[_0x160a('0x2d')]){delete _0x27e49a[_0x160a('0x2d')];}_0x2368a2[_0x160a('0x19')](_0x2935c4)[_0x160a('0x2e')](_0x27e49a);};}exports[_0x160a('0x2f')]=function(_0x3b2ff2,_0x47046b){var _0x529d4f={},_0x2e5c8a={},_0x581533={'count':0x0,'rows':[]};var _0x3f78ea=_[_0x160a('0x30')](db['Template'][_0x160a('0x31')],function(_0x2b5fcb){return{'name':_0x2b5fcb['fieldName'],'type':_0x2b5fcb[_0x160a('0x32')][_0x160a('0x33')]};});_0x2e5c8a['model']=_[_0x160a('0x30')](_0x3f78ea,_0x160a('0x2d'));_0x2e5c8a[_0x160a('0x34')]=_[_0x160a('0x35')](_0x3b2ff2[_0x160a('0x34')]);_0x2e5c8a[_0x160a('0x36')]=_[_0x160a('0x37')](_0x2e5c8a[_0x160a('0x38')],_0x2e5c8a[_0x160a('0x34')]);_0x529d4f[_0x160a('0x39')]=_[_0x160a('0x37')](_0x2e5c8a['model'],qs[_0x160a('0x3a')](_0x3b2ff2['query'][_0x160a('0x3a')]));_0x529d4f[_0x160a('0x39')]=_0x529d4f[_0x160a('0x39')][_0x160a('0x3b')]?_0x529d4f[_0x160a('0x39')]:_0x2e5c8a['model'];if(!_0x3b2ff2['query'][_0x160a('0x3c')]('nolimit')){_0x529d4f[_0x160a('0x1d')]=qs[_0x160a('0x1d')](_0x3b2ff2['query'][_0x160a('0x1d')]);_0x529d4f['offset']=qs[_0x160a('0x1b')](_0x3b2ff2['query'][_0x160a('0x1b')]);}_0x529d4f[_0x160a('0x3d')]=qs['sort'](_0x3b2ff2[_0x160a('0x34')]['sort']);_0x529d4f[_0x160a('0x3e')]=qs['filters'](_['pick'](_0x3b2ff2[_0x160a('0x34')],_0x2e5c8a[_0x160a('0x36')]),_0x3f78ea);if(_0x3b2ff2[_0x160a('0x34')]['filter']){_0x529d4f[_0x160a('0x3e')]=_['merge'](_0x529d4f[_0x160a('0x3e')],{'$or':_['map'](_0x3f78ea,function(_0x110084){if(_0x110084[_0x160a('0x32')]!==_0x160a('0x3f')){var _0x7c80cc={};_0x7c80cc[_0x110084[_0x160a('0x2d')]]={'$like':'%'+_0x3b2ff2['query'][_0x160a('0x40')]+'%'};return _0x7c80cc;}})});}_0x529d4f=_[_0x160a('0x41')]({},_0x529d4f,_0x3b2ff2[_0x160a('0x42')]);var _0x1a8595={'where':_0x529d4f[_0x160a('0x3e')]};return db['Template'][_0x160a('0x1e')](_0x1a8595)[_0x160a('0x25')](function(_0x55dbe4){_0x581533[_0x160a('0x1e')]=_0x55dbe4;if(_0x3b2ff2[_0x160a('0x34')][_0x160a('0x43')]){_0x529d4f[_0x160a('0x44')]=[{'all':!![]}];}return db[_0x160a('0x45')][_0x160a('0x46')](_0x529d4f);})[_0x160a('0x25')](function(_0x706d85){_0x581533[_0x160a('0x47')]=_0x706d85;return _0x581533;})[_0x160a('0x25')](respondWithFilteredResult(_0x47046b,_0x529d4f))[_0x160a('0x48')](handleError(_0x47046b,null));};exports[_0x160a('0x49')]=function(_0x597fbd,_0x3e1ea1){var _0x236fa5={'raw':!![],'where':{'id':_0x597fbd[_0x160a('0x4a')]['id']}},_0x4e88eb={};_0x4e88eb[_0x160a('0x38')]=_[_0x160a('0x35')](db[_0x160a('0x45')][_0x160a('0x31')]);_0x4e88eb[_0x160a('0x34')]=_[_0x160a('0x35')](_0x597fbd['query']);_0x4e88eb[_0x160a('0x36')]=_['intersection'](_0x4e88eb[_0x160a('0x38')],_0x4e88eb[_0x160a('0x34')]);_0x236fa5[_0x160a('0x39')]=_[_0x160a('0x37')](_0x4e88eb[_0x160a('0x38')],qs['fields'](_0x597fbd[_0x160a('0x34')]['fields']));_0x236fa5[_0x160a('0x39')]=_0x236fa5['attributes'][_0x160a('0x3b')]?_0x236fa5[_0x160a('0x39')]:_0x4e88eb['model'];if(_0x597fbd[_0x160a('0x34')][_0x160a('0x43')]){_0x236fa5[_0x160a('0x44')]=[{'all':!![]}];}_0x236fa5=_[_0x160a('0x41')]({},_0x236fa5,_0x597fbd['options']);return db['Template'][_0x160a('0x4b')](_0x236fa5)['then'](handleEntityNotFound(_0x3e1ea1,null))[_0x160a('0x25')](respondWithResult(_0x3e1ea1,null))[_0x160a('0x48')](handleError(_0x3e1ea1,null));};exports[_0x160a('0x4c')]=function(_0xa53b4,_0x53e475){return db[_0x160a('0x45')][_0x160a('0x4c')](_0xa53b4['body'],{})['then'](function(_0x3398b4){var _0x3ec2ab=_0xa53b4[_0x160a('0x4d')][_0x160a('0x27')]({'plain':!![]});if(!_0x3ec2ab)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3ec2ab[_0x160a('0x4e')]==='user'){var _0x4d3167=_0x3398b4['get']({'plain':!![]});var _0x289711=_0x160a('0x28');return db['UserProfileSection'][_0x160a('0x4b')]({'where':{'name':_0x289711,'userProfileId':_0x3ec2ab['userProfileId']},'raw':!![]})[_0x160a('0x25')](function(_0x47755d){if(_0x47755d&&_0x47755d[_0x160a('0x4f')]===0x0){return db['UserProfileResource'][_0x160a('0x4c')]({'name':_0x4d3167[_0x160a('0x2d')],'resourceId':_0x4d3167['id'],'type':_0x47755d[_0x160a('0x2d')],'sectionId':_0x47755d['id']},{})['then'](function(){return _0x3398b4;});}else{return _0x3398b4;}})[_0x160a('0x48')](function(_0x22abac){logger[_0x160a('0x2b')](_0x160a('0x50'),_0x22abac);throw _0x22abac;});}return _0x3398b4;})[_0x160a('0x25')](respondWithResult(_0x53e475,0xc9))[_0x160a('0x48')](handleError(_0x53e475,null));};exports['update']=function(_0x41a1e3,_0x18ab32){if(_0x41a1e3[_0x160a('0x51')]['id']){delete _0x41a1e3[_0x160a('0x51')]['id'];}return db[_0x160a('0x45')][_0x160a('0x4b')]({'where':{'id':_0x41a1e3[_0x160a('0x4a')]['id']}})[_0x160a('0x25')](handleEntityNotFound(_0x18ab32,null))['then'](saveUpdates(_0x41a1e3['body'],null))['then'](respondWithResult(_0x18ab32,null))[_0x160a('0x48')](handleError(_0x18ab32,null));};exports[_0x160a('0x26')]=function(_0x42937c,_0x1e1257){return db[_0x160a('0x45')]['find']({'where':{'id':_0x42937c[_0x160a('0x4a')]['id']}})[_0x160a('0x25')](handleEntityNotFound(_0x1e1257,null))[_0x160a('0x25')](removeEntity(_0x1e1257,null))[_0x160a('0x48')](handleError(_0x1e1257,null));};