8b2a0a45e79b2bedf1ec414c929d63e27464e0c3
[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 _0x4bc2=['../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','end','json','count','offset','status','set','Content-Range','apply','save','update','destroy','then','get','Templates','UserProfileResource','error','name','send','index','map','Template','rawAttributes','fieldName','model','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','limit','order','sort','pick','filter','where','type','VIRTUAL','merge','include','findAll','rows','catch','params','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','to-csv','ejs','lodash','squel','crypto','jsforce','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware'];(function(_0x4fc80b,_0xfe1b3d){var _0x119dba=function(_0x16ed12){while(--_0x16ed12){_0x4fc80b['push'](_0x4fc80b['shift']());}};_0x119dba(++_0xfe1b3d);}(_0x4bc2,0xd6));var _0x24bc=function(_0x308867,_0x3f5771){_0x308867=_0x308867-0x0;var _0x4b89fb=_0x4bc2[_0x308867];return _0x4b89fb;};'use strict';var pdf=require(_0x24bc('0x0'));var emlformat=require(_0x24bc('0x1'));var rimraf=require(_0x24bc('0x2'));var zipdir=require(_0x24bc('0x3'));var jsonpatch=require(_0x24bc('0x4'));var rp=require(_0x24bc('0x5'));var moment=require(_0x24bc('0x6'));var BPromise=require('bluebird');var Mustache=require(_0x24bc('0x7'));var util=require(_0x24bc('0x8'));var path=require(_0x24bc('0x9'));var sox=require('sox');var csv=require(_0x24bc('0xa'));var ejs=require(_0x24bc('0xb'));var fs=require('fs');var _=require(_0x24bc('0xc'));var squel=require(_0x24bc('0xd'));var crypto=require(_0x24bc('0xe'));var jsforce=require(_0x24bc('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x24bc('0xa'));var querystring=require('querystring');var Papa=require(_0x24bc('0x10'));var Redis=require(_0x24bc('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x24bc('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x24bc('0x13'));var logger=require(_0x24bc('0x14'))(_0x24bc('0x15'));var utils=require(_0x24bc('0x16'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x24bc('0x17'))['db'];function respondWithStatusCode(_0xc892fb,_0x467b1d){_0x467b1d=_0x467b1d||0xcc;return function(_0x51b11d){if(_0x51b11d){return _0xc892fb[_0x24bc('0x18')](_0x467b1d);}return _0xc892fb['status'](_0x467b1d)[_0x24bc('0x19')]();};}function respondWithResult(_0x271a40,_0x5a144e){_0x5a144e=_0x5a144e||0xc8;return function(_0x876408){if(_0x876408){return _0x271a40['status'](_0x5a144e)[_0x24bc('0x1a')](_0x876408);}};}function respondWithFilteredResult(_0x39f594,_0x554b57){return function(_0x10a9b6){if(_0x10a9b6){var _0x527c7c=_0x10a9b6[_0x24bc('0x1b')],_0x487b32=_0x554b57[_0x24bc('0x1c')],_0x2fdf77=_0x554b57[_0x24bc('0x1c')]+_0x554b57['limit'],_0x71750f;if(_0x2fdf77>=_0x527c7c){_0x2fdf77=_0x527c7c;_0x71750f=0xc8;}else{_0x71750f=0xce;}_0x39f594[_0x24bc('0x1d')](_0x71750f);return _0x39f594[_0x24bc('0x1e')](_0x24bc('0x1f'),_0x487b32+'-'+_0x2fdf77+'/'+_0x527c7c)['json'](_0x10a9b6);}return null;};}function patchUpdates(_0xe6d12b){return function(_0x1b04ef){try{jsonpatch[_0x24bc('0x20')](_0x1b04ef,_0xe6d12b,!![]);}catch(_0x4eb3be){return BPromise['reject'](_0x4eb3be);}return _0x1b04ef[_0x24bc('0x21')]();};}function saveUpdates(_0xeec5bf,_0xeba1ff){return function(_0x442c33){if(_0x442c33){return _0x442c33[_0x24bc('0x22')](_0xeec5bf)['then'](function(_0x5502e3){return _0x5502e3;});}return null;};}function removeEntity(_0x586bc0,_0xd5b860){return function(_0x28bf6c){if(_0x28bf6c){return _0x28bf6c[_0x24bc('0x23')]()[_0x24bc('0x24')](function(){var _0xa3bd02=_0x28bf6c[_0x24bc('0x25')]({'plain':!![]});var _0x35371b=_0x24bc('0x26');return db[_0x24bc('0x27')][_0x24bc('0x23')]({'where':{'type':_0x35371b,'resourceId':_0xa3bd02['id']}})[_0x24bc('0x24')](function(){return _0x28bf6c;});})[_0x24bc('0x24')](function(){_0x586bc0['status'](0xcc)[_0x24bc('0x19')]();});}};}function handleEntityNotFound(_0x152129,_0x70d696){return function(_0x259340){if(!_0x259340){_0x152129[_0x24bc('0x18')](0x194);}return _0x259340;};}function handleError(_0x123e2a,_0x3e1068){_0x3e1068=_0x3e1068||0x1f4;return function(_0x539bb8){logger[_0x24bc('0x28')](_0x539bb8['stack']);if(_0x539bb8[_0x24bc('0x29')]){delete _0x539bb8[_0x24bc('0x29')];}_0x123e2a['status'](_0x3e1068)[_0x24bc('0x2a')](_0x539bb8);};}exports[_0x24bc('0x2b')]=function(_0x26c973,_0x472e9d){var _0x30c268={},_0x55a2af={},_0x57ac12={'count':0x0,'rows':[]};var _0x419abb=_[_0x24bc('0x2c')](db[_0x24bc('0x2d')][_0x24bc('0x2e')],function(_0x57fd03){return{'name':_0x57fd03[_0x24bc('0x2f')],'type':_0x57fd03['type']['key']};});_0x55a2af[_0x24bc('0x30')]=_[_0x24bc('0x2c')](_0x419abb,_0x24bc('0x29'));_0x55a2af['query']=_[_0x24bc('0x31')](_0x26c973[_0x24bc('0x32')]);_0x55a2af[_0x24bc('0x33')]=_[_0x24bc('0x34')](_0x55a2af[_0x24bc('0x30')],_0x55a2af[_0x24bc('0x32')]);_0x30c268['attributes']=_[_0x24bc('0x34')](_0x55a2af[_0x24bc('0x30')],qs[_0x24bc('0x35')](_0x26c973[_0x24bc('0x32')]['fields']));_0x30c268[_0x24bc('0x36')]=_0x30c268['attributes'][_0x24bc('0x37')]?_0x30c268[_0x24bc('0x36')]:_0x55a2af[_0x24bc('0x30')];if(!_0x26c973['query'][_0x24bc('0x38')]('nolimit')){_0x30c268[_0x24bc('0x39')]=qs['limit'](_0x26c973['query']['limit']);_0x30c268[_0x24bc('0x1c')]=qs[_0x24bc('0x1c')](_0x26c973[_0x24bc('0x32')][_0x24bc('0x1c')]);}_0x30c268[_0x24bc('0x3a')]=qs[_0x24bc('0x3b')](_0x26c973[_0x24bc('0x32')][_0x24bc('0x3b')]);_0x30c268['where']=qs['filters'](_[_0x24bc('0x3c')](_0x26c973[_0x24bc('0x32')],_0x55a2af[_0x24bc('0x33')]),_0x419abb);if(_0x26c973[_0x24bc('0x32')][_0x24bc('0x3d')]){_0x30c268[_0x24bc('0x3e')]=_['merge'](_0x30c268['where'],{'$or':_[_0x24bc('0x2c')](_0x419abb,function(_0x437488){if(_0x437488[_0x24bc('0x3f')]!==_0x24bc('0x40')){var _0x1b80dd={};_0x1b80dd[_0x437488[_0x24bc('0x29')]]={'$like':'%'+_0x26c973[_0x24bc('0x32')]['filter']+'%'};return _0x1b80dd;}})});}_0x30c268=_[_0x24bc('0x41')]({},_0x30c268,_0x26c973['options']);var _0x39e79a={'where':_0x30c268[_0x24bc('0x3e')]};return db[_0x24bc('0x2d')]['count'](_0x39e79a)[_0x24bc('0x24')](function(_0x276312){_0x57ac12['count']=_0x276312;if(_0x26c973[_0x24bc('0x32')]['includeAll']){_0x30c268[_0x24bc('0x42')]=[{'all':!![]}];}return db[_0x24bc('0x2d')][_0x24bc('0x43')](_0x30c268);})[_0x24bc('0x24')](function(_0x1bc0f1){_0x57ac12[_0x24bc('0x44')]=_0x1bc0f1;return _0x57ac12;})[_0x24bc('0x24')](respondWithFilteredResult(_0x472e9d,_0x30c268))[_0x24bc('0x45')](handleError(_0x472e9d,null));};exports['show']=function(_0x15ae7b,_0x5c2add){var _0x222d9d={'raw':!![],'where':{'id':_0x15ae7b[_0x24bc('0x46')]['id']}},_0x61a7aa={};_0x61a7aa[_0x24bc('0x30')]=_[_0x24bc('0x31')](db[_0x24bc('0x2d')][_0x24bc('0x2e')]);_0x61a7aa['query']=_[_0x24bc('0x31')](_0x15ae7b['query']);_0x61a7aa[_0x24bc('0x33')]=_[_0x24bc('0x34')](_0x61a7aa[_0x24bc('0x30')],_0x61a7aa['query']);_0x222d9d[_0x24bc('0x36')]=_[_0x24bc('0x34')](_0x61a7aa[_0x24bc('0x30')],qs[_0x24bc('0x35')](_0x15ae7b[_0x24bc('0x32')][_0x24bc('0x35')]));_0x222d9d[_0x24bc('0x36')]=_0x222d9d['attributes'][_0x24bc('0x37')]?_0x222d9d[_0x24bc('0x36')]:_0x61a7aa['model'];if(_0x15ae7b[_0x24bc('0x32')]['includeAll']){_0x222d9d[_0x24bc('0x42')]=[{'all':!![]}];}_0x222d9d=_['merge']({},_0x222d9d,_0x15ae7b['options']);return db[_0x24bc('0x2d')][_0x24bc('0x47')](_0x222d9d)[_0x24bc('0x24')](handleEntityNotFound(_0x5c2add,null))[_0x24bc('0x24')](respondWithResult(_0x5c2add,null))['catch'](handleError(_0x5c2add,null));};exports['create']=function(_0x34c274,_0x371cc9){return db[_0x24bc('0x2d')][_0x24bc('0x48')](_0x34c274[_0x24bc('0x49')],{})[_0x24bc('0x24')](function(_0x22509c){var _0x32d3e3=_0x34c274[_0x24bc('0x4a')][_0x24bc('0x25')]({'plain':!![]});if(!_0x32d3e3)throw new Error(_0x24bc('0x4b'));if(_0x32d3e3[_0x24bc('0x4c')]===_0x24bc('0x4a')){var _0x38f269=_0x22509c['get']({'plain':!![]});var _0x560422='Templates';return db['UserProfileSection'][_0x24bc('0x47')]({'where':{'name':_0x560422,'userProfileId':_0x32d3e3[_0x24bc('0x4d')]},'raw':!![]})[_0x24bc('0x24')](function(_0x2f92e4){if(_0x2f92e4&&_0x2f92e4['autoAssociation']===0x0){return db[_0x24bc('0x27')]['create']({'name':_0x38f269[_0x24bc('0x29')],'resourceId':_0x38f269['id'],'type':_0x2f92e4[_0x24bc('0x29')],'sectionId':_0x2f92e4['id']},{})[_0x24bc('0x24')](function(){return _0x22509c;});}else{return _0x22509c;}})[_0x24bc('0x45')](function(_0x381013){logger[_0x24bc('0x28')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x381013);throw _0x381013;});}return _0x22509c;})['then'](respondWithResult(_0x371cc9,0xc9))[_0x24bc('0x45')](handleError(_0x371cc9,null));};exports[_0x24bc('0x22')]=function(_0x49bfbd,_0x5082b9){if(_0x49bfbd[_0x24bc('0x49')]['id']){delete _0x49bfbd['body']['id'];}return db[_0x24bc('0x2d')][_0x24bc('0x47')]({'where':{'id':_0x49bfbd[_0x24bc('0x46')]['id']}})[_0x24bc('0x24')](handleEntityNotFound(_0x5082b9,null))[_0x24bc('0x24')](saveUpdates(_0x49bfbd[_0x24bc('0x49')],null))[_0x24bc('0x24')](respondWithResult(_0x5082b9,null))[_0x24bc('0x45')](handleError(_0x5082b9,null));};exports[_0x24bc('0x23')]=function(_0x2fb2c5,_0x1a59c1){return db[_0x24bc('0x2d')][_0x24bc('0x47')]({'where':{'id':_0x2fb2c5[_0x24bc('0x46')]['id']}})[_0x24bc('0x24')](handleEntityNotFound(_0x1a59c1,null))[_0x24bc('0x24')](removeEntity(_0x1a59c1,null))[_0x24bc('0x45')](handleError(_0x1a59c1,null));};