460bcb4adb9b173efe3afcdabbe65fe2a761282a
[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 _0x7077=['set','Content-Range','json','apply','reject','save','update','then','destroy','get','UserProfileResource','error','name','index','map','Template','rawAttributes','fieldName','type','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','catch','show','length','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Templates','UserProfileSection','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','count','limit'];(function(_0x2dadb9,_0x42cfe6){var _0x2f0097=function(_0x21163f){while(--_0x21163f){_0x2dadb9['push'](_0x2dadb9['shift']());}};_0x2f0097(++_0x42cfe6);}(_0x7077,0x8b));var _0x7707=function(_0x59900a,_0x510eb7){_0x59900a=_0x59900a-0x0;var _0x3e9a2d=_0x7077[_0x59900a];return _0x3e9a2d;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x7707('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x7707('0x1'));var rp=require('request-promise');var moment=require(_0x7707('0x2'));var BPromise=require(_0x7707('0x3'));var Mustache=require(_0x7707('0x4'));var util=require(_0x7707('0x5'));var path=require(_0x7707('0x6'));var sox=require(_0x7707('0x7'));var csv=require(_0x7707('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x7707('0x9'));var _=require(_0x7707('0xa'));var squel=require(_0x7707('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x7707('0xc'));var toCsv=require(_0x7707('0x8'));var querystring=require(_0x7707('0xd'));var Papa=require(_0x7707('0xe'));var Redis=require(_0x7707('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x7707('0x10'));var as=require(_0x7707('0x11'));var hardwareService=require(_0x7707('0x12'));var logger=require(_0x7707('0x13'))(_0x7707('0x14'));var utils=require('../../config/utils');var config=require(_0x7707('0x15'));var licenseUtil=require(_0x7707('0x16'));var db=require(_0x7707('0x17'))['db'];function respondWithStatusCode(_0x56f212,_0x3bd915){_0x3bd915=_0x3bd915||0xcc;return function(_0x5dc637){if(_0x5dc637){return _0x56f212[_0x7707('0x18')](_0x3bd915);}return _0x56f212[_0x7707('0x19')](_0x3bd915)[_0x7707('0x1a')]();};}function respondWithResult(_0x22a5b6,_0x1b83fe){_0x1b83fe=_0x1b83fe||0xc8;return function(_0x1e5d48){if(_0x1e5d48){return _0x22a5b6[_0x7707('0x19')](_0x1b83fe)['json'](_0x1e5d48);}};}function respondWithFilteredResult(_0x280ba8,_0x5ab249){return function(_0x2dc65a){if(_0x2dc65a){var _0x5a7927=typeof _0x5ab249[_0x7707('0x1b')]==='undefined'&&typeof _0x5ab249['limit']===_0x7707('0x1c');var _0x2c4fff=_0x2dc65a[_0x7707('0x1d')];var _0xeb780d=_0x5a7927?0x0:_0x5ab249[_0x7707('0x1b')];var _0x2b2dd3=_0x5a7927?_0x2dc65a['count']:_0x5ab249[_0x7707('0x1b')]+_0x5ab249[_0x7707('0x1e')];var _0xbea262;if(_0x2b2dd3>=_0x2c4fff){_0x2b2dd3=_0x2c4fff;_0xbea262=0xc8;}else{_0xbea262=0xce;}_0x280ba8['status'](_0xbea262);return _0x280ba8[_0x7707('0x1f')](_0x7707('0x20'),_0xeb780d+'-'+_0x2b2dd3+'/'+_0x2c4fff)[_0x7707('0x21')](_0x2dc65a);}return null;};}function patchUpdates(_0x42ee28){return function(_0x9f1e30){try{jsonpatch[_0x7707('0x22')](_0x9f1e30,_0x42ee28,!![]);}catch(_0x5bf8ea){return BPromise[_0x7707('0x23')](_0x5bf8ea);}return _0x9f1e30[_0x7707('0x24')]();};}function saveUpdates(_0x99189c,_0x378a3c){return function(_0x3d61be){if(_0x3d61be){return _0x3d61be[_0x7707('0x25')](_0x99189c)[_0x7707('0x26')](function(_0x1e15a1){return _0x1e15a1;});}return null;};}function removeEntity(_0x1c3a8c,_0x3969ed){return function(_0x597fc0){if(_0x597fc0){return _0x597fc0[_0x7707('0x27')]()['then'](function(){var _0x32697f=_0x597fc0[_0x7707('0x28')]({'plain':!![]});var _0x502359='Templates';return db[_0x7707('0x29')][_0x7707('0x27')]({'where':{'type':_0x502359,'resourceId':_0x32697f['id']}})[_0x7707('0x26')](function(){return _0x597fc0;});})[_0x7707('0x26')](function(){_0x1c3a8c['status'](0xcc)[_0x7707('0x1a')]();});}};}function handleEntityNotFound(_0x22a11e,_0x185547){return function(_0xfa0839){if(!_0xfa0839){_0x22a11e[_0x7707('0x18')](0x194);}return _0xfa0839;};}function handleError(_0x2d9789,_0x1cc905){_0x1cc905=_0x1cc905||0x1f4;return function(_0x4adef7){logger[_0x7707('0x2a')](_0x4adef7['stack']);if(_0x4adef7[_0x7707('0x2b')]){delete _0x4adef7['name'];}_0x2d9789[_0x7707('0x19')](_0x1cc905)['send'](_0x4adef7);};}exports[_0x7707('0x2c')]=function(_0x9bfbb1,_0x47dc65){var _0x16b975={},_0x19bb21={},_0x47e766={'count':0x0,'rows':[]};var _0x4224ac=_[_0x7707('0x2d')](db[_0x7707('0x2e')][_0x7707('0x2f')],function(_0x582e09){return{'name':_0x582e09[_0x7707('0x30')],'type':_0x582e09[_0x7707('0x31')]['key']};});_0x19bb21['model']=_[_0x7707('0x2d')](_0x4224ac,'name');_0x19bb21[_0x7707('0x32')]=_[_0x7707('0x33')](_0x9bfbb1[_0x7707('0x32')]);_0x19bb21[_0x7707('0x34')]=_[_0x7707('0x35')](_0x19bb21[_0x7707('0x36')],_0x19bb21[_0x7707('0x32')]);_0x16b975[_0x7707('0x37')]=_['intersection'](_0x19bb21['model'],qs['fields'](_0x9bfbb1[_0x7707('0x32')][_0x7707('0x38')]));_0x16b975['attributes']=_0x16b975['attributes']['length']?_0x16b975[_0x7707('0x37')]:_0x19bb21[_0x7707('0x36')];if(!_0x9bfbb1[_0x7707('0x32')][_0x7707('0x39')](_0x7707('0x3a'))){_0x16b975[_0x7707('0x1e')]=qs[_0x7707('0x1e')](_0x9bfbb1[_0x7707('0x32')][_0x7707('0x1e')]);_0x16b975[_0x7707('0x1b')]=qs[_0x7707('0x1b')](_0x9bfbb1[_0x7707('0x32')][_0x7707('0x1b')]);}_0x16b975[_0x7707('0x3b')]=qs['sort'](_0x9bfbb1[_0x7707('0x32')][_0x7707('0x3c')]);_0x16b975[_0x7707('0x3d')]=qs['filters'](_[_0x7707('0x3e')](_0x9bfbb1[_0x7707('0x32')],_0x19bb21['filters']),_0x4224ac);if(_0x9bfbb1[_0x7707('0x32')][_0x7707('0x3f')]){_0x16b975['where']=_[_0x7707('0x40')](_0x16b975[_0x7707('0x3d')],{'$or':_[_0x7707('0x2d')](_0x4224ac,function(_0x29839b){if(_0x29839b['type']!==_0x7707('0x41')){var _0x37ec70={};_0x37ec70[_0x29839b[_0x7707('0x2b')]]={'$like':'%'+_0x9bfbb1['query']['filter']+'%'};return _0x37ec70;}})});}_0x16b975=_['merge']({},_0x16b975,_0x9bfbb1['options']);var _0x5db582={'where':_0x16b975[_0x7707('0x3d')]};return db['Template'][_0x7707('0x1d')](_0x5db582)[_0x7707('0x26')](function(_0x184f88){_0x47e766[_0x7707('0x1d')]=_0x184f88;if(_0x9bfbb1['query'][_0x7707('0x42')]){_0x16b975[_0x7707('0x43')]=[{'all':!![]}];}return db[_0x7707('0x2e')][_0x7707('0x44')](_0x16b975);})[_0x7707('0x26')](function(_0x1ab90a){_0x47e766[_0x7707('0x45')]=_0x1ab90a;return _0x47e766;})[_0x7707('0x26')](respondWithFilteredResult(_0x47dc65,_0x16b975))[_0x7707('0x46')](handleError(_0x47dc65,null));};exports[_0x7707('0x47')]=function(_0x1c3a80,_0x370f5f){var _0x2e2bdd={'raw':!![],'where':{'id':_0x1c3a80['params']['id']}},_0x428dd3={};_0x428dd3['model']=_['keys'](db[_0x7707('0x2e')][_0x7707('0x2f')]);_0x428dd3[_0x7707('0x32')]=_[_0x7707('0x33')](_0x1c3a80[_0x7707('0x32')]);_0x428dd3[_0x7707('0x34')]=_['intersection'](_0x428dd3[_0x7707('0x36')],_0x428dd3['query']);_0x2e2bdd[_0x7707('0x37')]=_[_0x7707('0x35')](_0x428dd3[_0x7707('0x36')],qs[_0x7707('0x38')](_0x1c3a80[_0x7707('0x32')]['fields']));_0x2e2bdd[_0x7707('0x37')]=_0x2e2bdd[_0x7707('0x37')][_0x7707('0x48')]?_0x2e2bdd['attributes']:_0x428dd3[_0x7707('0x36')];if(_0x1c3a80[_0x7707('0x32')]['includeAll']){_0x2e2bdd[_0x7707('0x43')]=[{'all':!![]}];}_0x2e2bdd=_[_0x7707('0x40')]({},_0x2e2bdd,_0x1c3a80['options']);return db[_0x7707('0x2e')]['find'](_0x2e2bdd)[_0x7707('0x26')](handleEntityNotFound(_0x370f5f,null))[_0x7707('0x26')](respondWithResult(_0x370f5f,null))['catch'](handleError(_0x370f5f,null));};exports[_0x7707('0x49')]=function(_0x2b82b5,_0x574691){return db[_0x7707('0x2e')][_0x7707('0x49')](_0x2b82b5[_0x7707('0x4a')],{})[_0x7707('0x26')](function(_0x292b8f){var _0x4bba52=_0x2b82b5[_0x7707('0x4b')][_0x7707('0x28')]({'plain':!![]});if(!_0x4bba52)throw new Error(_0x7707('0x4c'));if(_0x4bba52[_0x7707('0x4d')]===_0x7707('0x4b')){var _0x3cadd1=_0x292b8f[_0x7707('0x28')]({'plain':!![]});var _0x1cf9a1=_0x7707('0x4e');return db[_0x7707('0x4f')][_0x7707('0x50')]({'where':{'name':_0x1cf9a1,'userProfileId':_0x4bba52[_0x7707('0x51')]},'raw':!![]})['then'](function(_0x2a7888){if(_0x2a7888&&_0x2a7888[_0x7707('0x52')]===0x0){return db[_0x7707('0x29')][_0x7707('0x49')]({'name':_0x3cadd1['name'],'resourceId':_0x3cadd1['id'],'type':_0x2a7888[_0x7707('0x2b')],'sectionId':_0x2a7888['id']},{})['then'](function(){return _0x292b8f;});}else{return _0x292b8f;}})[_0x7707('0x46')](function(_0x3da220){logger['error'](_0x7707('0x53'),_0x3da220);throw _0x3da220;});}return _0x292b8f;})[_0x7707('0x26')](respondWithResult(_0x574691,0xc9))[_0x7707('0x46')](handleError(_0x574691,null));};exports[_0x7707('0x25')]=function(_0x321160,_0x7b31ad){if(_0x321160[_0x7707('0x4a')]['id']){delete _0x321160[_0x7707('0x4a')]['id'];}return db['Template'][_0x7707('0x50')]({'where':{'id':_0x321160[_0x7707('0x54')]['id']}})[_0x7707('0x26')](handleEntityNotFound(_0x7b31ad,null))[_0x7707('0x26')](saveUpdates(_0x321160[_0x7707('0x4a')],null))[_0x7707('0x26')](respondWithResult(_0x7b31ad,null))[_0x7707('0x46')](handleError(_0x7b31ad,null));};exports[_0x7707('0x27')]=function(_0x9cdf9d,_0x38d760){return db['Template']['find']({'where':{'id':_0x9cdf9d['params']['id']}})['then'](handleEntityNotFound(_0x38d760,null))[_0x7707('0x26')](removeEntity(_0x38d760,null))['catch'](handleError(_0x38d760,null));};