Built motion from commit e0fa946e.|2.6.5
[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 _0xd854=['VIRTUAL','count','includeAll','include','rows','catch','show','find','create','body','UserProfileSection','userProfileId','autoAssociation','error','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/license/util','sendStatus','end','status','json','offset','undefined','limit','apply','save','update','then','get','Templates','UserProfileResource','destroy','name','send','index','map','Template','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','merge'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xd854,0x194));var _0x4d85=function(_0x502569,_0x28ad02){_0x502569=_0x502569-0x0;var _0x5e0445=_0xd854[_0x502569];return _0x5e0445;};'use strict';var emlformat=require(_0x4d85('0x0'));var rimraf=require(_0x4d85('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x4d85('0x2'));var rp=require(_0x4d85('0x3'));var moment=require(_0x4d85('0x4'));var BPromise=require(_0x4d85('0x5'));var Mustache=require(_0x4d85('0x6'));var util=require(_0x4d85('0x7'));var path=require(_0x4d85('0x8'));var sox=require(_0x4d85('0x9'));var csv=require(_0x4d85('0xa'));var ejs=require(_0x4d85('0xb'));var fs=require('fs');var fs_extra=require(_0x4d85('0xc'));var _=require(_0x4d85('0xd'));var squel=require(_0x4d85('0xe'));var crypto=require(_0x4d85('0xf'));var jsforce=require('jsforce');var deskjs=require(_0x4d85('0x10'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x4d85('0x11'));var Redis=require(_0x4d85('0x12'));var authService=require(_0x4d85('0x13'));var qs=require(_0x4d85('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x4d85('0x15'))(_0x4d85('0x16'));var utils=require(_0x4d85('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0x4d85('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x373988,_0xb9dd92){_0xb9dd92=_0xb9dd92||0xcc;return function(_0x1bc128){if(_0x1bc128){return _0x373988[_0x4d85('0x19')](_0xb9dd92);}return _0x373988['status'](_0xb9dd92)[_0x4d85('0x1a')]();};}function respondWithResult(_0x32937c,_0x18d1ac){_0x18d1ac=_0x18d1ac||0xc8;return function(_0xbd35e8){if(_0xbd35e8){return _0x32937c[_0x4d85('0x1b')](_0x18d1ac)[_0x4d85('0x1c')](_0xbd35e8);}};}function respondWithFilteredResult(_0x7150a3,_0x2a7e6c){return function(_0xd6e5b4){if(_0xd6e5b4){var _0x337622=typeof _0x2a7e6c[_0x4d85('0x1d')]===_0x4d85('0x1e')&&typeof _0x2a7e6c[_0x4d85('0x1f')]===_0x4d85('0x1e');var _0x44ccf7=_0xd6e5b4['count'];var _0xed22f1=_0x337622?0x0:_0x2a7e6c['offset'];var _0x5ac4af=_0x337622?_0xd6e5b4['count']:_0x2a7e6c[_0x4d85('0x1d')]+_0x2a7e6c[_0x4d85('0x1f')];var _0x1830d4;if(_0x5ac4af>=_0x44ccf7){_0x5ac4af=_0x44ccf7;_0x1830d4=0xc8;}else{_0x1830d4=0xce;}_0x7150a3[_0x4d85('0x1b')](_0x1830d4);return _0x7150a3['set']('Content-Range',_0xed22f1+'-'+_0x5ac4af+'/'+_0x44ccf7)[_0x4d85('0x1c')](_0xd6e5b4);}return null;};}function patchUpdates(_0x2f23e6){return function(_0x2cb4d2){try{jsonpatch[_0x4d85('0x20')](_0x2cb4d2,_0x2f23e6,!![]);}catch(_0x273eba){return BPromise['reject'](_0x273eba);}return _0x2cb4d2[_0x4d85('0x21')]();};}function saveUpdates(_0x5175d7,_0x203a3d){return function(_0x51c1c8){if(_0x51c1c8){return _0x51c1c8[_0x4d85('0x22')](_0x5175d7)[_0x4d85('0x23')](function(_0x56ead4){return _0x56ead4;});}return null;};}function removeEntity(_0x2fbbb4,_0x5e012b){return function(_0x227db3){if(_0x227db3){return _0x227db3['destroy']()[_0x4d85('0x23')](function(){var _0x52ab47=_0x227db3[_0x4d85('0x24')]({'plain':!![]});var _0x41ec7d=_0x4d85('0x25');return db[_0x4d85('0x26')][_0x4d85('0x27')]({'where':{'type':_0x41ec7d,'resourceId':_0x52ab47['id']}})[_0x4d85('0x23')](function(){return _0x227db3;});})[_0x4d85('0x23')](function(){_0x2fbbb4[_0x4d85('0x1b')](0xcc)[_0x4d85('0x1a')]();});}};}function handleEntityNotFound(_0xc4571a,_0x34759a){return function(_0x3c67fb){if(!_0x3c67fb){_0xc4571a[_0x4d85('0x19')](0x194);}return _0x3c67fb;};}function handleError(_0xe0dbaf,_0x36d8cb){_0x36d8cb=_0x36d8cb||0x1f4;return function(_0x1c7e85){logger['error'](_0x1c7e85['stack']);if(_0x1c7e85[_0x4d85('0x28')]){delete _0x1c7e85['name'];}_0xe0dbaf[_0x4d85('0x1b')](_0x36d8cb)[_0x4d85('0x29')](_0x1c7e85);};}exports[_0x4d85('0x2a')]=function(_0x34cbc2,_0x2a92c1){var _0x3688b6={},_0x262dd0={},_0x51c924={'count':0x0,'rows':[]};var _0x2ad7c2=_[_0x4d85('0x2b')](db[_0x4d85('0x2c')][_0x4d85('0x2d')],function(_0x3ecce8){return{'name':_0x3ecce8[_0x4d85('0x2e')],'type':_0x3ecce8[_0x4d85('0x2f')][_0x4d85('0x30')]};});_0x262dd0[_0x4d85('0x31')]=_[_0x4d85('0x2b')](_0x2ad7c2,_0x4d85('0x28'));_0x262dd0['query']=_[_0x4d85('0x32')](_0x34cbc2[_0x4d85('0x33')]);_0x262dd0[_0x4d85('0x34')]=_['intersection'](_0x262dd0['model'],_0x262dd0[_0x4d85('0x33')]);_0x3688b6['attributes']=_[_0x4d85('0x35')](_0x262dd0[_0x4d85('0x31')],qs[_0x4d85('0x36')](_0x34cbc2['query'][_0x4d85('0x36')]));_0x3688b6[_0x4d85('0x37')]=_0x3688b6[_0x4d85('0x37')][_0x4d85('0x38')]?_0x3688b6[_0x4d85('0x37')]:_0x262dd0['model'];if(!_0x34cbc2[_0x4d85('0x33')][_0x4d85('0x39')](_0x4d85('0x3a'))){_0x3688b6[_0x4d85('0x1f')]=qs[_0x4d85('0x1f')](_0x34cbc2['query'][_0x4d85('0x1f')]);_0x3688b6[_0x4d85('0x1d')]=qs[_0x4d85('0x1d')](_0x34cbc2[_0x4d85('0x33')]['offset']);}_0x3688b6[_0x4d85('0x3b')]=qs[_0x4d85('0x3c')](_0x34cbc2[_0x4d85('0x33')][_0x4d85('0x3c')]);_0x3688b6[_0x4d85('0x3d')]=qs[_0x4d85('0x34')](_[_0x4d85('0x3e')](_0x34cbc2[_0x4d85('0x33')],_0x262dd0[_0x4d85('0x34')]),_0x2ad7c2);if(_0x34cbc2['query']['filter']){_0x3688b6[_0x4d85('0x3d')]=_[_0x4d85('0x3f')](_0x3688b6[_0x4d85('0x3d')],{'$or':_[_0x4d85('0x2b')](_0x2ad7c2,function(_0x5a03a4){if(_0x5a03a4[_0x4d85('0x2f')]!==_0x4d85('0x40')){var _0x2ddad5={};_0x2ddad5[_0x5a03a4['name']]={'$like':'%'+_0x34cbc2[_0x4d85('0x33')]['filter']+'%'};return _0x2ddad5;}})});}_0x3688b6=_[_0x4d85('0x3f')]({},_0x3688b6,_0x34cbc2['options']);var _0x51e5ab={'where':_0x3688b6[_0x4d85('0x3d')]};return db['Template'][_0x4d85('0x41')](_0x51e5ab)['then'](function(_0x36c8f5){_0x51c924[_0x4d85('0x41')]=_0x36c8f5;if(_0x34cbc2['query'][_0x4d85('0x42')]){_0x3688b6[_0x4d85('0x43')]=[{'all':!![]}];}return db['Template']['findAll'](_0x3688b6);})['then'](function(_0x4a33b8){_0x51c924[_0x4d85('0x44')]=_0x4a33b8;return _0x51c924;})['then'](respondWithFilteredResult(_0x2a92c1,_0x3688b6))[_0x4d85('0x45')](handleError(_0x2a92c1,null));};exports[_0x4d85('0x46')]=function(_0x3dc793,_0x39bad6){var _0x29ac1c={'raw':!![],'where':{'id':_0x3dc793['params']['id']}},_0x5aed84={};_0x5aed84[_0x4d85('0x31')]=_[_0x4d85('0x32')](db[_0x4d85('0x2c')][_0x4d85('0x2d')]);_0x5aed84[_0x4d85('0x33')]=_[_0x4d85('0x32')](_0x3dc793['query']);_0x5aed84[_0x4d85('0x34')]=_['intersection'](_0x5aed84[_0x4d85('0x31')],_0x5aed84[_0x4d85('0x33')]);_0x29ac1c[_0x4d85('0x37')]=_[_0x4d85('0x35')](_0x5aed84['model'],qs[_0x4d85('0x36')](_0x3dc793['query'][_0x4d85('0x36')]));_0x29ac1c[_0x4d85('0x37')]=_0x29ac1c[_0x4d85('0x37')][_0x4d85('0x38')]?_0x29ac1c[_0x4d85('0x37')]:_0x5aed84['model'];if(_0x3dc793['query'][_0x4d85('0x42')]){_0x29ac1c['include']=[{'all':!![]}];}_0x29ac1c=_[_0x4d85('0x3f')]({},_0x29ac1c,_0x3dc793['options']);return db['Template'][_0x4d85('0x47')](_0x29ac1c)['then'](handleEntityNotFound(_0x39bad6,null))[_0x4d85('0x23')](respondWithResult(_0x39bad6,null))['catch'](handleError(_0x39bad6,null));};exports[_0x4d85('0x48')]=function(_0x4ee09f,_0x55ff34){return db[_0x4d85('0x2c')]['create'](_0x4ee09f[_0x4d85('0x49')],{})['then'](function(_0x6a43c1){var _0x1d45d1=_0x4ee09f['user'][_0x4d85('0x24')]({'plain':!![]});if(!_0x1d45d1)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1d45d1['role']==='user'){var _0x356b00=_0x6a43c1[_0x4d85('0x24')]({'plain':!![]});var _0x472743=_0x4d85('0x25');return db[_0x4d85('0x4a')][_0x4d85('0x47')]({'where':{'name':_0x472743,'userProfileId':_0x1d45d1[_0x4d85('0x4b')]},'raw':!![]})[_0x4d85('0x23')](function(_0x134358){if(_0x134358&&_0x134358[_0x4d85('0x4c')]===0x0){return db[_0x4d85('0x26')][_0x4d85('0x48')]({'name':_0x356b00[_0x4d85('0x28')],'resourceId':_0x356b00['id'],'type':_0x134358[_0x4d85('0x28')],'sectionId':_0x134358['id']},{})[_0x4d85('0x23')](function(){return _0x6a43c1;});}else{return _0x6a43c1;}})[_0x4d85('0x45')](function(_0x47982e){logger[_0x4d85('0x4d')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x47982e);throw _0x47982e;});}return _0x6a43c1;})[_0x4d85('0x23')](respondWithResult(_0x55ff34,0xc9))['catch'](handleError(_0x55ff34,null));};exports[_0x4d85('0x22')]=function(_0x484341,_0x2fb824){if(_0x484341[_0x4d85('0x49')]['id']){delete _0x484341['body']['id'];}return db[_0x4d85('0x2c')][_0x4d85('0x47')]({'where':{'id':_0x484341['params']['id']}})[_0x4d85('0x23')](handleEntityNotFound(_0x2fb824,null))[_0x4d85('0x23')](saveUpdates(_0x484341[_0x4d85('0x49')],null))[_0x4d85('0x23')](respondWithResult(_0x2fb824,null))[_0x4d85('0x45')](handleError(_0x2fb824,null));};exports[_0x4d85('0x27')]=function(_0x1ba7b0,_0x3fdf07){return db[_0x4d85('0x2c')][_0x4d85('0x47')]({'where':{'id':_0x1ba7b0['params']['id']}})[_0x4d85('0x23')](handleEntityNotFound(_0x3fdf07,null))[_0x4d85('0x23')](removeEntity(_0x3fdf07,null))[_0x4d85('0x45')](handleError(_0x3fdf07,null));};