3cf6f6fa551011f0c6ee72727cf10be02c73610a
[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 _0x2b93=['ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/environment','sendStatus','status','end','json','count','offset','limit','Content-Range','apply','reject','save','update','then','Templates','UserProfileResource','destroy','error','stack','name','map','rawAttributes','fieldName','key','model','query','filters','intersection','fields','attributes','length','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','Template','includeAll','include','findAll','rows','show','params','keys','catch','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','sox','to-csv'];(function(_0x1e3409,_0x45f454){var _0xb0fff7=function(_0xcd63ee){while(--_0xcd63ee){_0x1e3409['push'](_0x1e3409['shift']());}};_0xb0fff7(++_0x45f454);}(_0x2b93,0x94));var _0x32b9=function(_0x2c27ed,_0x5c50f0){_0x2c27ed=_0x2c27ed-0x0;var _0x597bd1=_0x2b93[_0x2c27ed];return _0x597bd1;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x32b9('0x0'));var rimraf=require(_0x32b9('0x1'));var zipdir=require(_0x32b9('0x2'));var jsonpatch=require(_0x32b9('0x3'));var rp=require(_0x32b9('0x4'));var moment=require(_0x32b9('0x5'));var BPromise=require(_0x32b9('0x6'));var Mustache=require('mustache');var util=require(_0x32b9('0x7'));var path=require('path');var sox=require(_0x32b9('0x8'));var csv=require(_0x32b9('0x9'));var ejs=require(_0x32b9('0xa'));var fs=require('fs');var _=require(_0x32b9('0xb'));var squel=require('squel');var crypto=require(_0x32b9('0xc'));var jsforce=require(_0x32b9('0xd'));var deskjs=require(_0x32b9('0xe'));var toCsv=require('to-csv');var querystring=require(_0x32b9('0xf'));var Papa=require(_0x32b9('0x10'));var Redis=require(_0x32b9('0x11'));var authService=require(_0x32b9('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x32b9('0x13'));var hardwareService=require(_0x32b9('0x14'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0x32b9('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xf39f17,_0x85732e){_0x85732e=_0x85732e||0xcc;return function(_0x349c5b){if(_0x349c5b){return _0xf39f17[_0x32b9('0x16')](_0x85732e);}return _0xf39f17[_0x32b9('0x17')](_0x85732e)[_0x32b9('0x18')]();};}function respondWithResult(_0x4373fc,_0x484763){_0x484763=_0x484763||0xc8;return function(_0x58fc1f){if(_0x58fc1f){return _0x4373fc[_0x32b9('0x17')](_0x484763)[_0x32b9('0x19')](_0x58fc1f);}};}function respondWithFilteredResult(_0x2de4ad,_0x8ae8a6){return function(_0x364df8){if(_0x364df8){var _0x162d4a=_0x364df8[_0x32b9('0x1a')],_0x37a8ff=_0x8ae8a6[_0x32b9('0x1b')],_0x63394f=_0x8ae8a6[_0x32b9('0x1b')]+_0x8ae8a6[_0x32b9('0x1c')],_0x454d1e;if(_0x63394f>=_0x162d4a){_0x63394f=_0x162d4a;_0x454d1e=0xc8;}else{_0x454d1e=0xce;}_0x2de4ad[_0x32b9('0x17')](_0x454d1e);return _0x2de4ad['set'](_0x32b9('0x1d'),_0x37a8ff+'-'+_0x63394f+'/'+_0x162d4a)['json'](_0x364df8);}return null;};}function patchUpdates(_0x1c61ac){return function(_0x10ae95){try{jsonpatch[_0x32b9('0x1e')](_0x10ae95,_0x1c61ac,!![]);}catch(_0x2b237d){return BPromise[_0x32b9('0x1f')](_0x2b237d);}return _0x10ae95[_0x32b9('0x20')]();};}function saveUpdates(_0x5d0b61,_0x7b2e22){return function(_0x5978b1){if(_0x5978b1){return _0x5978b1[_0x32b9('0x21')](_0x5d0b61)[_0x32b9('0x22')](function(_0x21040e){return _0x21040e;});}return null;};}function removeEntity(_0x5c3b69,_0x319697){return function(_0x22f33b){if(_0x22f33b){return _0x22f33b['destroy']()[_0x32b9('0x22')](function(){var _0x42b53e=_0x22f33b['get']({'plain':!![]});var _0xf310a2=_0x32b9('0x23');return db[_0x32b9('0x24')][_0x32b9('0x25')]({'where':{'type':_0xf310a2,'resourceId':_0x42b53e['id']}})[_0x32b9('0x22')](function(){return _0x22f33b;});})[_0x32b9('0x22')](function(){_0x5c3b69[_0x32b9('0x17')](0xcc)[_0x32b9('0x18')]();});}};}function handleEntityNotFound(_0x42a823,_0x11cce8){return function(_0x5dad3e){if(!_0x5dad3e){_0x42a823[_0x32b9('0x16')](0x194);}return _0x5dad3e;};}function handleError(_0x5507df,_0x5098f4){_0x5098f4=_0x5098f4||0x1f4;return function(_0x22ee63){logger[_0x32b9('0x26')](_0x22ee63[_0x32b9('0x27')]);if(_0x22ee63[_0x32b9('0x28')]){delete _0x22ee63['name'];}_0x5507df[_0x32b9('0x17')](_0x5098f4)['send'](_0x22ee63);};}exports['index']=function(_0x37ce74,_0xd035d){var _0x1b1f2b={},_0x21a2c={},_0x1c0770={'count':0x0,'rows':[]};var _0x3101bd=_[_0x32b9('0x29')](db['Template'][_0x32b9('0x2a')],function(_0x24eb22){return{'name':_0x24eb22[_0x32b9('0x2b')],'type':_0x24eb22['type'][_0x32b9('0x2c')]};});_0x21a2c[_0x32b9('0x2d')]=_[_0x32b9('0x29')](_0x3101bd,_0x32b9('0x28'));_0x21a2c[_0x32b9('0x2e')]=_['keys'](_0x37ce74[_0x32b9('0x2e')]);_0x21a2c[_0x32b9('0x2f')]=_[_0x32b9('0x30')](_0x21a2c[_0x32b9('0x2d')],_0x21a2c['query']);_0x1b1f2b['attributes']=_[_0x32b9('0x30')](_0x21a2c['model'],qs[_0x32b9('0x31')](_0x37ce74['query'][_0x32b9('0x31')]));_0x1b1f2b[_0x32b9('0x32')]=_0x1b1f2b['attributes'][_0x32b9('0x33')]?_0x1b1f2b[_0x32b9('0x32')]:_0x21a2c[_0x32b9('0x2d')];if(!_0x37ce74[_0x32b9('0x2e')]['hasOwnProperty'](_0x32b9('0x34'))){_0x1b1f2b['limit']=qs[_0x32b9('0x1c')](_0x37ce74['query'][_0x32b9('0x1c')]);_0x1b1f2b[_0x32b9('0x1b')]=qs[_0x32b9('0x1b')](_0x37ce74[_0x32b9('0x2e')][_0x32b9('0x1b')]);}_0x1b1f2b[_0x32b9('0x35')]=qs[_0x32b9('0x36')](_0x37ce74[_0x32b9('0x2e')][_0x32b9('0x36')]);_0x1b1f2b[_0x32b9('0x37')]=qs['filters'](_[_0x32b9('0x38')](_0x37ce74['query'],_0x21a2c[_0x32b9('0x2f')]),_0x3101bd);if(_0x37ce74[_0x32b9('0x2e')][_0x32b9('0x39')]){_0x1b1f2b['where']=_[_0x32b9('0x3a')](_0x1b1f2b[_0x32b9('0x37')],{'$or':_[_0x32b9('0x29')](_0x3101bd,function(_0x2203bd){if(_0x2203bd[_0x32b9('0x3b')]!==_0x32b9('0x3c')){var _0x1e28e2={};_0x1e28e2[_0x2203bd[_0x32b9('0x28')]]={'$like':'%'+_0x37ce74['query'][_0x32b9('0x39')]+'%'};return _0x1e28e2;}})});}_0x1b1f2b=_[_0x32b9('0x3a')]({},_0x1b1f2b,_0x37ce74[_0x32b9('0x3d')]);var _0x4a3029={'where':_0x1b1f2b[_0x32b9('0x37')]};return db[_0x32b9('0x3e')][_0x32b9('0x1a')](_0x4a3029)['then'](function(_0x459fe5){_0x1c0770[_0x32b9('0x1a')]=_0x459fe5;if(_0x37ce74[_0x32b9('0x2e')][_0x32b9('0x3f')]){_0x1b1f2b[_0x32b9('0x40')]=[{'all':!![]}];}return db[_0x32b9('0x3e')][_0x32b9('0x41')](_0x1b1f2b);})[_0x32b9('0x22')](function(_0x529092){_0x1c0770[_0x32b9('0x42')]=_0x529092;return _0x1c0770;})[_0x32b9('0x22')](respondWithFilteredResult(_0xd035d,_0x1b1f2b))['catch'](handleError(_0xd035d,null));};exports[_0x32b9('0x43')]=function(_0x53a554,_0x1e1d56){var _0x124a78={'raw':!![],'where':{'id':_0x53a554[_0x32b9('0x44')]['id']}},_0x44cf49={};_0x44cf49[_0x32b9('0x2d')]=_[_0x32b9('0x45')](db[_0x32b9('0x3e')][_0x32b9('0x2a')]);_0x44cf49[_0x32b9('0x2e')]=_['keys'](_0x53a554['query']);_0x44cf49['filters']=_[_0x32b9('0x30')](_0x44cf49[_0x32b9('0x2d')],_0x44cf49[_0x32b9('0x2e')]);_0x124a78[_0x32b9('0x32')]=_[_0x32b9('0x30')](_0x44cf49[_0x32b9('0x2d')],qs[_0x32b9('0x31')](_0x53a554[_0x32b9('0x2e')][_0x32b9('0x31')]));_0x124a78['attributes']=_0x124a78[_0x32b9('0x32')][_0x32b9('0x33')]?_0x124a78[_0x32b9('0x32')]:_0x44cf49[_0x32b9('0x2d')];if(_0x53a554[_0x32b9('0x2e')]['includeAll']){_0x124a78['include']=[{'all':!![]}];}_0x124a78=_[_0x32b9('0x3a')]({},_0x124a78,_0x53a554['options']);return db[_0x32b9('0x3e')]['find'](_0x124a78)[_0x32b9('0x22')](handleEntityNotFound(_0x1e1d56,null))[_0x32b9('0x22')](respondWithResult(_0x1e1d56,null))[_0x32b9('0x46')](handleError(_0x1e1d56,null));};exports[_0x32b9('0x47')]=function(_0x1c6a7a,_0x5c674a){return db[_0x32b9('0x3e')][_0x32b9('0x47')](_0x1c6a7a[_0x32b9('0x48')],{})[_0x32b9('0x22')](function(_0x13456f){var _0x554782=_0x1c6a7a[_0x32b9('0x49')][_0x32b9('0x4a')]({'plain':!![]});if(!_0x554782)throw new Error(_0x32b9('0x4b'));if(_0x554782[_0x32b9('0x4c')]===_0x32b9('0x49')){var _0x1d0a8a=_0x13456f[_0x32b9('0x4a')]({'plain':!![]});var _0x33e5a4=_0x32b9('0x23');return db[_0x32b9('0x4d')]['find']({'where':{'name':_0x33e5a4,'userProfileId':_0x554782['userProfileId']},'raw':!![]})[_0x32b9('0x22')](function(_0x4dae98){if(_0x4dae98&&_0x4dae98['autoAssociation']===0x0){return db[_0x32b9('0x24')][_0x32b9('0x47')]({'name':_0x1d0a8a[_0x32b9('0x28')],'resourceId':_0x1d0a8a['id'],'type':_0x4dae98[_0x32b9('0x28')],'sectionId':_0x4dae98['id']},{})[_0x32b9('0x22')](function(){return _0x13456f;});}else{return _0x13456f;}})['catch'](function(_0xbec049){logger[_0x32b9('0x26')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0xbec049);throw _0xbec049;});}return _0x13456f;})[_0x32b9('0x22')](respondWithResult(_0x5c674a,0xc9))['catch'](handleError(_0x5c674a,null));};exports[_0x32b9('0x21')]=function(_0x503987,_0x4078fa){if(_0x503987[_0x32b9('0x48')]['id']){delete _0x503987[_0x32b9('0x48')]['id'];}return db[_0x32b9('0x3e')][_0x32b9('0x4e')]({'where':{'id':_0x503987['params']['id']}})[_0x32b9('0x22')](handleEntityNotFound(_0x4078fa,null))[_0x32b9('0x22')](saveUpdates(_0x503987[_0x32b9('0x48')],null))['then'](respondWithResult(_0x4078fa,null))[_0x32b9('0x46')](handleError(_0x4078fa,null));};exports[_0x32b9('0x25')]=function(_0x299d89,_0xae8e70){return db[_0x32b9('0x3e')][_0x32b9('0x4e')]({'where':{'id':_0x299d89['params']['id']}})[_0x32b9('0x22')](handleEntityNotFound(_0xae8e70,null))[_0x32b9('0x22')](removeEntity(_0xae8e70,null))[_0x32b9('0x46')](handleError(_0xae8e70,null));};