2bd3ec9bcec3e7271d9305cf71d84d6bb8f6a4f3
[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 _0x9019=['error','stack','name','send','index','map','Template','rawAttributes','fieldName','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge','type','options','includeAll','findAll','catch','include','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','to-csv','ejs','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../mysqldb','sendStatus','end','status','json','count','offset','set','Content-Range','apply','update','then','destroy','get','Templates','UserProfileResource'];(function(_0x2255cc,_0x92c897){var _0x13d99a=function(_0x39885f){while(--_0x39885f){_0x2255cc['push'](_0x2255cc['shift']());}};_0x13d99a(++_0x92c897);}(_0x9019,0x16e));var _0x9901=function(_0x2ab365,_0xa3812e){_0x2ab365=_0x2ab365-0x0;var _0x49fef3=_0x9019[_0x2ab365];return _0x49fef3;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x9901('0x0'));var rimraf=require(_0x9901('0x1'));var zipdir=require(_0x9901('0x2'));var jsonpatch=require(_0x9901('0x3'));var rp=require(_0x9901('0x4'));var moment=require('moment');var BPromise=require(_0x9901('0x5'));var Mustache=require(_0x9901('0x6'));var util=require(_0x9901('0x7'));var path=require('path');var sox=require(_0x9901('0x8'));var csv=require(_0x9901('0x9'));var ejs=require(_0x9901('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0x9901('0xb'));var crypto=require(_0x9901('0xc'));var jsforce=require(_0x9901('0xd'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x9901('0xe'));var Papa=require(_0x9901('0xf'));var Redis=require(_0x9901('0x10'));var authService=require(_0x9901('0x11'));var qs=require(_0x9901('0x12'));var as=require(_0x9901('0x13'));var hardwareService=require(_0x9901('0x14'));var logger=require(_0x9901('0x15'))('api');var utils=require('../../config/utils');var config=require(_0x9901('0x16'));var db=require(_0x9901('0x17'))['db'];function respondWithStatusCode(_0x1a13cd,_0x2a44aa){_0x2a44aa=_0x2a44aa||0xcc;return function(_0x5e9cad){if(_0x5e9cad){return _0x1a13cd[_0x9901('0x18')](_0x2a44aa);}return _0x1a13cd['status'](_0x2a44aa)[_0x9901('0x19')]();};}function respondWithResult(_0x445d3d,_0x2ee927){_0x2ee927=_0x2ee927||0xc8;return function(_0x543020){if(_0x543020){return _0x445d3d[_0x9901('0x1a')](_0x2ee927)[_0x9901('0x1b')](_0x543020);}};}function respondWithFilteredResult(_0x38f84,_0x1ced01){return function(_0x31cca7){if(_0x31cca7){var _0xaeb3c7=_0x31cca7[_0x9901('0x1c')],_0x53c51d=_0x1ced01[_0x9901('0x1d')],_0x155e2b=_0x1ced01['offset']+_0x1ced01['limit'],_0x123ab9;if(_0x155e2b>=_0xaeb3c7){_0x155e2b=_0xaeb3c7;_0x123ab9=0xc8;}else{_0x123ab9=0xce;}_0x38f84[_0x9901('0x1a')](_0x123ab9);return _0x38f84[_0x9901('0x1e')](_0x9901('0x1f'),_0x53c51d+'-'+_0x155e2b+'/'+_0xaeb3c7)[_0x9901('0x1b')](_0x31cca7);}return null;};}function patchUpdates(_0x444b01){return function(_0x2093a2){try{jsonpatch[_0x9901('0x20')](_0x2093a2,_0x444b01,!![]);}catch(_0x46e485){return BPromise['reject'](_0x46e485);}return _0x2093a2['save']();};}function saveUpdates(_0x2b9ce1,_0x2b7a9f){return function(_0x282947){if(_0x282947){return _0x282947[_0x9901('0x21')](_0x2b9ce1)[_0x9901('0x22')](function(_0x68aea6){return _0x68aea6;});}return null;};}function removeEntity(_0x5135e1,_0x5a7919){return function(_0x279852){if(_0x279852){return _0x279852[_0x9901('0x23')]()[_0x9901('0x22')](function(){var _0x38f0bb=_0x279852[_0x9901('0x24')]({'plain':!![]});var _0x14b295=_0x9901('0x25');return db[_0x9901('0x26')]['destroy']({'where':{'type':_0x14b295,'resourceId':_0x38f0bb['id']}})[_0x9901('0x22')](function(){return _0x279852;});})[_0x9901('0x22')](function(){_0x5135e1[_0x9901('0x1a')](0xcc)[_0x9901('0x19')]();});}};}function handleEntityNotFound(_0x4e5650,_0x4699fc){return function(_0x126c97){if(!_0x126c97){_0x4e5650[_0x9901('0x18')](0x194);}return _0x126c97;};}function handleError(_0x12c2d1,_0x1880b9){_0x1880b9=_0x1880b9||0x1f4;return function(_0x5838e2){logger[_0x9901('0x27')](_0x5838e2[_0x9901('0x28')]);if(_0x5838e2['name']){delete _0x5838e2[_0x9901('0x29')];}_0x12c2d1[_0x9901('0x1a')](_0x1880b9)[_0x9901('0x2a')](_0x5838e2);};}exports[_0x9901('0x2b')]=function(_0x2d7ef0,_0x5b3d94){var _0x24d1c0={},_0x4959da={},_0x5cfe5e={'count':0x0,'rows':[]};var _0x47b1a2=_[_0x9901('0x2c')](db[_0x9901('0x2d')][_0x9901('0x2e')],function(_0x47d883){return{'name':_0x47d883[_0x9901('0x2f')],'type':_0x47d883['type'][_0x9901('0x30')]};});_0x4959da[_0x9901('0x31')]=_[_0x9901('0x2c')](_0x47b1a2,'name');_0x4959da[_0x9901('0x32')]=_[_0x9901('0x33')](_0x2d7ef0[_0x9901('0x32')]);_0x4959da[_0x9901('0x34')]=_['intersection'](_0x4959da[_0x9901('0x31')],_0x4959da[_0x9901('0x32')]);_0x24d1c0[_0x9901('0x35')]=_[_0x9901('0x36')](_0x4959da[_0x9901('0x31')],qs[_0x9901('0x37')](_0x2d7ef0[_0x9901('0x32')]['fields']));_0x24d1c0['attributes']=_0x24d1c0[_0x9901('0x35')][_0x9901('0x38')]?_0x24d1c0[_0x9901('0x35')]:_0x4959da['model'];if(!_0x2d7ef0[_0x9901('0x32')][_0x9901('0x39')](_0x9901('0x3a'))){_0x24d1c0[_0x9901('0x3b')]=qs['limit'](_0x2d7ef0[_0x9901('0x32')][_0x9901('0x3b')]);_0x24d1c0['offset']=qs[_0x9901('0x1d')](_0x2d7ef0[_0x9901('0x32')][_0x9901('0x1d')]);}_0x24d1c0[_0x9901('0x3c')]=qs[_0x9901('0x3d')](_0x2d7ef0[_0x9901('0x32')][_0x9901('0x3d')]);_0x24d1c0[_0x9901('0x3e')]=qs[_0x9901('0x34')](_[_0x9901('0x3f')](_0x2d7ef0[_0x9901('0x32')],_0x4959da[_0x9901('0x34')]));if(_0x2d7ef0[_0x9901('0x32')][_0x9901('0x40')]){_0x24d1c0[_0x9901('0x3e')]=_[_0x9901('0x41')](_0x24d1c0[_0x9901('0x3e')],{'$or':_[_0x9901('0x2c')](_0x47b1a2,function(_0x2aea62){if(_0x2aea62[_0x9901('0x42')]!=='VIRTUAL'){var _0x349ecc={};_0x349ecc[_0x2aea62[_0x9901('0x29')]]={'$like':'%'+_0x2d7ef0['query']['filter']+'%'};return _0x349ecc;}})});}_0x24d1c0=_[_0x9901('0x41')]({},_0x24d1c0,_0x2d7ef0[_0x9901('0x43')]);var _0x33cd2b={'where':_0x24d1c0[_0x9901('0x3e')]};return db[_0x9901('0x2d')][_0x9901('0x1c')](_0x33cd2b)[_0x9901('0x22')](function(_0x561638){_0x5cfe5e[_0x9901('0x1c')]=_0x561638;if(_0x2d7ef0['query'][_0x9901('0x44')]){_0x24d1c0['include']=[{'all':!![]}];}return db[_0x9901('0x2d')][_0x9901('0x45')](_0x24d1c0);})['then'](function(_0x2a799d){_0x5cfe5e['rows']=_0x2a799d;return _0x5cfe5e;})[_0x9901('0x22')](respondWithFilteredResult(_0x5b3d94,_0x24d1c0))[_0x9901('0x46')](handleError(_0x5b3d94,null));};exports['show']=function(_0x1a1f73,_0x44bd39){var _0x1606e4={'raw':!![],'where':{'id':_0x1a1f73['params']['id']}},_0x49a1e4={};_0x49a1e4[_0x9901('0x31')]=_['keys'](db[_0x9901('0x2d')][_0x9901('0x2e')]);_0x49a1e4[_0x9901('0x32')]=_[_0x9901('0x33')](_0x1a1f73['query']);_0x49a1e4['filters']=_[_0x9901('0x36')](_0x49a1e4[_0x9901('0x31')],_0x49a1e4['query']);_0x1606e4[_0x9901('0x35')]=_[_0x9901('0x36')](_0x49a1e4[_0x9901('0x31')],qs[_0x9901('0x37')](_0x1a1f73[_0x9901('0x32')][_0x9901('0x37')]));_0x1606e4['attributes']=_0x1606e4['attributes'][_0x9901('0x38')]?_0x1606e4['attributes']:_0x49a1e4[_0x9901('0x31')];if(_0x1a1f73[_0x9901('0x32')][_0x9901('0x44')]){_0x1606e4[_0x9901('0x47')]=[{'all':!![]}];}_0x1606e4=_[_0x9901('0x41')]({},_0x1606e4,_0x1a1f73[_0x9901('0x43')]);return db[_0x9901('0x2d')][_0x9901('0x48')](_0x1606e4)['then'](handleEntityNotFound(_0x44bd39,null))['then'](respondWithResult(_0x44bd39,null))[_0x9901('0x46')](handleError(_0x44bd39,null));};exports['create']=function(_0x12e6ed,_0x3b61e0){return db[_0x9901('0x2d')][_0x9901('0x49')](_0x12e6ed[_0x9901('0x4a')],{})['then'](function(_0x54ad50){var _0x107c32=_0x12e6ed['user'][_0x9901('0x24')]({'plain':!![]});if(!_0x107c32)throw new Error(_0x9901('0x4b'));if(_0x107c32['role']===_0x9901('0x4c')){var _0x4309ac=_0x54ad50[_0x9901('0x24')]({'plain':!![]});var _0x1036ad='Templates';return db[_0x9901('0x4d')][_0x9901('0x48')]({'where':{'name':_0x1036ad,'userProfileId':_0x107c32[_0x9901('0x4e')]},'raw':!![]})[_0x9901('0x22')](function(_0x326dc1){if(_0x326dc1&&_0x326dc1['autoAssociation']===0x0){return db[_0x9901('0x26')][_0x9901('0x49')]({'name':_0x4309ac[_0x9901('0x29')],'resourceId':_0x4309ac['id'],'type':_0x326dc1[_0x9901('0x29')],'sectionId':_0x326dc1['id']},{})['then'](function(){return _0x54ad50;});}else{return _0x54ad50;}})[_0x9901('0x46')](function(_0x1eac58){logger[_0x9901('0x27')](_0x9901('0x4f'),_0x1eac58);throw _0x1eac58;});}return _0x54ad50;})[_0x9901('0x22')](respondWithResult(_0x3b61e0,0xc9))[_0x9901('0x46')](handleError(_0x3b61e0,null));};exports['update']=function(_0x4dfd28,_0x4c934a){if(_0x4dfd28[_0x9901('0x4a')]['id']){delete _0x4dfd28['body']['id'];}return db[_0x9901('0x2d')]['find']({'where':{'id':_0x4dfd28[_0x9901('0x50')]['id']}})['then'](handleEntityNotFound(_0x4c934a,null))[_0x9901('0x22')](saveUpdates(_0x4dfd28['body'],null))[_0x9901('0x22')](respondWithResult(_0x4c934a,null))[_0x9901('0x46')](handleError(_0x4c934a,null));};exports[_0x9901('0x23')]=function(_0x16aacc,_0x23822e){return db[_0x9901('0x2d')][_0x9901('0x48')]({'where':{'id':_0x16aacc[_0x9901('0x50')]['id']}})['then'](handleEntityNotFound(_0x23822e,null))[_0x9901('0x22')](removeEntity(_0x23822e,null))[_0x9901('0x46')](handleError(_0x23822e,null));};