Built motion from commit (unavailable).|2.4.18
[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 _0xdbd7=['html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','ejs','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','json','offset','set','apply','save','update','destroy','then','get','Templates','error','stack','name','send','index','map','Template','rawAttributes','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','pick','where','merge','VIRTUAL','filter','options','count','include','findAll','rows','catch','params','create','user','role','UserProfileSection','find','autoAssociation','body'];(function(_0x1db6ed,_0x2bc4d7){var _0x5b76cf=function(_0x18dbfe){while(--_0x18dbfe){_0x1db6ed['push'](_0x1db6ed['shift']());}};_0x5b76cf(++_0x2bc4d7);}(_0xdbd7,0xe4));var _0x7dbd=function(_0xb4f3f4,_0x3ceab6){_0xb4f3f4=_0xb4f3f4-0x0;var _0xa951a9=_0xdbd7[_0xb4f3f4];return _0xa951a9;};'use strict';var pdf=require(_0x7dbd('0x0'));var emlformat=require(_0x7dbd('0x1'));var rimraf=require(_0x7dbd('0x2'));var zipdir=require(_0x7dbd('0x3'));var jsonpatch=require(_0x7dbd('0x4'));var rp=require(_0x7dbd('0x5'));var moment=require('moment');var BPromise=require(_0x7dbd('0x6'));var Mustache=require(_0x7dbd('0x7'));var util=require(_0x7dbd('0x8'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x7dbd('0x9'));var fs=require('fs');var _=require('lodash');var squel=require(_0x7dbd('0xa'));var crypto=require(_0x7dbd('0xb'));var jsforce=require(_0x7dbd('0xc'));var deskjs=require(_0x7dbd('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x7dbd('0xe'));var Redis=require(_0x7dbd('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x7dbd('0x10'));var as=require(_0x7dbd('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x7dbd('0x12'))(_0x7dbd('0x13'));var utils=require(_0x7dbd('0x14'));var config=require(_0x7dbd('0x15'));var db=require(_0x7dbd('0x16'))['db'];function respondWithStatusCode(_0x3e9460,_0x5a28f3){_0x5a28f3=_0x5a28f3||0xcc;return function(_0x5dbb86){if(_0x5dbb86){return _0x3e9460[_0x7dbd('0x17')](_0x5a28f3);}return _0x3e9460['status'](_0x5a28f3)[_0x7dbd('0x18')]();};}function respondWithResult(_0x5b6356,_0x533a35){_0x533a35=_0x533a35||0xc8;return function(_0x478ba7){if(_0x478ba7){return _0x5b6356[_0x7dbd('0x19')](_0x533a35)[_0x7dbd('0x1a')](_0x478ba7);}};}function respondWithFilteredResult(_0x684969,_0x9a9f8){return function(_0x499628){if(_0x499628){var _0x55238a=_0x499628['count'],_0x2de3f4=_0x9a9f8[_0x7dbd('0x1b')],_0x54e887=_0x9a9f8['offset']+_0x9a9f8['limit'],_0x35566b;if(_0x54e887>=_0x55238a){_0x54e887=_0x55238a;_0x35566b=0xc8;}else{_0x35566b=0xce;}_0x684969[_0x7dbd('0x19')](_0x35566b);return _0x684969[_0x7dbd('0x1c')]('Content-Range',_0x2de3f4+'-'+_0x54e887+'/'+_0x55238a)[_0x7dbd('0x1a')](_0x499628);}return null;};}function patchUpdates(_0x58755f){return function(_0x2c795a){try{jsonpatch[_0x7dbd('0x1d')](_0x2c795a,_0x58755f,!![]);}catch(_0x2b5482){return BPromise['reject'](_0x2b5482);}return _0x2c795a[_0x7dbd('0x1e')]();};}function saveUpdates(_0x17f645,_0x44f12f){return function(_0x3a0c7a){if(_0x3a0c7a){return _0x3a0c7a[_0x7dbd('0x1f')](_0x17f645)['then'](function(_0x124608){return _0x124608;});}return null;};}function removeEntity(_0x4e9205,_0x5114d7){return function(_0xf76e42){if(_0xf76e42){return _0xf76e42[_0x7dbd('0x20')]()[_0x7dbd('0x21')](function(){var _0x104161=_0xf76e42[_0x7dbd('0x22')]({'plain':!![]});var _0x43721b=_0x7dbd('0x23');return db['UserProfileResource'][_0x7dbd('0x20')]({'where':{'type':_0x43721b,'resourceId':_0x104161['id']}})[_0x7dbd('0x21')](function(){return _0xf76e42;});})[_0x7dbd('0x21')](function(){_0x4e9205[_0x7dbd('0x19')](0xcc)[_0x7dbd('0x18')]();});}};}function handleEntityNotFound(_0x4bc62b,_0x59a062){return function(_0x39a90f){if(!_0x39a90f){_0x4bc62b[_0x7dbd('0x17')](0x194);}return _0x39a90f;};}function handleError(_0x293469,_0x44d9f8){_0x44d9f8=_0x44d9f8||0x1f4;return function(_0x14e854){logger[_0x7dbd('0x24')](_0x14e854[_0x7dbd('0x25')]);if(_0x14e854[_0x7dbd('0x26')]){delete _0x14e854['name'];}_0x293469[_0x7dbd('0x19')](_0x44d9f8)[_0x7dbd('0x27')](_0x14e854);};}exports[_0x7dbd('0x28')]=function(_0x2d1baf,_0x4d9e4f){var _0x40af5d={},_0x5e5804={},_0x7712f6={'count':0x0,'rows':[]};var _0x2a10df=_[_0x7dbd('0x29')](db[_0x7dbd('0x2a')][_0x7dbd('0x2b')],function(_0x27752e){return{'name':_0x27752e['fieldName'],'type':_0x27752e[_0x7dbd('0x2c')][_0x7dbd('0x2d')]};});_0x5e5804[_0x7dbd('0x2e')]=_[_0x7dbd('0x29')](_0x2a10df,'name');_0x5e5804['query']=_[_0x7dbd('0x2f')](_0x2d1baf[_0x7dbd('0x30')]);_0x5e5804[_0x7dbd('0x31')]=_[_0x7dbd('0x32')](_0x5e5804[_0x7dbd('0x2e')],_0x5e5804['query']);_0x40af5d[_0x7dbd('0x33')]=_['intersection'](_0x5e5804['model'],qs[_0x7dbd('0x34')](_0x2d1baf[_0x7dbd('0x30')]['fields']));_0x40af5d[_0x7dbd('0x33')]=_0x40af5d[_0x7dbd('0x33')][_0x7dbd('0x35')]?_0x40af5d[_0x7dbd('0x33')]:_0x5e5804[_0x7dbd('0x2e')];if(!_0x2d1baf[_0x7dbd('0x30')][_0x7dbd('0x36')](_0x7dbd('0x37'))){_0x40af5d[_0x7dbd('0x38')]=qs[_0x7dbd('0x38')](_0x2d1baf[_0x7dbd('0x30')][_0x7dbd('0x38')]);_0x40af5d[_0x7dbd('0x1b')]=qs[_0x7dbd('0x1b')](_0x2d1baf[_0x7dbd('0x30')][_0x7dbd('0x1b')]);}_0x40af5d['order']=qs['sort'](_0x2d1baf[_0x7dbd('0x30')]['sort']);_0x40af5d['where']=qs[_0x7dbd('0x31')](_[_0x7dbd('0x39')](_0x2d1baf[_0x7dbd('0x30')],_0x5e5804[_0x7dbd('0x31')]));if(_0x2d1baf[_0x7dbd('0x30')]['filter']){_0x40af5d[_0x7dbd('0x3a')]=_[_0x7dbd('0x3b')](_0x40af5d[_0x7dbd('0x3a')],{'$or':_[_0x7dbd('0x29')](_0x2a10df,function(_0x23c2cc){if(_0x23c2cc['type']!==_0x7dbd('0x3c')){var _0x179200={};_0x179200[_0x23c2cc['name']]={'$like':'%'+_0x2d1baf['query'][_0x7dbd('0x3d')]+'%'};return _0x179200;}})});}_0x40af5d=_[_0x7dbd('0x3b')]({},_0x40af5d,_0x2d1baf[_0x7dbd('0x3e')]);var _0x359b04={'where':_0x40af5d[_0x7dbd('0x3a')]};return db[_0x7dbd('0x2a')][_0x7dbd('0x3f')](_0x359b04)[_0x7dbd('0x21')](function(_0x1cf31c){_0x7712f6[_0x7dbd('0x3f')]=_0x1cf31c;if(_0x2d1baf['query']['includeAll']){_0x40af5d[_0x7dbd('0x40')]=[{'all':!![]}];}return db[_0x7dbd('0x2a')][_0x7dbd('0x41')](_0x40af5d);})[_0x7dbd('0x21')](function(_0x387fbb){_0x7712f6[_0x7dbd('0x42')]=_0x387fbb;return _0x7712f6;})[_0x7dbd('0x21')](respondWithFilteredResult(_0x4d9e4f,_0x40af5d))[_0x7dbd('0x43')](handleError(_0x4d9e4f,null));};exports['show']=function(_0x47fe4a,_0x544372){var _0x210342={'raw':!![],'where':{'id':_0x47fe4a[_0x7dbd('0x44')]['id']}},_0x2f67b9={};_0x2f67b9[_0x7dbd('0x2e')]=_[_0x7dbd('0x2f')](db[_0x7dbd('0x2a')][_0x7dbd('0x2b')]);_0x2f67b9[_0x7dbd('0x30')]=_['keys'](_0x47fe4a['query']);_0x2f67b9['filters']=_[_0x7dbd('0x32')](_0x2f67b9[_0x7dbd('0x2e')],_0x2f67b9[_0x7dbd('0x30')]);_0x210342[_0x7dbd('0x33')]=_[_0x7dbd('0x32')](_0x2f67b9['model'],qs[_0x7dbd('0x34')](_0x47fe4a['query'][_0x7dbd('0x34')]));_0x210342['attributes']=_0x210342['attributes'][_0x7dbd('0x35')]?_0x210342[_0x7dbd('0x33')]:_0x2f67b9[_0x7dbd('0x2e')];if(_0x47fe4a['query']['includeAll']){_0x210342[_0x7dbd('0x40')]=[{'all':!![]}];}_0x210342=_[_0x7dbd('0x3b')]({},_0x210342,_0x47fe4a[_0x7dbd('0x3e')]);return db[_0x7dbd('0x2a')]['find'](_0x210342)[_0x7dbd('0x21')](handleEntityNotFound(_0x544372,null))[_0x7dbd('0x21')](respondWithResult(_0x544372,null))[_0x7dbd('0x43')](handleError(_0x544372,null));};exports[_0x7dbd('0x45')]=function(_0x8f0921,_0x32ae6e){return db[_0x7dbd('0x2a')]['create'](_0x8f0921['body'],{})['then'](function(_0x7c51ee){var _0x2c63d9=_0x8f0921[_0x7dbd('0x46')][_0x7dbd('0x22')]({'plain':!![]});if(!_0x2c63d9)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x2c63d9[_0x7dbd('0x47')]===_0x7dbd('0x46')){var _0x37751f=_0x7c51ee[_0x7dbd('0x22')]({'plain':!![]});var _0x243279=_0x7dbd('0x23');return db[_0x7dbd('0x48')][_0x7dbd('0x49')]({'where':{'name':_0x243279,'userProfileId':_0x2c63d9['userProfileId']},'raw':!![]})[_0x7dbd('0x21')](function(_0x5bcd8c){if(_0x5bcd8c&&_0x5bcd8c[_0x7dbd('0x4a')]===0x0){return db['UserProfileResource']['create']({'name':_0x37751f[_0x7dbd('0x26')],'resourceId':_0x37751f['id'],'type':_0x5bcd8c['name'],'sectionId':_0x5bcd8c['id']},{})[_0x7dbd('0x21')](function(){return _0x7c51ee;});}else{return _0x7c51ee;}})[_0x7dbd('0x43')](function(_0x3d3d56){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3d3d56);throw _0x3d3d56;});}return _0x7c51ee;})[_0x7dbd('0x21')](respondWithResult(_0x32ae6e,0xc9))['catch'](handleError(_0x32ae6e,null));};exports[_0x7dbd('0x1f')]=function(_0x100a3d,_0x1874f5){if(_0x100a3d[_0x7dbd('0x4b')]['id']){delete _0x100a3d[_0x7dbd('0x4b')]['id'];}return db[_0x7dbd('0x2a')][_0x7dbd('0x49')]({'where':{'id':_0x100a3d[_0x7dbd('0x44')]['id']}})[_0x7dbd('0x21')](handleEntityNotFound(_0x1874f5,null))[_0x7dbd('0x21')](saveUpdates(_0x100a3d['body'],null))['then'](respondWithResult(_0x1874f5,null))[_0x7dbd('0x43')](handleError(_0x1874f5,null));};exports[_0x7dbd('0x20')]=function(_0x5a7fa6,_0x4cbbc3){return db[_0x7dbd('0x2a')][_0x7dbd('0x49')]({'where':{'id':_0x5a7fa6[_0x7dbd('0x44')]['id']}})[_0x7dbd('0x21')](handleEntityNotFound(_0x4cbbc3,null))['then'](removeEntity(_0x4cbbc3,null))[_0x7dbd('0x43')](handleError(_0x4cbbc3,null));};