2d829d4801171a05b2871469af6723ede580c36d
[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 _0xb647=['../../mysqldb','status','json','count','offset','limit','Content-Range','apply','reject','update','destroy','then','get','Templates','UserProfileResource','end','sendStatus','error','stack','name','send','index','map','Template','rawAttributes','fieldName','model','keys','filters','attributes','intersection','query','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','catch','fields','find','create','body','user','role','UserProfileSection','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util'];(function(_0x13f79f,_0x469e66){var _0x586358=function(_0x44a59e){while(--_0x44a59e){_0x13f79f['push'](_0x13f79f['shift']());}};_0x586358(++_0x469e66);}(_0xb647,0xdb));var _0x7b64=function(_0x18cce5,_0x42254d){_0x18cce5=_0x18cce5-0x0;var _0x544796=_0xb647[_0x18cce5];return _0x544796;};'use strict';var emlformat=require(_0x7b64('0x0'));var rimraf=require(_0x7b64('0x1'));var zipdir=require(_0x7b64('0x2'));var jsonpatch=require(_0x7b64('0x3'));var rp=require(_0x7b64('0x4'));var moment=require(_0x7b64('0x5'));var BPromise=require(_0x7b64('0x6'));var Mustache=require(_0x7b64('0x7'));var util=require('util');var path=require(_0x7b64('0x8'));var sox=require('sox');var csv=require(_0x7b64('0x9'));var ejs=require(_0x7b64('0xa'));var fs=require('fs');var fs_extra=require(_0x7b64('0xb'));var _=require(_0x7b64('0xc'));var squel=require(_0x7b64('0xd'));var crypto=require(_0x7b64('0xe'));var jsforce=require(_0x7b64('0xf'));var deskjs=require(_0x7b64('0x10'));var toCsv=require(_0x7b64('0x9'));var querystring=require('querystring');var Papa=require(_0x7b64('0x11'));var Redis=require('ioredis');var authService=require(_0x7b64('0x12'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x7b64('0x13'));var logger=require(_0x7b64('0x14'))('api');var utils=require(_0x7b64('0x15'));var config=require(_0x7b64('0x16'));var licenseUtil=require(_0x7b64('0x17'));var db=require(_0x7b64('0x18'))['db'];function respondWithStatusCode(_0x25e135,_0x432626){_0x432626=_0x432626||0xcc;return function(_0x5ea1dd){if(_0x5ea1dd){return _0x25e135['sendStatus'](_0x432626);}return _0x25e135[_0x7b64('0x19')](_0x432626)['end']();};}function respondWithResult(_0x530938,_0x2f21d8){_0x2f21d8=_0x2f21d8||0xc8;return function(_0x29a596){if(_0x29a596){return _0x530938[_0x7b64('0x19')](_0x2f21d8)[_0x7b64('0x1a')](_0x29a596);}};}function respondWithFilteredResult(_0x33ebe7,_0x437ddc){return function(_0x306a4e){if(_0x306a4e){var _0x519316=_0x306a4e[_0x7b64('0x1b')],_0xca026a=_0x437ddc[_0x7b64('0x1c')],_0x40066b=_0x437ddc['offset']+_0x437ddc[_0x7b64('0x1d')],_0x16ff72;if(_0x40066b>=_0x519316){_0x40066b=_0x519316;_0x16ff72=0xc8;}else{_0x16ff72=0xce;}_0x33ebe7[_0x7b64('0x19')](_0x16ff72);return _0x33ebe7['set'](_0x7b64('0x1e'),_0xca026a+'-'+_0x40066b+'/'+_0x519316)[_0x7b64('0x1a')](_0x306a4e);}return null;};}function patchUpdates(_0x5ef53f){return function(_0x23845e){try{jsonpatch[_0x7b64('0x1f')](_0x23845e,_0x5ef53f,!![]);}catch(_0x30d633){return BPromise[_0x7b64('0x20')](_0x30d633);}return _0x23845e['save']();};}function saveUpdates(_0x123a3b,_0x5c4135){return function(_0x4a7549){if(_0x4a7549){return _0x4a7549[_0x7b64('0x21')](_0x123a3b)['then'](function(_0x2d2d9a){return _0x2d2d9a;});}return null;};}function removeEntity(_0x587da6,_0x1bbd87){return function(_0x1ad95f){if(_0x1ad95f){return _0x1ad95f[_0x7b64('0x22')]()[_0x7b64('0x23')](function(){var _0x450b7e=_0x1ad95f[_0x7b64('0x24')]({'plain':!![]});var _0x215ea9=_0x7b64('0x25');return db[_0x7b64('0x26')][_0x7b64('0x22')]({'where':{'type':_0x215ea9,'resourceId':_0x450b7e['id']}})[_0x7b64('0x23')](function(){return _0x1ad95f;});})[_0x7b64('0x23')](function(){_0x587da6[_0x7b64('0x19')](0xcc)[_0x7b64('0x27')]();});}};}function handleEntityNotFound(_0x50d06c,_0xc61df8){return function(_0x5d9586){if(!_0x5d9586){_0x50d06c[_0x7b64('0x28')](0x194);}return _0x5d9586;};}function handleError(_0x21fbd3,_0x5c10ca){_0x5c10ca=_0x5c10ca||0x1f4;return function(_0x5acdb3){logger[_0x7b64('0x29')](_0x5acdb3[_0x7b64('0x2a')]);if(_0x5acdb3[_0x7b64('0x2b')]){delete _0x5acdb3[_0x7b64('0x2b')];}_0x21fbd3[_0x7b64('0x19')](_0x5c10ca)[_0x7b64('0x2c')](_0x5acdb3);};}exports[_0x7b64('0x2d')]=function(_0x2729f1,_0x53e29b){var _0x1616c9={},_0x2c4619={},_0x5d7fd9={'count':0x0,'rows':[]};var _0x6b1d0=_[_0x7b64('0x2e')](db[_0x7b64('0x2f')][_0x7b64('0x30')],function(_0x144327){return{'name':_0x144327[_0x7b64('0x31')],'type':_0x144327['type']['key']};});_0x2c4619[_0x7b64('0x32')]=_[_0x7b64('0x2e')](_0x6b1d0,'name');_0x2c4619['query']=_[_0x7b64('0x33')](_0x2729f1['query']);_0x2c4619[_0x7b64('0x34')]=_['intersection'](_0x2c4619['model'],_0x2c4619['query']);_0x1616c9[_0x7b64('0x35')]=_[_0x7b64('0x36')](_0x2c4619[_0x7b64('0x32')],qs['fields'](_0x2729f1[_0x7b64('0x37')]['fields']));_0x1616c9[_0x7b64('0x35')]=_0x1616c9[_0x7b64('0x35')][_0x7b64('0x38')]?_0x1616c9[_0x7b64('0x35')]:_0x2c4619[_0x7b64('0x32')];if(!_0x2729f1['query'][_0x7b64('0x39')](_0x7b64('0x3a'))){_0x1616c9[_0x7b64('0x1d')]=qs[_0x7b64('0x1d')](_0x2729f1['query'][_0x7b64('0x1d')]);_0x1616c9[_0x7b64('0x1c')]=qs[_0x7b64('0x1c')](_0x2729f1[_0x7b64('0x37')][_0x7b64('0x1c')]);}_0x1616c9[_0x7b64('0x3b')]=qs[_0x7b64('0x3c')](_0x2729f1['query']['sort']);_0x1616c9[_0x7b64('0x3d')]=qs[_0x7b64('0x34')](_[_0x7b64('0x3e')](_0x2729f1[_0x7b64('0x37')],_0x2c4619[_0x7b64('0x34')]),_0x6b1d0);if(_0x2729f1[_0x7b64('0x37')][_0x7b64('0x3f')]){_0x1616c9[_0x7b64('0x3d')]=_[_0x7b64('0x40')](_0x1616c9['where'],{'$or':_[_0x7b64('0x2e')](_0x6b1d0,function(_0x2e58b2){if(_0x2e58b2[_0x7b64('0x41')]!==_0x7b64('0x42')){var _0x3bf413={};_0x3bf413[_0x2e58b2[_0x7b64('0x2b')]]={'$like':'%'+_0x2729f1[_0x7b64('0x37')][_0x7b64('0x3f')]+'%'};return _0x3bf413;}})});}_0x1616c9=_[_0x7b64('0x40')]({},_0x1616c9,_0x2729f1[_0x7b64('0x43')]);var _0xb24499={'where':_0x1616c9[_0x7b64('0x3d')]};return db[_0x7b64('0x2f')][_0x7b64('0x1b')](_0xb24499)[_0x7b64('0x23')](function(_0x42cc06){_0x5d7fd9[_0x7b64('0x1b')]=_0x42cc06;if(_0x2729f1[_0x7b64('0x37')][_0x7b64('0x44')]){_0x1616c9[_0x7b64('0x45')]=[{'all':!![]}];}return db['Template'][_0x7b64('0x46')](_0x1616c9);})[_0x7b64('0x23')](function(_0x163580){_0x5d7fd9['rows']=_0x163580;return _0x5d7fd9;})[_0x7b64('0x23')](respondWithFilteredResult(_0x53e29b,_0x1616c9))[_0x7b64('0x47')](handleError(_0x53e29b,null));};exports['show']=function(_0x216c58,_0xf0d4a1){var _0x54d7d2={'raw':!![],'where':{'id':_0x216c58['params']['id']}},_0x132d39={};_0x132d39[_0x7b64('0x32')]=_[_0x7b64('0x33')](db[_0x7b64('0x2f')]['rawAttributes']);_0x132d39[_0x7b64('0x37')]=_[_0x7b64('0x33')](_0x216c58[_0x7b64('0x37')]);_0x132d39[_0x7b64('0x34')]=_[_0x7b64('0x36')](_0x132d39[_0x7b64('0x32')],_0x132d39['query']);_0x54d7d2[_0x7b64('0x35')]=_[_0x7b64('0x36')](_0x132d39[_0x7b64('0x32')],qs[_0x7b64('0x48')](_0x216c58[_0x7b64('0x37')]['fields']));_0x54d7d2['attributes']=_0x54d7d2['attributes']['length']?_0x54d7d2[_0x7b64('0x35')]:_0x132d39[_0x7b64('0x32')];if(_0x216c58[_0x7b64('0x37')][_0x7b64('0x44')]){_0x54d7d2[_0x7b64('0x45')]=[{'all':!![]}];}_0x54d7d2=_[_0x7b64('0x40')]({},_0x54d7d2,_0x216c58[_0x7b64('0x43')]);return db[_0x7b64('0x2f')][_0x7b64('0x49')](_0x54d7d2)[_0x7b64('0x23')](handleEntityNotFound(_0xf0d4a1,null))[_0x7b64('0x23')](respondWithResult(_0xf0d4a1,null))[_0x7b64('0x47')](handleError(_0xf0d4a1,null));};exports['create']=function(_0x4c2006,_0x31d364){return db[_0x7b64('0x2f')][_0x7b64('0x4a')](_0x4c2006[_0x7b64('0x4b')],{})[_0x7b64('0x23')](function(_0x5a8639){var _0x3e5321=_0x4c2006[_0x7b64('0x4c')][_0x7b64('0x24')]({'plain':!![]});if(!_0x3e5321)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3e5321[_0x7b64('0x4d')]===_0x7b64('0x4c')){var _0x27c9f9=_0x5a8639[_0x7b64('0x24')]({'plain':!![]});var _0x18c5b0='Templates';return db[_0x7b64('0x4e')][_0x7b64('0x49')]({'where':{'name':_0x18c5b0,'userProfileId':_0x3e5321['userProfileId']},'raw':!![]})[_0x7b64('0x23')](function(_0x3dffa5){if(_0x3dffa5&&_0x3dffa5['autoAssociation']===0x0){return db[_0x7b64('0x26')][_0x7b64('0x4a')]({'name':_0x27c9f9[_0x7b64('0x2b')],'resourceId':_0x27c9f9['id'],'type':_0x3dffa5[_0x7b64('0x2b')],'sectionId':_0x3dffa5['id']},{})[_0x7b64('0x23')](function(){return _0x5a8639;});}else{return _0x5a8639;}})[_0x7b64('0x47')](function(_0x253b33){logger[_0x7b64('0x29')](_0x7b64('0x4f'),_0x253b33);throw _0x253b33;});}return _0x5a8639;})[_0x7b64('0x23')](respondWithResult(_0x31d364,0xc9))[_0x7b64('0x47')](handleError(_0x31d364,null));};exports[_0x7b64('0x21')]=function(_0x473aa3,_0x1ef736){if(_0x473aa3[_0x7b64('0x4b')]['id']){delete _0x473aa3[_0x7b64('0x4b')]['id'];}return db[_0x7b64('0x2f')][_0x7b64('0x49')]({'where':{'id':_0x473aa3['params']['id']}})[_0x7b64('0x23')](handleEntityNotFound(_0x1ef736,null))['then'](saveUpdates(_0x473aa3[_0x7b64('0x4b')],null))[_0x7b64('0x23')](respondWithResult(_0x1ef736,null))[_0x7b64('0x47')](handleError(_0x1ef736,null));};exports['destroy']=function(_0x5b4971,_0x3f16e5){return db['Template']['find']({'where':{'id':_0x5b4971[_0x7b64('0x50')]['id']}})[_0x7b64('0x23')](handleEntityNotFound(_0x3f16e5,null))[_0x7b64('0x23')](removeEntity(_0x3f16e5,null))['catch'](handleError(_0x3f16e5,null));};