Built motion from commit 6f14c8ba.|2.6.29
[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 _0x5cb6=['where','options','Template','includeAll','include','findAll','show','params','keys','catch','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Templates','userProfileId','UserProfileResource','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','request-promise','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','apply','reject','save','update','then','get','destroy','sendStatus','error','stack','name','send','index','rawAttributes','fieldName','type','model','map','query','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','filters','filter','merge'];(function(_0x2cb501,_0x5e6552){var _0x5b8ae2=function(_0x78ed19){while(--_0x78ed19){_0x2cb501['push'](_0x2cb501['shift']());}};_0x5b8ae2(++_0x5e6552);}(_0x5cb6,0x15b));var _0x65cb=function(_0xd46227,_0x18477f){_0xd46227=_0xd46227-0x0;var _0x2a980d=_0x5cb6[_0xd46227];return _0x2a980d;};'use strict';var emlformat=require(_0x65cb('0x0'));var rimraf=require(_0x65cb('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x65cb('0x2'));var moment=require('moment');var BPromise=require(_0x65cb('0x3'));var Mustache=require(_0x65cb('0x4'));var util=require(_0x65cb('0x5'));var path=require(_0x65cb('0x6'));var sox=require(_0x65cb('0x7'));var csv=require('to-csv');var ejs=require(_0x65cb('0x8'));var fs=require('fs');var fs_extra=require(_0x65cb('0x9'));var _=require(_0x65cb('0xa'));var squel=require(_0x65cb('0xb'));var crypto=require(_0x65cb('0xc'));var jsforce=require(_0x65cb('0xd'));var deskjs=require(_0x65cb('0xe'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x65cb('0xf'));var Redis=require(_0x65cb('0x10'));var authService=require(_0x65cb('0x11'));var qs=require(_0x65cb('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x65cb('0x13'));var logger=require(_0x65cb('0x14'))(_0x65cb('0x15'));var utils=require(_0x65cb('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x65cb('0x17'));var db=require(_0x65cb('0x18'))['db'];function respondWithStatusCode(_0x30331f,_0x50241b){_0x50241b=_0x50241b||0xcc;return function(_0x49c49b){if(_0x49c49b){return _0x30331f['sendStatus'](_0x50241b);}return _0x30331f[_0x65cb('0x19')](_0x50241b)[_0x65cb('0x1a')]();};}function respondWithResult(_0x2702d4,_0x32cac1){_0x32cac1=_0x32cac1||0xc8;return function(_0x724df0){if(_0x724df0){return _0x2702d4[_0x65cb('0x19')](_0x32cac1)[_0x65cb('0x1b')](_0x724df0);}};}function respondWithFilteredResult(_0x411fca,_0x500638){return function(_0x5927b0){if(_0x5927b0){var _0x203e04=typeof _0x500638[_0x65cb('0x1c')]===_0x65cb('0x1d')&&typeof _0x500638[_0x65cb('0x1e')]==='undefined';var _0x5f572e=_0x5927b0[_0x65cb('0x1f')];var _0x12c1ce=_0x203e04?0x0:_0x500638['offset'];var _0x28d939=_0x203e04?_0x5927b0['count']:_0x500638[_0x65cb('0x1c')]+_0x500638['limit'];var _0x274ab3;if(_0x28d939>=_0x5f572e){_0x28d939=_0x5f572e;_0x274ab3=0xc8;}else{_0x274ab3=0xce;}_0x411fca[_0x65cb('0x19')](_0x274ab3);return _0x411fca[_0x65cb('0x20')]('Content-Range',_0x12c1ce+'-'+_0x28d939+'/'+_0x5f572e)[_0x65cb('0x1b')](_0x5927b0);}return null;};}function patchUpdates(_0x1a2761){return function(_0x3bab64){try{jsonpatch[_0x65cb('0x21')](_0x3bab64,_0x1a2761,!![]);}catch(_0x29d961){return BPromise[_0x65cb('0x22')](_0x29d961);}return _0x3bab64[_0x65cb('0x23')]();};}function saveUpdates(_0x2d58cf,_0x4ffba9){return function(_0x2f1f6d){if(_0x2f1f6d){return _0x2f1f6d[_0x65cb('0x24')](_0x2d58cf)[_0x65cb('0x25')](function(_0x276750){return _0x276750;});}return null;};}function removeEntity(_0x213591,_0x2c33d1){return function(_0x30b279){if(_0x30b279){return _0x30b279['destroy']()[_0x65cb('0x25')](function(){var _0x30ce34=_0x30b279[_0x65cb('0x26')]({'plain':!![]});var _0x451f7d='Templates';return db['UserProfileResource'][_0x65cb('0x27')]({'where':{'type':_0x451f7d,'resourceId':_0x30ce34['id']}})[_0x65cb('0x25')](function(){return _0x30b279;});})[_0x65cb('0x25')](function(){_0x213591[_0x65cb('0x19')](0xcc)[_0x65cb('0x1a')]();});}};}function handleEntityNotFound(_0x3ba0c2,_0x33327f){return function(_0x5a6f70){if(!_0x5a6f70){_0x3ba0c2[_0x65cb('0x28')](0x194);}return _0x5a6f70;};}function handleError(_0x11da11,_0xf74189){_0xf74189=_0xf74189||0x1f4;return function(_0x16ca07){logger[_0x65cb('0x29')](_0x16ca07[_0x65cb('0x2a')]);if(_0x16ca07[_0x65cb('0x2b')]){delete _0x16ca07[_0x65cb('0x2b')];}_0x11da11[_0x65cb('0x19')](_0xf74189)[_0x65cb('0x2c')](_0x16ca07);};}exports[_0x65cb('0x2d')]=function(_0xf6b80f,_0x333746){var _0xb9f54e={},_0xafc950={},_0x1c6f2d={'count':0x0,'rows':[]};var _0xe32a3b=_['map'](db['Template'][_0x65cb('0x2e')],function(_0x57085f){return{'name':_0x57085f[_0x65cb('0x2f')],'type':_0x57085f[_0x65cb('0x30')]['key']};});_0xafc950[_0x65cb('0x31')]=_[_0x65cb('0x32')](_0xe32a3b,_0x65cb('0x2b'));_0xafc950[_0x65cb('0x33')]=_['keys'](_0xf6b80f[_0x65cb('0x33')]);_0xafc950['filters']=_['intersection'](_0xafc950[_0x65cb('0x31')],_0xafc950['query']);_0xb9f54e[_0x65cb('0x34')]=_[_0x65cb('0x35')](_0xafc950[_0x65cb('0x31')],qs[_0x65cb('0x36')](_0xf6b80f[_0x65cb('0x33')]['fields']));_0xb9f54e[_0x65cb('0x34')]=_0xb9f54e[_0x65cb('0x34')][_0x65cb('0x37')]?_0xb9f54e[_0x65cb('0x34')]:_0xafc950['model'];if(!_0xf6b80f[_0x65cb('0x33')][_0x65cb('0x38')](_0x65cb('0x39'))){_0xb9f54e[_0x65cb('0x1e')]=qs[_0x65cb('0x1e')](_0xf6b80f[_0x65cb('0x33')]['limit']);_0xb9f54e[_0x65cb('0x1c')]=qs[_0x65cb('0x1c')](_0xf6b80f[_0x65cb('0x33')][_0x65cb('0x1c')]);}_0xb9f54e[_0x65cb('0x3a')]=qs[_0x65cb('0x3b')](_0xf6b80f[_0x65cb('0x33')][_0x65cb('0x3b')]);_0xb9f54e['where']=qs[_0x65cb('0x3c')](_['pick'](_0xf6b80f['query'],_0xafc950[_0x65cb('0x3c')]),_0xe32a3b);if(_0xf6b80f[_0x65cb('0x33')][_0x65cb('0x3d')]){_0xb9f54e['where']=_[_0x65cb('0x3e')](_0xb9f54e[_0x65cb('0x3f')],{'$or':_[_0x65cb('0x32')](_0xe32a3b,function(_0x1af852){if(_0x1af852[_0x65cb('0x30')]!=='VIRTUAL'){var _0x334632={};_0x334632[_0x1af852[_0x65cb('0x2b')]]={'$like':'%'+_0xf6b80f['query'][_0x65cb('0x3d')]+'%'};return _0x334632;}})});}_0xb9f54e=_[_0x65cb('0x3e')]({},_0xb9f54e,_0xf6b80f[_0x65cb('0x40')]);var _0x782171={'where':_0xb9f54e[_0x65cb('0x3f')]};return db[_0x65cb('0x41')]['count'](_0x782171)[_0x65cb('0x25')](function(_0x486c6e){_0x1c6f2d[_0x65cb('0x1f')]=_0x486c6e;if(_0xf6b80f['query'][_0x65cb('0x42')]){_0xb9f54e[_0x65cb('0x43')]=[{'all':!![]}];}return db['Template'][_0x65cb('0x44')](_0xb9f54e);})['then'](function(_0x2091f1){_0x1c6f2d['rows']=_0x2091f1;return _0x1c6f2d;})[_0x65cb('0x25')](respondWithFilteredResult(_0x333746,_0xb9f54e))['catch'](handleError(_0x333746,null));};exports[_0x65cb('0x45')]=function(_0x525d8b,_0x20468e){var _0x4d49d7={'raw':!![],'where':{'id':_0x525d8b[_0x65cb('0x46')]['id']}},_0x43c895={};_0x43c895[_0x65cb('0x31')]=_[_0x65cb('0x47')](db[_0x65cb('0x41')]['rawAttributes']);_0x43c895['query']=_[_0x65cb('0x47')](_0x525d8b[_0x65cb('0x33')]);_0x43c895[_0x65cb('0x3c')]=_[_0x65cb('0x35')](_0x43c895[_0x65cb('0x31')],_0x43c895[_0x65cb('0x33')]);_0x4d49d7[_0x65cb('0x34')]=_[_0x65cb('0x35')](_0x43c895['model'],qs[_0x65cb('0x36')](_0x525d8b[_0x65cb('0x33')][_0x65cb('0x36')]));_0x4d49d7[_0x65cb('0x34')]=_0x4d49d7[_0x65cb('0x34')][_0x65cb('0x37')]?_0x4d49d7[_0x65cb('0x34')]:_0x43c895[_0x65cb('0x31')];if(_0x525d8b[_0x65cb('0x33')]['includeAll']){_0x4d49d7[_0x65cb('0x43')]=[{'all':!![]}];}_0x4d49d7=_['merge']({},_0x4d49d7,_0x525d8b[_0x65cb('0x40')]);return db[_0x65cb('0x41')]['find'](_0x4d49d7)[_0x65cb('0x25')](handleEntityNotFound(_0x20468e,null))[_0x65cb('0x25')](respondWithResult(_0x20468e,null))[_0x65cb('0x48')](handleError(_0x20468e,null));};exports['create']=function(_0x2e50f4,_0x329f04){return db[_0x65cb('0x41')]['create'](_0x2e50f4[_0x65cb('0x49')],{})['then'](function(_0x12d8bc){var _0x22c499=_0x2e50f4[_0x65cb('0x4a')][_0x65cb('0x26')]({'plain':!![]});if(!_0x22c499)throw new Error(_0x65cb('0x4b'));if(_0x22c499[_0x65cb('0x4c')]===_0x65cb('0x4a')){var _0x820813=_0x12d8bc['get']({'plain':!![]});var _0x357a3b=_0x65cb('0x4d');return db['UserProfileSection']['find']({'where':{'name':_0x357a3b,'userProfileId':_0x22c499[_0x65cb('0x4e')]},'raw':!![]})[_0x65cb('0x25')](function(_0x57d5fe){if(_0x57d5fe&&_0x57d5fe['autoAssociation']===0x0){return db[_0x65cb('0x4f')][_0x65cb('0x50')]({'name':_0x820813[_0x65cb('0x2b')],'resourceId':_0x820813['id'],'type':_0x57d5fe[_0x65cb('0x2b')],'sectionId':_0x57d5fe['id']},{})[_0x65cb('0x25')](function(){return _0x12d8bc;});}else{return _0x12d8bc;}})[_0x65cb('0x48')](function(_0x36430f){logger[_0x65cb('0x29')](_0x65cb('0x51'),_0x36430f);throw _0x36430f;});}return _0x12d8bc;})['then'](respondWithResult(_0x329f04,0xc9))['catch'](handleError(_0x329f04,null));};exports[_0x65cb('0x24')]=function(_0x3dc53e,_0x456e4c){if(_0x3dc53e['body']['id']){delete _0x3dc53e[_0x65cb('0x49')]['id'];}return db['Template']['find']({'where':{'id':_0x3dc53e[_0x65cb('0x46')]['id']}})[_0x65cb('0x25')](handleEntityNotFound(_0x456e4c,null))[_0x65cb('0x25')](saveUpdates(_0x3dc53e[_0x65cb('0x49')],null))[_0x65cb('0x25')](respondWithResult(_0x456e4c,null))['catch'](handleError(_0x456e4c,null));};exports[_0x65cb('0x27')]=function(_0x521e2f,_0x3947f0){return db[_0x65cb('0x41')]['find']({'where':{'id':_0x521e2f[_0x65cb('0x46')]['id']}})[_0x65cb('0x25')](handleEntityNotFound(_0x3947f0,null))[_0x65cb('0x25')](removeEntity(_0x3947f0,null))[_0x65cb('0x48')](handleError(_0x3947f0,null));};