b6cdba724e34c26ebbef1eff4d4097f46cedba0b
[motion2.git] / server / api / tag / tag.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 _0xff95=['squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','api','../../config/utils','../../config/license/util','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','then','get','error','name','send','index','map','Tag','fieldName','key','query','keys','filters','intersection','model','fields','attributes','nolimit','sort','where','filter','merge','VIRTUAL','include','findAll','rows','catch','show','params','rawAttributes','length','includeAll','find','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Tags','UserProfileSection','autoAssociation','UserProfileResource','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','lodash'];(function(_0xe817c7,_0x19da93){var _0x5c8395=function(_0x1ae0da){while(--_0x1ae0da){_0xe817c7['push'](_0xe817c7['shift']());}};_0x5c8395(++_0x19da93);}(_0xff95,0x1c1));var _0x5ff9=function(_0x2c6b9e,_0x387e47){_0x2c6b9e=_0x2c6b9e-0x0;var _0x3469bf=_0xff95[_0x2c6b9e];return _0x3469bf;};'use strict';var pdf=require(_0x5ff9('0x0'));var emlformat=require(_0x5ff9('0x1'));var rimraf=require(_0x5ff9('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x5ff9('0x3'));var rp=require(_0x5ff9('0x4'));var moment=require(_0x5ff9('0x5'));var BPromise=require(_0x5ff9('0x6'));var Mustache=require(_0x5ff9('0x7'));var util=require(_0x5ff9('0x8'));var path=require(_0x5ff9('0x9'));var sox=require('sox');var csv=require(_0x5ff9('0xa'));var ejs=require(_0x5ff9('0xb'));var fs=require('fs');var _=require(_0x5ff9('0xc'));var squel=require(_0x5ff9('0xd'));var crypto=require(_0x5ff9('0xe'));var jsforce=require(_0x5ff9('0xf'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x5ff9('0x10'));var Papa=require(_0x5ff9('0x11'));var Redis=require(_0x5ff9('0x12'));var authService=require(_0x5ff9('0x13'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x5ff9('0x14'));var logger=require('../../config/logger')(_0x5ff9('0x15'));var utils=require(_0x5ff9('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x5ff9('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x491d3e,_0x4ed4f3){_0x4ed4f3=_0x4ed4f3||0xcc;return function(_0x878ec7){if(_0x878ec7){return _0x491d3e[_0x5ff9('0x18')](_0x4ed4f3);}return _0x491d3e[_0x5ff9('0x19')](_0x4ed4f3)[_0x5ff9('0x1a')]();};}function respondWithResult(_0x19c843,_0x5c0a7a){_0x5c0a7a=_0x5c0a7a||0xc8;return function(_0x470a30){if(_0x470a30){return _0x19c843[_0x5ff9('0x19')](_0x5c0a7a)[_0x5ff9('0x1b')](_0x470a30);}};}function respondWithFilteredResult(_0x27b726,_0x44bf9e){return function(_0x1afb4c){if(_0x1afb4c){var _0x3f005f=_0x1afb4c[_0x5ff9('0x1c')],_0x380a96=_0x44bf9e[_0x5ff9('0x1d')],_0x3babeb=_0x44bf9e['offset']+_0x44bf9e[_0x5ff9('0x1e')],_0x5d9511;if(_0x3babeb>=_0x3f005f){_0x3babeb=_0x3f005f;_0x5d9511=0xc8;}else{_0x5d9511=0xce;}_0x27b726[_0x5ff9('0x19')](_0x5d9511);return _0x27b726[_0x5ff9('0x1f')](_0x5ff9('0x20'),_0x380a96+'-'+_0x3babeb+'/'+_0x3f005f)[_0x5ff9('0x1b')](_0x1afb4c);}return null;};}function patchUpdates(_0x4eee14){return function(_0x235f53){try{jsonpatch[_0x5ff9('0x21')](_0x235f53,_0x4eee14,!![]);}catch(_0x771aae){return BPromise[_0x5ff9('0x22')](_0x771aae);}return _0x235f53[_0x5ff9('0x23')]();};}function saveUpdates(_0x3eba62,_0x387842){return function(_0x3722de){if(_0x3722de){return _0x3722de[_0x5ff9('0x24')](_0x3eba62)[_0x5ff9('0x25')](function(_0x2c3857){return _0x2c3857;});}return null;};}function removeEntity(_0x34c2fc,_0x3a744a){return function(_0x4828cb){if(_0x4828cb){return _0x4828cb['destroy']()[_0x5ff9('0x25')](function(){var _0x485e51=_0x4828cb[_0x5ff9('0x26')]({'plain':!![]});var _0x48984d='Tags';return db['UserProfileResource']['destroy']({'where':{'type':_0x48984d,'resourceId':_0x485e51['id']}})[_0x5ff9('0x25')](function(){return _0x4828cb;});})['then'](function(){_0x34c2fc['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x1b2c90,_0x589752){return function(_0xd9f0c5){if(!_0xd9f0c5){_0x1b2c90['sendStatus'](0x194);}return _0xd9f0c5;};}function handleError(_0x4bc2fe,_0x345484){_0x345484=_0x345484||0x1f4;return function(_0xa1973e){logger[_0x5ff9('0x27')](_0xa1973e['stack']);if(_0xa1973e[_0x5ff9('0x28')]){delete _0xa1973e['name'];}_0x4bc2fe[_0x5ff9('0x19')](_0x345484)[_0x5ff9('0x29')](_0xa1973e);};}exports[_0x5ff9('0x2a')]=function(_0x2e1fd7,_0x17f149){var _0x258f19={},_0x2f0df4={},_0x3f336b={'count':0x0,'rows':[]};var _0x79e268=_[_0x5ff9('0x2b')](db[_0x5ff9('0x2c')]['rawAttributes'],function(_0x17afde){return{'name':_0x17afde[_0x5ff9('0x2d')],'type':_0x17afde['type'][_0x5ff9('0x2e')]};});_0x2f0df4['model']=_[_0x5ff9('0x2b')](_0x79e268,_0x5ff9('0x28'));_0x2f0df4[_0x5ff9('0x2f')]=_[_0x5ff9('0x30')](_0x2e1fd7['query']);_0x2f0df4[_0x5ff9('0x31')]=_[_0x5ff9('0x32')](_0x2f0df4[_0x5ff9('0x33')],_0x2f0df4[_0x5ff9('0x2f')]);_0x258f19['attributes']=_[_0x5ff9('0x32')](_0x2f0df4[_0x5ff9('0x33')],qs[_0x5ff9('0x34')](_0x2e1fd7[_0x5ff9('0x2f')][_0x5ff9('0x34')]));_0x258f19['attributes']=_0x258f19[_0x5ff9('0x35')]['length']?_0x258f19[_0x5ff9('0x35')]:_0x2f0df4[_0x5ff9('0x33')];if(!_0x2e1fd7[_0x5ff9('0x2f')]['hasOwnProperty'](_0x5ff9('0x36'))){_0x258f19['limit']=qs[_0x5ff9('0x1e')](_0x2e1fd7['query'][_0x5ff9('0x1e')]);_0x258f19[_0x5ff9('0x1d')]=qs[_0x5ff9('0x1d')](_0x2e1fd7[_0x5ff9('0x2f')][_0x5ff9('0x1d')]);}_0x258f19['order']=qs[_0x5ff9('0x37')](_0x2e1fd7[_0x5ff9('0x2f')]['sort']);_0x258f19[_0x5ff9('0x38')]=qs[_0x5ff9('0x31')](_['pick'](_0x2e1fd7[_0x5ff9('0x2f')],_0x2f0df4[_0x5ff9('0x31')]),_0x79e268);if(_0x2e1fd7[_0x5ff9('0x2f')][_0x5ff9('0x39')]){_0x258f19['where']=_[_0x5ff9('0x3a')](_0x258f19[_0x5ff9('0x38')],{'$or':_[_0x5ff9('0x2b')](_0x79e268,function(_0x480671){if(_0x480671['type']!==_0x5ff9('0x3b')){var _0x336d8c={};_0x336d8c[_0x480671[_0x5ff9('0x28')]]={'$like':'%'+_0x2e1fd7[_0x5ff9('0x2f')][_0x5ff9('0x39')]+'%'};return _0x336d8c;}})});}_0x258f19=_[_0x5ff9('0x3a')]({},_0x258f19,_0x2e1fd7['options']);var _0x190e74={'where':_0x258f19[_0x5ff9('0x38')]};return db['Tag'][_0x5ff9('0x1c')](_0x190e74)['then'](function(_0x410a07){_0x3f336b['count']=_0x410a07;if(_0x2e1fd7[_0x5ff9('0x2f')]['includeAll']){_0x258f19[_0x5ff9('0x3c')]=[{'all':!![]}];}return db[_0x5ff9('0x2c')][_0x5ff9('0x3d')](_0x258f19);})[_0x5ff9('0x25')](function(_0x582bf8){_0x3f336b[_0x5ff9('0x3e')]=_0x582bf8;return _0x3f336b;})[_0x5ff9('0x25')](respondWithFilteredResult(_0x17f149,_0x258f19))[_0x5ff9('0x3f')](handleError(_0x17f149,null));};exports[_0x5ff9('0x40')]=function(_0x12a0fa,_0x1d5eda){var _0x51c8de={'raw':!![],'where':{'id':_0x12a0fa[_0x5ff9('0x41')]['id']}},_0x27fcf8={};_0x27fcf8['model']=_[_0x5ff9('0x30')](db['Tag'][_0x5ff9('0x42')]);_0x27fcf8[_0x5ff9('0x2f')]=_[_0x5ff9('0x30')](_0x12a0fa['query']);_0x27fcf8['filters']=_[_0x5ff9('0x32')](_0x27fcf8[_0x5ff9('0x33')],_0x27fcf8[_0x5ff9('0x2f')]);_0x51c8de[_0x5ff9('0x35')]=_['intersection'](_0x27fcf8[_0x5ff9('0x33')],qs[_0x5ff9('0x34')](_0x12a0fa['query'][_0x5ff9('0x34')]));_0x51c8de[_0x5ff9('0x35')]=_0x51c8de['attributes'][_0x5ff9('0x43')]?_0x51c8de[_0x5ff9('0x35')]:_0x27fcf8[_0x5ff9('0x33')];if(_0x12a0fa[_0x5ff9('0x2f')][_0x5ff9('0x44')]){_0x51c8de[_0x5ff9('0x3c')]=[{'all':!![]}];}_0x51c8de=_[_0x5ff9('0x3a')]({},_0x51c8de,_0x12a0fa['options']);return db[_0x5ff9('0x2c')][_0x5ff9('0x45')](_0x51c8de)['then'](handleEntityNotFound(_0x1d5eda,null))[_0x5ff9('0x25')](respondWithResult(_0x1d5eda,null))[_0x5ff9('0x3f')](handleError(_0x1d5eda,null));};exports['create']=function(_0x384bb7,_0x2cb479){return db[_0x5ff9('0x2c')]['create'](_0x384bb7['body'],{})['then'](function(_0x2fa905){var _0x53dd5f=_0x384bb7[_0x5ff9('0x46')]['get']({'plain':!![]});if(!_0x53dd5f)throw new Error(_0x5ff9('0x47'));if(_0x53dd5f[_0x5ff9('0x48')]===_0x5ff9('0x46')){var _0x1483ec=_0x2fa905['get']({'plain':!![]});var _0x41867f=_0x5ff9('0x49');return db[_0x5ff9('0x4a')][_0x5ff9('0x45')]({'where':{'name':_0x41867f,'userProfileId':_0x53dd5f['userProfileId']},'raw':!![]})['then'](function(_0x9b628e){if(_0x9b628e&&_0x9b628e[_0x5ff9('0x4b')]===0x0){return db[_0x5ff9('0x4c')]['create']({'name':_0x1483ec['name'],'resourceId':_0x1483ec['id'],'type':_0x9b628e[_0x5ff9('0x28')],'sectionId':_0x9b628e['id']},{})['then'](function(){return _0x2fa905;});}else{return _0x2fa905;}})[_0x5ff9('0x3f')](function(_0x493319){logger[_0x5ff9('0x27')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x493319);throw _0x493319;});}return _0x2fa905;})[_0x5ff9('0x25')](respondWithResult(_0x2cb479,0xc9))[_0x5ff9('0x3f')](handleError(_0x2cb479,null));};exports[_0x5ff9('0x24')]=function(_0x5733e1,_0x3337cf){if(_0x5733e1['body']['id']){delete _0x5733e1['body']['id'];}return db['Tag']['find']({'where':{'id':_0x5733e1[_0x5ff9('0x41')]['id']}})['then'](handleEntityNotFound(_0x3337cf,null))['then'](saveUpdates(_0x5733e1['body'],null))[_0x5ff9('0x25')](respondWithResult(_0x3337cf,null))[_0x5ff9('0x3f')](handleError(_0x3337cf,null));};exports['destroy']=function(_0x5b8afe,_0x5a20a4){return db['Tag'][_0x5ff9('0x45')]({'where':{'id':_0x5b8afe[_0x5ff9('0x41')]['id']}})[_0x5ff9('0x25')](handleEntityNotFound(_0x5a20a4,null))['then'](removeEntity(_0x5a20a4,null))['catch'](handleError(_0x5a20a4,null));};