Built motion from commit 3e059bc2.|2.5.32
[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 _0x8b44=['../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/license/util','sendStatus','status','json','offset','undefined','limit','set','Content-Range','apply','save','update','then','get','Templates','UserProfileResource','destroy','end','error','stack','name','Template','rawAttributes','fieldName','type','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','rows','catch','show','include','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service'];(function(_0x3abf9a,_0x3d71df){var _0x1de11b=function(_0x593c77){while(--_0x593c77){_0x3abf9a['push'](_0x3abf9a['shift']());}};_0x1de11b(++_0x3d71df);}(_0x8b44,0x1d9));var _0x48b4=function(_0x2fedce,_0x465067){_0x2fedce=_0x2fedce-0x0;var _0x1ad43a=_0x8b44[_0x2fedce];return _0x1ad43a;};'use strict';var emlformat=require(_0x48b4('0x0'));var rimraf=require(_0x48b4('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x48b4('0x2'));var rp=require(_0x48b4('0x3'));var moment=require(_0x48b4('0x4'));var BPromise=require(_0x48b4('0x5'));var Mustache=require('mustache');var util=require(_0x48b4('0x6'));var path=require(_0x48b4('0x7'));var sox=require('sox');var csv=require(_0x48b4('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x48b4('0x9'));var _=require(_0x48b4('0xa'));var squel=require(_0x48b4('0xb'));var crypto=require(_0x48b4('0xc'));var jsforce=require(_0x48b4('0xd'));var deskjs=require(_0x48b4('0xe'));var toCsv=require(_0x48b4('0x8'));var querystring=require(_0x48b4('0xf'));var Papa=require(_0x48b4('0x10'));var Redis=require(_0x48b4('0x11'));var authService=require(_0x48b4('0x12'));var qs=require(_0x48b4('0x13'));var as=require(_0x48b4('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x48b4('0x15'))(_0x48b4('0x16'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x48b4('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x44c8de,_0x3f6b96){_0x3f6b96=_0x3f6b96||0xcc;return function(_0x1d0d73){if(_0x1d0d73){return _0x44c8de[_0x48b4('0x18')](_0x3f6b96);}return _0x44c8de['status'](_0x3f6b96)['end']();};}function respondWithResult(_0x37f5f8,_0x50b094){_0x50b094=_0x50b094||0xc8;return function(_0x4b7591){if(_0x4b7591){return _0x37f5f8[_0x48b4('0x19')](_0x50b094)[_0x48b4('0x1a')](_0x4b7591);}};}function respondWithFilteredResult(_0x46607c,_0x34e441){return function(_0x5d3260){if(_0x5d3260){var _0x4e647c=typeof _0x34e441[_0x48b4('0x1b')]===_0x48b4('0x1c')&&typeof _0x34e441[_0x48b4('0x1d')]===_0x48b4('0x1c');var _0x5e46d3=_0x5d3260['count'];var _0x4a1b8e=_0x4e647c?0x0:_0x34e441['offset'];var _0x181be8=_0x4e647c?_0x5d3260['count']:_0x34e441['offset']+_0x34e441[_0x48b4('0x1d')];var _0x165749;if(_0x181be8>=_0x5e46d3){_0x181be8=_0x5e46d3;_0x165749=0xc8;}else{_0x165749=0xce;}_0x46607c[_0x48b4('0x19')](_0x165749);return _0x46607c[_0x48b4('0x1e')](_0x48b4('0x1f'),_0x4a1b8e+'-'+_0x181be8+'/'+_0x5e46d3)[_0x48b4('0x1a')](_0x5d3260);}return null;};}function patchUpdates(_0x3f4e58){return function(_0x47fd63){try{jsonpatch[_0x48b4('0x20')](_0x47fd63,_0x3f4e58,!![]);}catch(_0x28aaff){return BPromise['reject'](_0x28aaff);}return _0x47fd63[_0x48b4('0x21')]();};}function saveUpdates(_0x542e81,_0x22730e){return function(_0x344be9){if(_0x344be9){return _0x344be9[_0x48b4('0x22')](_0x542e81)[_0x48b4('0x23')](function(_0x3d9080){return _0x3d9080;});}return null;};}function removeEntity(_0x91d737,_0x4a9dde){return function(_0x41b83a){if(_0x41b83a){return _0x41b83a['destroy']()[_0x48b4('0x23')](function(){var _0x4bb2ae=_0x41b83a[_0x48b4('0x24')]({'plain':!![]});var _0x327dea=_0x48b4('0x25');return db[_0x48b4('0x26')][_0x48b4('0x27')]({'where':{'type':_0x327dea,'resourceId':_0x4bb2ae['id']}})[_0x48b4('0x23')](function(){return _0x41b83a;});})['then'](function(){_0x91d737['status'](0xcc)[_0x48b4('0x28')]();});}};}function handleEntityNotFound(_0x45bed2,_0x1c4c1f){return function(_0x4e3c0d){if(!_0x4e3c0d){_0x45bed2[_0x48b4('0x18')](0x194);}return _0x4e3c0d;};}function handleError(_0x2c3a86,_0x13b9bb){_0x13b9bb=_0x13b9bb||0x1f4;return function(_0x2dd97b){logger[_0x48b4('0x29')](_0x2dd97b[_0x48b4('0x2a')]);if(_0x2dd97b[_0x48b4('0x2b')]){delete _0x2dd97b[_0x48b4('0x2b')];}_0x2c3a86[_0x48b4('0x19')](_0x13b9bb)['send'](_0x2dd97b);};}exports['index']=function(_0x3582ab,_0x134122){var _0x417878={},_0x30b206={},_0x5f4344={'count':0x0,'rows':[]};var _0x57a426=_['map'](db[_0x48b4('0x2c')][_0x48b4('0x2d')],function(_0x5c1fed){return{'name':_0x5c1fed[_0x48b4('0x2e')],'type':_0x5c1fed[_0x48b4('0x2f')]['key']};});_0x30b206[_0x48b4('0x30')]=_[_0x48b4('0x31')](_0x57a426,_0x48b4('0x2b'));_0x30b206[_0x48b4('0x32')]=_[_0x48b4('0x33')](_0x3582ab[_0x48b4('0x32')]);_0x30b206[_0x48b4('0x34')]=_[_0x48b4('0x35')](_0x30b206[_0x48b4('0x30')],_0x30b206[_0x48b4('0x32')]);_0x417878[_0x48b4('0x36')]=_[_0x48b4('0x35')](_0x30b206[_0x48b4('0x30')],qs['fields'](_0x3582ab[_0x48b4('0x32')][_0x48b4('0x37')]));_0x417878['attributes']=_0x417878[_0x48b4('0x36')][_0x48b4('0x38')]?_0x417878[_0x48b4('0x36')]:_0x30b206[_0x48b4('0x30')];if(!_0x3582ab['query'][_0x48b4('0x39')](_0x48b4('0x3a'))){_0x417878[_0x48b4('0x1d')]=qs['limit'](_0x3582ab['query'][_0x48b4('0x1d')]);_0x417878[_0x48b4('0x1b')]=qs[_0x48b4('0x1b')](_0x3582ab[_0x48b4('0x32')][_0x48b4('0x1b')]);}_0x417878[_0x48b4('0x3b')]=qs['sort'](_0x3582ab['query'][_0x48b4('0x3c')]);_0x417878[_0x48b4('0x3d')]=qs['filters'](_[_0x48b4('0x3e')](_0x3582ab['query'],_0x30b206[_0x48b4('0x34')]),_0x57a426);if(_0x3582ab[_0x48b4('0x32')][_0x48b4('0x3f')]){_0x417878['where']=_[_0x48b4('0x40')](_0x417878[_0x48b4('0x3d')],{'$or':_[_0x48b4('0x31')](_0x57a426,function(_0x199595){if(_0x199595['type']!==_0x48b4('0x41')){var _0x335376={};_0x335376[_0x199595['name']]={'$like':'%'+_0x3582ab[_0x48b4('0x32')][_0x48b4('0x3f')]+'%'};return _0x335376;}})});}_0x417878=_[_0x48b4('0x40')]({},_0x417878,_0x3582ab[_0x48b4('0x42')]);var _0x30175a={'where':_0x417878[_0x48b4('0x3d')]};return db['Template']['count'](_0x30175a)[_0x48b4('0x23')](function(_0x2cd57c){_0x5f4344['count']=_0x2cd57c;if(_0x3582ab[_0x48b4('0x32')][_0x48b4('0x43')]){_0x417878['include']=[{'all':!![]}];}return db['Template']['findAll'](_0x417878);})[_0x48b4('0x23')](function(_0x1d67d9){_0x5f4344[_0x48b4('0x44')]=_0x1d67d9;return _0x5f4344;})[_0x48b4('0x23')](respondWithFilteredResult(_0x134122,_0x417878))[_0x48b4('0x45')](handleError(_0x134122,null));};exports[_0x48b4('0x46')]=function(_0x360428,_0x43a9db){var _0x252345={'raw':!![],'where':{'id':_0x360428['params']['id']}},_0x36edb6={};_0x36edb6[_0x48b4('0x30')]=_[_0x48b4('0x33')](db[_0x48b4('0x2c')][_0x48b4('0x2d')]);_0x36edb6[_0x48b4('0x32')]=_['keys'](_0x360428[_0x48b4('0x32')]);_0x36edb6[_0x48b4('0x34')]=_[_0x48b4('0x35')](_0x36edb6[_0x48b4('0x30')],_0x36edb6[_0x48b4('0x32')]);_0x252345['attributes']=_[_0x48b4('0x35')](_0x36edb6['model'],qs['fields'](_0x360428[_0x48b4('0x32')][_0x48b4('0x37')]));_0x252345[_0x48b4('0x36')]=_0x252345[_0x48b4('0x36')][_0x48b4('0x38')]?_0x252345['attributes']:_0x36edb6['model'];if(_0x360428[_0x48b4('0x32')][_0x48b4('0x43')]){_0x252345[_0x48b4('0x47')]=[{'all':!![]}];}_0x252345=_[_0x48b4('0x40')]({},_0x252345,_0x360428[_0x48b4('0x42')]);return db[_0x48b4('0x2c')]['find'](_0x252345)[_0x48b4('0x23')](handleEntityNotFound(_0x43a9db,null))[_0x48b4('0x23')](respondWithResult(_0x43a9db,null))[_0x48b4('0x45')](handleError(_0x43a9db,null));};exports[_0x48b4('0x48')]=function(_0x5c5564,_0x582e1a){return db[_0x48b4('0x2c')]['create'](_0x5c5564[_0x48b4('0x49')],{})[_0x48b4('0x23')](function(_0x11b1ea){var _0x33dd96=_0x5c5564[_0x48b4('0x4a')][_0x48b4('0x24')]({'plain':!![]});if(!_0x33dd96)throw new Error(_0x48b4('0x4b'));if(_0x33dd96[_0x48b4('0x4c')]===_0x48b4('0x4a')){var _0x372589=_0x11b1ea[_0x48b4('0x24')]({'plain':!![]});var _0x401e92=_0x48b4('0x25');return db[_0x48b4('0x4d')][_0x48b4('0x4e')]({'where':{'name':_0x401e92,'userProfileId':_0x33dd96[_0x48b4('0x4f')]},'raw':!![]})[_0x48b4('0x23')](function(_0x1af7b2){if(_0x1af7b2&&_0x1af7b2[_0x48b4('0x50')]===0x0){return db['UserProfileResource'][_0x48b4('0x48')]({'name':_0x372589[_0x48b4('0x2b')],'resourceId':_0x372589['id'],'type':_0x1af7b2[_0x48b4('0x2b')],'sectionId':_0x1af7b2['id']},{})[_0x48b4('0x23')](function(){return _0x11b1ea;});}else{return _0x11b1ea;}})[_0x48b4('0x45')](function(_0xa2079){logger['error'](_0x48b4('0x51'),_0xa2079);throw _0xa2079;});}return _0x11b1ea;})[_0x48b4('0x23')](respondWithResult(_0x582e1a,0xc9))[_0x48b4('0x45')](handleError(_0x582e1a,null));};exports[_0x48b4('0x22')]=function(_0x17203e,_0x55e454){if(_0x17203e['body']['id']){delete _0x17203e[_0x48b4('0x49')]['id'];}return db[_0x48b4('0x2c')][_0x48b4('0x4e')]({'where':{'id':_0x17203e['params']['id']}})[_0x48b4('0x23')](handleEntityNotFound(_0x55e454,null))[_0x48b4('0x23')](saveUpdates(_0x17203e[_0x48b4('0x49')],null))['then'](respondWithResult(_0x55e454,null))[_0x48b4('0x45')](handleError(_0x55e454,null));};exports[_0x48b4('0x27')]=function(_0x475bfc,_0x2b5187){return db[_0x48b4('0x2c')]['find']({'where':{'id':_0x475bfc['params']['id']}})['then'](handleEntityNotFound(_0x2b5187,null))['then'](removeEntity(_0x2b5187,null))[_0x48b4('0x45')](handleError(_0x2b5187,null));};