Built motion from commit 6362bb75.|2.6.13
[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 _0x7063=['json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','destroy','Templates','UserProfileResource','error','stack','name','send','map','Template','fieldName','type','key','model','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','keys','rawAttributes','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','sox','ejs','lodash','squel','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end'];(function(_0x140dcd,_0xe99058){var _0x346705=function(_0x38a521){while(--_0x38a521){_0x140dcd['push'](_0x140dcd['shift']());}};_0x346705(++_0xe99058);}(_0x7063,0xdc));var _0x3706=function(_0x5f7967,_0x455ee5){_0x5f7967=_0x5f7967-0x0;var _0x3ef0bd=_0x7063[_0x5f7967];return _0x3ef0bd;};'use strict';var emlformat=require(_0x3706('0x0'));var rimraf=require(_0x3706('0x1'));var zipdir=require(_0x3706('0x2'));var jsonpatch=require(_0x3706('0x3'));var rp=require('request-promise');var moment=require(_0x3706('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x3706('0x5'));var util=require('util');var path=require('path');var sox=require(_0x3706('0x6'));var csv=require('to-csv');var ejs=require(_0x3706('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x3706('0x8'));var squel=require(_0x3706('0x9'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x3706('0xa'));var toCsv=require(_0x3706('0xb'));var querystring=require(_0x3706('0xc'));var Papa=require(_0x3706('0xd'));var Redis=require('ioredis');var authService=require(_0x3706('0xe'));var qs=require(_0x3706('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3706('0x10'));var logger=require(_0x3706('0x11'))(_0x3706('0x12'));var utils=require(_0x3706('0x13'));var config=require(_0x3706('0x14'));var licenseUtil=require(_0x3706('0x15'));var db=require(_0x3706('0x16'))['db'];function respondWithStatusCode(_0x2e6db3,_0x13cfbe){_0x13cfbe=_0x13cfbe||0xcc;return function(_0x2613cc){if(_0x2613cc){return _0x2e6db3[_0x3706('0x17')](_0x13cfbe);}return _0x2e6db3[_0x3706('0x18')](_0x13cfbe)[_0x3706('0x19')]();};}function respondWithResult(_0x1e0180,_0x538558){_0x538558=_0x538558||0xc8;return function(_0x3943f9){if(_0x3943f9){return _0x1e0180[_0x3706('0x18')](_0x538558)[_0x3706('0x1a')](_0x3943f9);}};}function respondWithFilteredResult(_0x239678,_0x7c0cef){return function(_0x1ec493){if(_0x1ec493){var _0x15b679=typeof _0x7c0cef[_0x3706('0x1b')]===_0x3706('0x1c')&&typeof _0x7c0cef[_0x3706('0x1d')]===_0x3706('0x1c');var _0x522dab=_0x1ec493[_0x3706('0x1e')];var _0xde8e57=_0x15b679?0x0:_0x7c0cef[_0x3706('0x1b')];var _0xaa5777=_0x15b679?_0x1ec493[_0x3706('0x1e')]:_0x7c0cef[_0x3706('0x1b')]+_0x7c0cef[_0x3706('0x1d')];var _0x2ac19f;if(_0xaa5777>=_0x522dab){_0xaa5777=_0x522dab;_0x2ac19f=0xc8;}else{_0x2ac19f=0xce;}_0x239678['status'](_0x2ac19f);return _0x239678[_0x3706('0x1f')](_0x3706('0x20'),_0xde8e57+'-'+_0xaa5777+'/'+_0x522dab)[_0x3706('0x1a')](_0x1ec493);}return null;};}function patchUpdates(_0x56a1c7){return function(_0x3a0588){try{jsonpatch['apply'](_0x3a0588,_0x56a1c7,!![]);}catch(_0x26ac13){return BPromise[_0x3706('0x21')](_0x26ac13);}return _0x3a0588[_0x3706('0x22')]();};}function saveUpdates(_0x545fa5,_0x1943bf){return function(_0xe36ed5){if(_0xe36ed5){return _0xe36ed5[_0x3706('0x23')](_0x545fa5)[_0x3706('0x24')](function(_0x59c7b7){return _0x59c7b7;});}return null;};}function removeEntity(_0x50b502,_0x18b22a){return function(_0x40418d){if(_0x40418d){return _0x40418d[_0x3706('0x25')]()[_0x3706('0x24')](function(){var _0x1f6b81=_0x40418d['get']({'plain':!![]});var _0xaa6850=_0x3706('0x26');return db[_0x3706('0x27')][_0x3706('0x25')]({'where':{'type':_0xaa6850,'resourceId':_0x1f6b81['id']}})[_0x3706('0x24')](function(){return _0x40418d;});})[_0x3706('0x24')](function(){_0x50b502[_0x3706('0x18')](0xcc)[_0x3706('0x19')]();});}};}function handleEntityNotFound(_0x1beb69,_0x23207d){return function(_0x14ca23){if(!_0x14ca23){_0x1beb69[_0x3706('0x17')](0x194);}return _0x14ca23;};}function handleError(_0x1107a3,_0x95474f){_0x95474f=_0x95474f||0x1f4;return function(_0x4237ba){logger[_0x3706('0x28')](_0x4237ba[_0x3706('0x29')]);if(_0x4237ba['name']){delete _0x4237ba[_0x3706('0x2a')];}_0x1107a3[_0x3706('0x18')](_0x95474f)[_0x3706('0x2b')](_0x4237ba);};}exports['index']=function(_0x168a2a,_0x14f7dd){var _0x3e7e1c={},_0x56d2af={},_0xc0cf0={'count':0x0,'rows':[]};var _0x28ad4d=_[_0x3706('0x2c')](db[_0x3706('0x2d')]['rawAttributes'],function(_0x1efe83){return{'name':_0x1efe83[_0x3706('0x2e')],'type':_0x1efe83[_0x3706('0x2f')][_0x3706('0x30')]};});_0x56d2af[_0x3706('0x31')]=_[_0x3706('0x2c')](_0x28ad4d,_0x3706('0x2a'));_0x56d2af[_0x3706('0x32')]=_['keys'](_0x168a2a[_0x3706('0x32')]);_0x56d2af[_0x3706('0x33')]=_['intersection'](_0x56d2af[_0x3706('0x31')],_0x56d2af['query']);_0x3e7e1c[_0x3706('0x34')]=_[_0x3706('0x35')](_0x56d2af[_0x3706('0x31')],qs['fields'](_0x168a2a[_0x3706('0x32')][_0x3706('0x36')]));_0x3e7e1c[_0x3706('0x34')]=_0x3e7e1c[_0x3706('0x34')][_0x3706('0x37')]?_0x3e7e1c['attributes']:_0x56d2af[_0x3706('0x31')];if(!_0x168a2a['query'][_0x3706('0x38')](_0x3706('0x39'))){_0x3e7e1c[_0x3706('0x1d')]=qs[_0x3706('0x1d')](_0x168a2a[_0x3706('0x32')][_0x3706('0x1d')]);_0x3e7e1c[_0x3706('0x1b')]=qs[_0x3706('0x1b')](_0x168a2a[_0x3706('0x32')][_0x3706('0x1b')]);}_0x3e7e1c[_0x3706('0x3a')]=qs['sort'](_0x168a2a[_0x3706('0x32')]['sort']);_0x3e7e1c['where']=qs['filters'](_['pick'](_0x168a2a[_0x3706('0x32')],_0x56d2af[_0x3706('0x33')]),_0x28ad4d);if(_0x168a2a['query'][_0x3706('0x3b')]){_0x3e7e1c[_0x3706('0x3c')]=_[_0x3706('0x3d')](_0x3e7e1c['where'],{'$or':_[_0x3706('0x2c')](_0x28ad4d,function(_0x1d9ba9){if(_0x1d9ba9[_0x3706('0x2f')]!==_0x3706('0x3e')){var _0x42dabc={};_0x42dabc[_0x1d9ba9[_0x3706('0x2a')]]={'$like':'%'+_0x168a2a[_0x3706('0x32')]['filter']+'%'};return _0x42dabc;}})});}_0x3e7e1c=_[_0x3706('0x3d')]({},_0x3e7e1c,_0x168a2a[_0x3706('0x3f')]);var _0x485e75={'where':_0x3e7e1c[_0x3706('0x3c')]};return db[_0x3706('0x2d')][_0x3706('0x1e')](_0x485e75)[_0x3706('0x24')](function(_0x400464){_0xc0cf0[_0x3706('0x1e')]=_0x400464;if(_0x168a2a['query'][_0x3706('0x40')]){_0x3e7e1c[_0x3706('0x41')]=[{'all':!![]}];}return db['Template'][_0x3706('0x42')](_0x3e7e1c);})[_0x3706('0x24')](function(_0x542f38){_0xc0cf0[_0x3706('0x43')]=_0x542f38;return _0xc0cf0;})[_0x3706('0x24')](respondWithFilteredResult(_0x14f7dd,_0x3e7e1c))[_0x3706('0x44')](handleError(_0x14f7dd,null));};exports[_0x3706('0x45')]=function(_0x558206,_0x297760){var _0x1e6016={'raw':!![],'where':{'id':_0x558206[_0x3706('0x46')]['id']}},_0x10f608={};_0x10f608[_0x3706('0x31')]=_[_0x3706('0x47')](db[_0x3706('0x2d')][_0x3706('0x48')]);_0x10f608[_0x3706('0x32')]=_[_0x3706('0x47')](_0x558206[_0x3706('0x32')]);_0x10f608[_0x3706('0x33')]=_[_0x3706('0x35')](_0x10f608[_0x3706('0x31')],_0x10f608[_0x3706('0x32')]);_0x1e6016[_0x3706('0x34')]=_['intersection'](_0x10f608[_0x3706('0x31')],qs['fields'](_0x558206[_0x3706('0x32')][_0x3706('0x36')]));_0x1e6016['attributes']=_0x1e6016[_0x3706('0x34')][_0x3706('0x37')]?_0x1e6016[_0x3706('0x34')]:_0x10f608['model'];if(_0x558206[_0x3706('0x32')][_0x3706('0x40')]){_0x1e6016[_0x3706('0x41')]=[{'all':!![]}];}_0x1e6016=_[_0x3706('0x3d')]({},_0x1e6016,_0x558206[_0x3706('0x3f')]);return db['Template'][_0x3706('0x49')](_0x1e6016)[_0x3706('0x24')](handleEntityNotFound(_0x297760,null))[_0x3706('0x24')](respondWithResult(_0x297760,null))[_0x3706('0x44')](handleError(_0x297760,null));};exports[_0x3706('0x4a')]=function(_0x973430,_0x42a661){return db[_0x3706('0x2d')]['create'](_0x973430[_0x3706('0x4b')],{})[_0x3706('0x24')](function(_0x49eaaf){var _0x3b93e6=_0x973430[_0x3706('0x4c')][_0x3706('0x4d')]({'plain':!![]});if(!_0x3b93e6)throw new Error(_0x3706('0x4e'));if(_0x3b93e6[_0x3706('0x4f')]===_0x3706('0x4c')){var _0xa0821d=_0x49eaaf[_0x3706('0x4d')]({'plain':!![]});var _0x2b6400=_0x3706('0x26');return db['UserProfileSection'][_0x3706('0x49')]({'where':{'name':_0x2b6400,'userProfileId':_0x3b93e6[_0x3706('0x50')]},'raw':!![]})[_0x3706('0x24')](function(_0x32ed45){if(_0x32ed45&&_0x32ed45['autoAssociation']===0x0){return db[_0x3706('0x27')][_0x3706('0x4a')]({'name':_0xa0821d[_0x3706('0x2a')],'resourceId':_0xa0821d['id'],'type':_0x32ed45[_0x3706('0x2a')],'sectionId':_0x32ed45['id']},{})['then'](function(){return _0x49eaaf;});}else{return _0x49eaaf;}})[_0x3706('0x44')](function(_0x5ad7f8){logger['error'](_0x3706('0x51'),_0x5ad7f8);throw _0x5ad7f8;});}return _0x49eaaf;})['then'](respondWithResult(_0x42a661,0xc9))[_0x3706('0x44')](handleError(_0x42a661,null));};exports[_0x3706('0x23')]=function(_0x3b8a6a,_0x3ae4ec){if(_0x3b8a6a[_0x3706('0x4b')]['id']){delete _0x3b8a6a[_0x3706('0x4b')]['id'];}return db[_0x3706('0x2d')][_0x3706('0x49')]({'where':{'id':_0x3b8a6a[_0x3706('0x46')]['id']}})[_0x3706('0x24')](handleEntityNotFound(_0x3ae4ec,null))[_0x3706('0x24')](saveUpdates(_0x3b8a6a[_0x3706('0x4b')],null))[_0x3706('0x24')](respondWithResult(_0x3ae4ec,null))[_0x3706('0x44')](handleError(_0x3ae4ec,null));};exports[_0x3706('0x25')]=function(_0x3aa125,_0x31d525){return db['Template'][_0x3706('0x49')]({'where':{'id':_0x3aa125[_0x3706('0x46')]['id']}})[_0x3706('0x24')](handleEntityNotFound(_0x31d525,null))[_0x3706('0x24')](removeEntity(_0x31d525,null))[_0x3706('0x44')](handleError(_0x31d525,null));};