Built motion from commit 3c2ce842.|2.6.31
[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 _0xb446=['rows','catch','params','rawAttributes','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','find','eml-format','rimraf','zip-dir','moment','mustache','util','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','then','get','Templates','UserProfileResource','end','sendStatus','error','name','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','Template','includeAll','include','findAll'];(function(_0x45377c,_0x5034d7){var _0x138f76=function(_0x1f13f8){while(--_0x1f13f8){_0x45377c['push'](_0x45377c['shift']());}};_0x138f76(++_0x5034d7);}(_0xb446,0x1a2));var _0x6b44=function(_0x34acff,_0x2637b3){_0x34acff=_0x34acff-0x0;var _0x3eacb6=_0xb446[_0x34acff];return _0x3eacb6;};'use strict';var emlformat=require(_0x6b44('0x0'));var rimraf=require(_0x6b44('0x1'));var zipdir=require(_0x6b44('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x6b44('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x6b44('0x4'));var util=require(_0x6b44('0x5'));var path=require('path');var sox=require(_0x6b44('0x6'));var csv=require(_0x6b44('0x7'));var ejs=require(_0x6b44('0x8'));var fs=require('fs');var fs_extra=require(_0x6b44('0x9'));var _=require(_0x6b44('0xa'));var squel=require('squel');var crypto=require(_0x6b44('0xb'));var jsforce=require(_0x6b44('0xc'));var deskjs=require(_0x6b44('0xd'));var toCsv=require(_0x6b44('0x7'));var querystring=require(_0x6b44('0xe'));var Papa=require('papaparse');var Redis=require(_0x6b44('0xf'));var authService=require(_0x6b44('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x6b44('0x11'));var hardwareService=require(_0x6b44('0x12'));var logger=require('../../config/logger')(_0x6b44('0x13'));var utils=require('../../config/utils');var config=require(_0x6b44('0x14'));var licenseUtil=require(_0x6b44('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1d6fa7,_0x3fa362){_0x3fa362=_0x3fa362||0xcc;return function(_0x547020){if(_0x547020){return _0x1d6fa7['sendStatus'](_0x3fa362);}return _0x1d6fa7[_0x6b44('0x16')](_0x3fa362)['end']();};}function respondWithResult(_0x5a43c0,_0x4f420e){_0x4f420e=_0x4f420e||0xc8;return function(_0x3ec48d){if(_0x3ec48d){return _0x5a43c0[_0x6b44('0x16')](_0x4f420e)[_0x6b44('0x17')](_0x3ec48d);}};}function respondWithFilteredResult(_0x16504e,_0x265b66){return function(_0x37c63d){if(_0x37c63d){var _0x5d49d4=typeof _0x265b66[_0x6b44('0x18')]===_0x6b44('0x19')&&typeof _0x265b66[_0x6b44('0x1a')]==='undefined';var _0x3f01fa=_0x37c63d[_0x6b44('0x1b')];var _0x12902a=_0x5d49d4?0x0:_0x265b66[_0x6b44('0x18')];var _0x1cbb23=_0x5d49d4?_0x37c63d[_0x6b44('0x1b')]:_0x265b66[_0x6b44('0x18')]+_0x265b66[_0x6b44('0x1a')];var _0x532ec5;if(_0x1cbb23>=_0x3f01fa){_0x1cbb23=_0x3f01fa;_0x532ec5=0xc8;}else{_0x532ec5=0xce;}_0x16504e['status'](_0x532ec5);return _0x16504e[_0x6b44('0x1c')](_0x6b44('0x1d'),_0x12902a+'-'+_0x1cbb23+'/'+_0x3f01fa)[_0x6b44('0x17')](_0x37c63d);}return null;};}function patchUpdates(_0x500c0a){return function(_0x35e800){try{jsonpatch[_0x6b44('0x1e')](_0x35e800,_0x500c0a,!![]);}catch(_0x289da4){return BPromise[_0x6b44('0x1f')](_0x289da4);}return _0x35e800[_0x6b44('0x20')]();};}function saveUpdates(_0x2abbd5,_0x10ab30){return function(_0x17808d){if(_0x17808d){return _0x17808d[_0x6b44('0x21')](_0x2abbd5)['then'](function(_0x2299f4){return _0x2299f4;});}return null;};}function removeEntity(_0x1a24b3,_0x76407e){return function(_0x5619dc){if(_0x5619dc){return _0x5619dc[_0x6b44('0x22')]()[_0x6b44('0x23')](function(){var _0x302910=_0x5619dc[_0x6b44('0x24')]({'plain':!![]});var _0x31d376=_0x6b44('0x25');return db[_0x6b44('0x26')][_0x6b44('0x22')]({'where':{'type':_0x31d376,'resourceId':_0x302910['id']}})[_0x6b44('0x23')](function(){return _0x5619dc;});})['then'](function(){_0x1a24b3[_0x6b44('0x16')](0xcc)[_0x6b44('0x27')]();});}};}function handleEntityNotFound(_0x3f2f0e,_0x186f88){return function(_0x2f95d4){if(!_0x2f95d4){_0x3f2f0e[_0x6b44('0x28')](0x194);}return _0x2f95d4;};}function handleError(_0x47c5dd,_0x43bac9){_0x43bac9=_0x43bac9||0x1f4;return function(_0x29547e){logger[_0x6b44('0x29')](_0x29547e['stack']);if(_0x29547e[_0x6b44('0x2a')]){delete _0x29547e[_0x6b44('0x2a')];}_0x47c5dd[_0x6b44('0x16')](_0x43bac9)['send'](_0x29547e);};}exports['index']=function(_0x165d98,_0x18b456){var _0x1651ef={},_0x152984={},_0x1db3c2={'count':0x0,'rows':[]};var _0x4162bb=_['map'](db['Template']['rawAttributes'],function(_0x5898c7){return{'name':_0x5898c7[_0x6b44('0x2b')],'type':_0x5898c7[_0x6b44('0x2c')][_0x6b44('0x2d')]};});_0x152984[_0x6b44('0x2e')]=_['map'](_0x4162bb,_0x6b44('0x2a'));_0x152984[_0x6b44('0x2f')]=_[_0x6b44('0x30')](_0x165d98[_0x6b44('0x2f')]);_0x152984[_0x6b44('0x31')]=_[_0x6b44('0x32')](_0x152984['model'],_0x152984[_0x6b44('0x2f')]);_0x1651ef['attributes']=_[_0x6b44('0x32')](_0x152984['model'],qs[_0x6b44('0x33')](_0x165d98[_0x6b44('0x2f')][_0x6b44('0x33')]));_0x1651ef[_0x6b44('0x34')]=_0x1651ef[_0x6b44('0x34')][_0x6b44('0x35')]?_0x1651ef['attributes']:_0x152984[_0x6b44('0x2e')];if(!_0x165d98[_0x6b44('0x2f')][_0x6b44('0x36')](_0x6b44('0x37'))){_0x1651ef[_0x6b44('0x1a')]=qs[_0x6b44('0x1a')](_0x165d98[_0x6b44('0x2f')][_0x6b44('0x1a')]);_0x1651ef[_0x6b44('0x18')]=qs[_0x6b44('0x18')](_0x165d98['query'][_0x6b44('0x18')]);}_0x1651ef[_0x6b44('0x38')]=qs[_0x6b44('0x39')](_0x165d98[_0x6b44('0x2f')][_0x6b44('0x39')]);_0x1651ef['where']=qs[_0x6b44('0x31')](_[_0x6b44('0x3a')](_0x165d98['query'],_0x152984[_0x6b44('0x31')]),_0x4162bb);if(_0x165d98['query'][_0x6b44('0x3b')]){_0x1651ef[_0x6b44('0x3c')]=_[_0x6b44('0x3d')](_0x1651ef['where'],{'$or':_['map'](_0x4162bb,function(_0x2ab8a3){if(_0x2ab8a3[_0x6b44('0x2c')]!==_0x6b44('0x3e')){var _0xc3b308={};_0xc3b308[_0x2ab8a3['name']]={'$like':'%'+_0x165d98[_0x6b44('0x2f')][_0x6b44('0x3b')]+'%'};return _0xc3b308;}})});}_0x1651ef=_[_0x6b44('0x3d')]({},_0x1651ef,_0x165d98[_0x6b44('0x3f')]);var _0x5268d5={'where':_0x1651ef[_0x6b44('0x3c')]};return db[_0x6b44('0x40')][_0x6b44('0x1b')](_0x5268d5)[_0x6b44('0x23')](function(_0x4534b1){_0x1db3c2[_0x6b44('0x1b')]=_0x4534b1;if(_0x165d98[_0x6b44('0x2f')][_0x6b44('0x41')]){_0x1651ef[_0x6b44('0x42')]=[{'all':!![]}];}return db[_0x6b44('0x40')][_0x6b44('0x43')](_0x1651ef);})[_0x6b44('0x23')](function(_0x477826){_0x1db3c2[_0x6b44('0x44')]=_0x477826;return _0x1db3c2;})['then'](respondWithFilteredResult(_0x18b456,_0x1651ef))[_0x6b44('0x45')](handleError(_0x18b456,null));};exports['show']=function(_0x54ecbf,_0x521352){var _0xc70826={'raw':!![],'where':{'id':_0x54ecbf[_0x6b44('0x46')]['id']}},_0x2150d8={};_0x2150d8[_0x6b44('0x2e')]=_[_0x6b44('0x30')](db[_0x6b44('0x40')][_0x6b44('0x47')]);_0x2150d8[_0x6b44('0x2f')]=_['keys'](_0x54ecbf[_0x6b44('0x2f')]);_0x2150d8[_0x6b44('0x31')]=_[_0x6b44('0x32')](_0x2150d8[_0x6b44('0x2e')],_0x2150d8[_0x6b44('0x2f')]);_0xc70826[_0x6b44('0x34')]=_[_0x6b44('0x32')](_0x2150d8[_0x6b44('0x2e')],qs[_0x6b44('0x33')](_0x54ecbf[_0x6b44('0x2f')]['fields']));_0xc70826[_0x6b44('0x34')]=_0xc70826[_0x6b44('0x34')]['length']?_0xc70826['attributes']:_0x2150d8[_0x6b44('0x2e')];if(_0x54ecbf[_0x6b44('0x2f')][_0x6b44('0x41')]){_0xc70826[_0x6b44('0x42')]=[{'all':!![]}];}_0xc70826=_[_0x6b44('0x3d')]({},_0xc70826,_0x54ecbf[_0x6b44('0x3f')]);return db[_0x6b44('0x40')]['find'](_0xc70826)['then'](handleEntityNotFound(_0x521352,null))[_0x6b44('0x23')](respondWithResult(_0x521352,null))[_0x6b44('0x45')](handleError(_0x521352,null));};exports[_0x6b44('0x48')]=function(_0x488c03,_0x48ac4f){return db[_0x6b44('0x40')][_0x6b44('0x48')](_0x488c03['body'],{})[_0x6b44('0x23')](function(_0x2a5fc6){var _0x659959=_0x488c03[_0x6b44('0x49')][_0x6b44('0x24')]({'plain':!![]});if(!_0x659959)throw new Error(_0x6b44('0x4a'));if(_0x659959[_0x6b44('0x4b')]===_0x6b44('0x49')){var _0x39a986=_0x2a5fc6['get']({'plain':!![]});var _0x4717cc='Templates';return db['UserProfileSection']['find']({'where':{'name':_0x4717cc,'userProfileId':_0x659959[_0x6b44('0x4c')]},'raw':!![]})[_0x6b44('0x23')](function(_0x5b3758){if(_0x5b3758&&_0x5b3758[_0x6b44('0x4d')]===0x0){return db[_0x6b44('0x26')][_0x6b44('0x48')]({'name':_0x39a986['name'],'resourceId':_0x39a986['id'],'type':_0x5b3758['name'],'sectionId':_0x5b3758['id']},{})['then'](function(){return _0x2a5fc6;});}else{return _0x2a5fc6;}})['catch'](function(_0x437939){logger[_0x6b44('0x29')](_0x6b44('0x4e'),_0x437939);throw _0x437939;});}return _0x2a5fc6;})[_0x6b44('0x23')](respondWithResult(_0x48ac4f,0xc9))[_0x6b44('0x45')](handleError(_0x48ac4f,null));};exports[_0x6b44('0x21')]=function(_0x15e848,_0x14687a){if(_0x15e848[_0x6b44('0x4f')]['id']){delete _0x15e848['body']['id'];}return db['Template']['find']({'where':{'id':_0x15e848[_0x6b44('0x46')]['id']}})['then'](handleEntityNotFound(_0x14687a,null))[_0x6b44('0x23')](saveUpdates(_0x15e848['body'],null))[_0x6b44('0x23')](respondWithResult(_0x14687a,null))[_0x6b44('0x45')](handleError(_0x14687a,null));};exports['destroy']=function(_0x1cf7dc,_0x54be28){return db[_0x6b44('0x40')][_0x6b44('0x50')]({'where':{'id':_0x1cf7dc[_0x6b44('0x46')]['id']}})[_0x6b44('0x23')](handleEntityNotFound(_0x54be28,null))[_0x6b44('0x23')](removeEntity(_0x54be28,null))[_0x6b44('0x45')](handleError(_0x54be28,null));};