ff1c7b07f823ff3c5ccf2490ba3b3b147d4be3d2
[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 _0xeb7f=['../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','offset','undefined','count','limit','Content-Range','apply','reject','save','update','then','destroy','get','Templates','UserProfileResource','error','stack','name','index','map','Template','rawAttributes','fieldName','key','query','keys','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filters','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','moment','bluebird','mustache','path','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware'];(function(_0x49e66,_0x43f4b9){var _0x545549=function(_0x18b28f){while(--_0x18b28f){_0x49e66['push'](_0x49e66['shift']());}};_0x545549(++_0x43f4b9);}(_0xeb7f,0x1df));var _0xfeb7=function(_0xef89d,_0x287047){_0xef89d=_0xef89d-0x0;var _0x23d599=_0xeb7f[_0xef89d];return _0x23d599;};'use strict';var emlformat=require(_0xfeb7('0x0'));var rimraf=require(_0xfeb7('0x1'));var zipdir=require(_0xfeb7('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xfeb7('0x3'));var BPromise=require(_0xfeb7('0x4'));var Mustache=require(_0xfeb7('0x5'));var util=require('util');var path=require(_0xfeb7('0x6'));var sox=require('sox');var csv=require(_0xfeb7('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xfeb7('0x8'));var squel=require(_0xfeb7('0x9'));var crypto=require(_0xfeb7('0xa'));var jsforce=require(_0xfeb7('0xb'));var deskjs=require(_0xfeb7('0xc'));var toCsv=require('to-csv');var querystring=require(_0xfeb7('0xd'));var Papa=require(_0xfeb7('0xe'));var Redis=require(_0xfeb7('0xf'));var authService=require(_0xfeb7('0x10'));var qs=require(_0xfeb7('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xfeb7('0x12'));var logger=require(_0xfeb7('0x13'))(_0xfeb7('0x14'));var utils=require(_0xfeb7('0x15'));var config=require(_0xfeb7('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xfeb7('0x17'))['db'];function respondWithStatusCode(_0x382549,_0x3d7477){_0x3d7477=_0x3d7477||0xcc;return function(_0x2e9ffb){if(_0x2e9ffb){return _0x382549[_0xfeb7('0x18')](_0x3d7477);}return _0x382549[_0xfeb7('0x19')](_0x3d7477)['end']();};}function respondWithResult(_0x53a037,_0x328b53){_0x328b53=_0x328b53||0xc8;return function(_0x201718){if(_0x201718){return _0x53a037[_0xfeb7('0x19')](_0x328b53)[_0xfeb7('0x1a')](_0x201718);}};}function respondWithFilteredResult(_0x2017a0,_0x1c7861){return function(_0x310a3f){if(_0x310a3f){var _0x478c5c=typeof _0x1c7861[_0xfeb7('0x1b')]===_0xfeb7('0x1c')&&typeof _0x1c7861['limit']===_0xfeb7('0x1c');var _0x1899ff=_0x310a3f[_0xfeb7('0x1d')];var _0x2bb16b=_0x478c5c?0x0:_0x1c7861[_0xfeb7('0x1b')];var _0x1477ad=_0x478c5c?_0x310a3f[_0xfeb7('0x1d')]:_0x1c7861[_0xfeb7('0x1b')]+_0x1c7861[_0xfeb7('0x1e')];var _0x4cf6cc;if(_0x1477ad>=_0x1899ff){_0x1477ad=_0x1899ff;_0x4cf6cc=0xc8;}else{_0x4cf6cc=0xce;}_0x2017a0[_0xfeb7('0x19')](_0x4cf6cc);return _0x2017a0['set'](_0xfeb7('0x1f'),_0x2bb16b+'-'+_0x1477ad+'/'+_0x1899ff)[_0xfeb7('0x1a')](_0x310a3f);}return null;};}function patchUpdates(_0x4b6a40){return function(_0x58c5c7){try{jsonpatch[_0xfeb7('0x20')](_0x58c5c7,_0x4b6a40,!![]);}catch(_0x338e5d){return BPromise[_0xfeb7('0x21')](_0x338e5d);}return _0x58c5c7[_0xfeb7('0x22')]();};}function saveUpdates(_0x358424,_0x2824a1){return function(_0x257c7c){if(_0x257c7c){return _0x257c7c[_0xfeb7('0x23')](_0x358424)[_0xfeb7('0x24')](function(_0x343001){return _0x343001;});}return null;};}function removeEntity(_0x219c0a,_0x2f0c6e){return function(_0x2fc098){if(_0x2fc098){return _0x2fc098[_0xfeb7('0x25')]()[_0xfeb7('0x24')](function(){var _0x55c598=_0x2fc098[_0xfeb7('0x26')]({'plain':!![]});var _0x54162b=_0xfeb7('0x27');return db[_0xfeb7('0x28')][_0xfeb7('0x25')]({'where':{'type':_0x54162b,'resourceId':_0x55c598['id']}})[_0xfeb7('0x24')](function(){return _0x2fc098;});})[_0xfeb7('0x24')](function(){_0x219c0a['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x40a568,_0x34bb6e){return function(_0xae89c){if(!_0xae89c){_0x40a568[_0xfeb7('0x18')](0x194);}return _0xae89c;};}function handleError(_0x588db4,_0x263e6c){_0x263e6c=_0x263e6c||0x1f4;return function(_0x27a0ea){logger[_0xfeb7('0x29')](_0x27a0ea[_0xfeb7('0x2a')]);if(_0x27a0ea['name']){delete _0x27a0ea[_0xfeb7('0x2b')];}_0x588db4[_0xfeb7('0x19')](_0x263e6c)['send'](_0x27a0ea);};}exports[_0xfeb7('0x2c')]=function(_0x24a372,_0x141c1a){var _0xcf67ce={},_0x65a855={},_0x8b75cf={'count':0x0,'rows':[]};var _0x520d6d=_[_0xfeb7('0x2d')](db[_0xfeb7('0x2e')][_0xfeb7('0x2f')],function(_0x198792){return{'name':_0x198792[_0xfeb7('0x30')],'type':_0x198792['type'][_0xfeb7('0x31')]};});_0x65a855['model']=_[_0xfeb7('0x2d')](_0x520d6d,_0xfeb7('0x2b'));_0x65a855[_0xfeb7('0x32')]=_[_0xfeb7('0x33')](_0x24a372[_0xfeb7('0x32')]);_0x65a855['filters']=_[_0xfeb7('0x34')](_0x65a855[_0xfeb7('0x35')],_0x65a855['query']);_0xcf67ce[_0xfeb7('0x36')]=_['intersection'](_0x65a855[_0xfeb7('0x35')],qs[_0xfeb7('0x37')](_0x24a372[_0xfeb7('0x32')][_0xfeb7('0x37')]));_0xcf67ce[_0xfeb7('0x36')]=_0xcf67ce[_0xfeb7('0x36')][_0xfeb7('0x38')]?_0xcf67ce[_0xfeb7('0x36')]:_0x65a855[_0xfeb7('0x35')];if(!_0x24a372[_0xfeb7('0x32')][_0xfeb7('0x39')](_0xfeb7('0x3a'))){_0xcf67ce[_0xfeb7('0x1e')]=qs['limit'](_0x24a372[_0xfeb7('0x32')][_0xfeb7('0x1e')]);_0xcf67ce[_0xfeb7('0x1b')]=qs[_0xfeb7('0x1b')](_0x24a372['query'][_0xfeb7('0x1b')]);}_0xcf67ce['order']=qs[_0xfeb7('0x3b')](_0x24a372['query'][_0xfeb7('0x3b')]);_0xcf67ce[_0xfeb7('0x3c')]=qs['filters'](_[_0xfeb7('0x3d')](_0x24a372['query'],_0x65a855[_0xfeb7('0x3e')]),_0x520d6d);if(_0x24a372[_0xfeb7('0x32')][_0xfeb7('0x3f')]){_0xcf67ce[_0xfeb7('0x3c')]=_[_0xfeb7('0x40')](_0xcf67ce[_0xfeb7('0x3c')],{'$or':_[_0xfeb7('0x2d')](_0x520d6d,function(_0x7bfcf0){if(_0x7bfcf0['type']!==_0xfeb7('0x41')){var _0x3c06b0={};_0x3c06b0[_0x7bfcf0[_0xfeb7('0x2b')]]={'$like':'%'+_0x24a372[_0xfeb7('0x32')]['filter']+'%'};return _0x3c06b0;}})});}_0xcf67ce=_[_0xfeb7('0x40')]({},_0xcf67ce,_0x24a372[_0xfeb7('0x42')]);var _0x3f2ae0={'where':_0xcf67ce[_0xfeb7('0x3c')]};return db[_0xfeb7('0x2e')][_0xfeb7('0x1d')](_0x3f2ae0)['then'](function(_0x42efbf){_0x8b75cf[_0xfeb7('0x1d')]=_0x42efbf;if(_0x24a372[_0xfeb7('0x32')][_0xfeb7('0x43')]){_0xcf67ce[_0xfeb7('0x44')]=[{'all':!![]}];}return db[_0xfeb7('0x2e')][_0xfeb7('0x45')](_0xcf67ce);})[_0xfeb7('0x24')](function(_0x20262b){_0x8b75cf[_0xfeb7('0x46')]=_0x20262b;return _0x8b75cf;})[_0xfeb7('0x24')](respondWithFilteredResult(_0x141c1a,_0xcf67ce))[_0xfeb7('0x47')](handleError(_0x141c1a,null));};exports[_0xfeb7('0x48')]=function(_0x341866,_0x202c77){var _0x5580ee={'raw':!![],'where':{'id':_0x341866[_0xfeb7('0x49')]['id']}},_0x3020dc={};_0x3020dc[_0xfeb7('0x35')]=_[_0xfeb7('0x33')](db[_0xfeb7('0x2e')][_0xfeb7('0x2f')]);_0x3020dc[_0xfeb7('0x32')]=_[_0xfeb7('0x33')](_0x341866[_0xfeb7('0x32')]);_0x3020dc[_0xfeb7('0x3e')]=_[_0xfeb7('0x34')](_0x3020dc[_0xfeb7('0x35')],_0x3020dc[_0xfeb7('0x32')]);_0x5580ee['attributes']=_[_0xfeb7('0x34')](_0x3020dc['model'],qs[_0xfeb7('0x37')](_0x341866['query'][_0xfeb7('0x37')]));_0x5580ee[_0xfeb7('0x36')]=_0x5580ee[_0xfeb7('0x36')][_0xfeb7('0x38')]?_0x5580ee[_0xfeb7('0x36')]:_0x3020dc[_0xfeb7('0x35')];if(_0x341866[_0xfeb7('0x32')]['includeAll']){_0x5580ee[_0xfeb7('0x44')]=[{'all':!![]}];}_0x5580ee=_[_0xfeb7('0x40')]({},_0x5580ee,_0x341866[_0xfeb7('0x42')]);return db[_0xfeb7('0x2e')][_0xfeb7('0x4a')](_0x5580ee)['then'](handleEntityNotFound(_0x202c77,null))[_0xfeb7('0x24')](respondWithResult(_0x202c77,null))[_0xfeb7('0x47')](handleError(_0x202c77,null));};exports[_0xfeb7('0x4b')]=function(_0x3c4a97,_0x55f3ab){return db['Template']['create'](_0x3c4a97[_0xfeb7('0x4c')],{})[_0xfeb7('0x24')](function(_0x56e70b){var _0x867e5d=_0x3c4a97[_0xfeb7('0x4d')][_0xfeb7('0x26')]({'plain':!![]});if(!_0x867e5d)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x867e5d[_0xfeb7('0x4e')]===_0xfeb7('0x4d')){var _0x1d11e4=_0x56e70b[_0xfeb7('0x26')]({'plain':!![]});var _0xacd741=_0xfeb7('0x27');return db[_0xfeb7('0x4f')][_0xfeb7('0x4a')]({'where':{'name':_0xacd741,'userProfileId':_0x867e5d[_0xfeb7('0x50')]},'raw':!![]})[_0xfeb7('0x24')](function(_0x324616){if(_0x324616&&_0x324616[_0xfeb7('0x51')]===0x0){return db[_0xfeb7('0x28')][_0xfeb7('0x4b')]({'name':_0x1d11e4[_0xfeb7('0x2b')],'resourceId':_0x1d11e4['id'],'type':_0x324616[_0xfeb7('0x2b')],'sectionId':_0x324616['id']},{})[_0xfeb7('0x24')](function(){return _0x56e70b;});}else{return _0x56e70b;}})['catch'](function(_0x54775a){logger[_0xfeb7('0x29')](_0xfeb7('0x52'),_0x54775a);throw _0x54775a;});}return _0x56e70b;})[_0xfeb7('0x24')](respondWithResult(_0x55f3ab,0xc9))[_0xfeb7('0x47')](handleError(_0x55f3ab,null));};exports[_0xfeb7('0x23')]=function(_0x5f9251,_0x55c044){if(_0x5f9251[_0xfeb7('0x4c')]['id']){delete _0x5f9251['body']['id'];}return db[_0xfeb7('0x2e')]['find']({'where':{'id':_0x5f9251[_0xfeb7('0x49')]['id']}})[_0xfeb7('0x24')](handleEntityNotFound(_0x55c044,null))['then'](saveUpdates(_0x5f9251['body'],null))[_0xfeb7('0x24')](respondWithResult(_0x55c044,null))[_0xfeb7('0x47')](handleError(_0x55c044,null));};exports['destroy']=function(_0x4dd7ce,_0x11d739){return db[_0xfeb7('0x2e')][_0xfeb7('0x4a')]({'where':{'id':_0x4dd7ce[_0xfeb7('0x49')]['id']}})[_0xfeb7('0x24')](handleEntityNotFound(_0x11d739,null))['then'](removeEntity(_0x11d739,null))[_0xfeb7('0x47')](handleError(_0x11d739,null));};