Built motion from commit 15aa0e42.|2.6.19
[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 _0x8d9b=['filter','type','options','Tag','rows','params','length','includeAll','include','merge','find','catch','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','Tags','UserProfileSection','create','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','path','sox','lodash','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','count','offset','limit','set','apply','reject','save','update','then','destroy','get','UserProfileResource','stack','name','send','index','map','rawAttributes','fieldName','key','model','query','keys','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filters','pick'];(function(_0x289c45,_0x552084){var _0x46d1e7=function(_0x589742){while(--_0x589742){_0x289c45['push'](_0x289c45['shift']());}};_0x46d1e7(++_0x552084);}(_0x8d9b,0x104));var _0xb8d9=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x8d9b[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0xb8d9('0x0'));var rimraf=require(_0xb8d9('0x1'));var zipdir=require(_0xb8d9('0x2'));var jsonpatch=require(_0xb8d9('0x3'));var rp=require(_0xb8d9('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xb8d9('0x5'));var util=require('util');var path=require(_0xb8d9('0x6'));var sox=require(_0xb8d9('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xb8d9('0x8'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xb8d9('0x9'));var toCsv=require(_0xb8d9('0xa'));var querystring=require(_0xb8d9('0xb'));var Papa=require(_0xb8d9('0xc'));var Redis=require(_0xb8d9('0xd'));var authService=require(_0xb8d9('0xe'));var qs=require(_0xb8d9('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb8d9('0x10'));var logger=require('../../config/logger')(_0xb8d9('0x11'));var utils=require(_0xb8d9('0x12'));var config=require(_0xb8d9('0x13'));var licenseUtil=require(_0xb8d9('0x14'));var db=require(_0xb8d9('0x15'))['db'];function respondWithStatusCode(_0x13b1d8,_0x10b7fe){_0x10b7fe=_0x10b7fe||0xcc;return function(_0x265472){if(_0x265472){return _0x13b1d8[_0xb8d9('0x16')](_0x10b7fe);}return _0x13b1d8[_0xb8d9('0x17')](_0x10b7fe)[_0xb8d9('0x18')]();};}function respondWithResult(_0x4b0f9,_0x1bcb02){_0x1bcb02=_0x1bcb02||0xc8;return function(_0xb3fa68){if(_0xb3fa68){return _0x4b0f9['status'](_0x1bcb02)[_0xb8d9('0x19')](_0xb3fa68);}};}function respondWithFilteredResult(_0x2c5265,_0x513edf){return function(_0x24f33a){if(_0x24f33a){var _0x283780=typeof _0x513edf['offset']==='undefined'&&typeof _0x513edf['limit']===_0xb8d9('0x1a');var _0x2d1b34=_0x24f33a[_0xb8d9('0x1b')];var _0x1183e4=_0x283780?0x0:_0x513edf['offset'];var _0x31b33f=_0x283780?_0x24f33a['count']:_0x513edf[_0xb8d9('0x1c')]+_0x513edf[_0xb8d9('0x1d')];var _0x447367;if(_0x31b33f>=_0x2d1b34){_0x31b33f=_0x2d1b34;_0x447367=0xc8;}else{_0x447367=0xce;}_0x2c5265[_0xb8d9('0x17')](_0x447367);return _0x2c5265[_0xb8d9('0x1e')]('Content-Range',_0x1183e4+'-'+_0x31b33f+'/'+_0x2d1b34)['json'](_0x24f33a);}return null;};}function patchUpdates(_0x5444a5){return function(_0x42f600){try{jsonpatch[_0xb8d9('0x1f')](_0x42f600,_0x5444a5,!![]);}catch(_0x15495f){return BPromise[_0xb8d9('0x20')](_0x15495f);}return _0x42f600[_0xb8d9('0x21')]();};}function saveUpdates(_0x48c504,_0x963afa){return function(_0x430794){if(_0x430794){return _0x430794[_0xb8d9('0x22')](_0x48c504)[_0xb8d9('0x23')](function(_0x3cefe3){return _0x3cefe3;});}return null;};}function removeEntity(_0x1d94aa,_0x3f4b9d){return function(_0x3d1659){if(_0x3d1659){return _0x3d1659[_0xb8d9('0x24')]()[_0xb8d9('0x23')](function(){var _0x52df47=_0x3d1659[_0xb8d9('0x25')]({'plain':!![]});var _0x49380d='Tags';return db[_0xb8d9('0x26')][_0xb8d9('0x24')]({'where':{'type':_0x49380d,'resourceId':_0x52df47['id']}})[_0xb8d9('0x23')](function(){return _0x3d1659;});})[_0xb8d9('0x23')](function(){_0x1d94aa[_0xb8d9('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x241041,_0x282db6){return function(_0x3111aa){if(!_0x3111aa){_0x241041['sendStatus'](0x194);}return _0x3111aa;};}function handleError(_0x2d1439,_0x1c9bd4){_0x1c9bd4=_0x1c9bd4||0x1f4;return function(_0x336918){logger['error'](_0x336918[_0xb8d9('0x27')]);if(_0x336918[_0xb8d9('0x28')]){delete _0x336918['name'];}_0x2d1439[_0xb8d9('0x17')](_0x1c9bd4)[_0xb8d9('0x29')](_0x336918);};}exports[_0xb8d9('0x2a')]=function(_0x1b1212,_0x358e4d){var _0x84b01c={},_0x13120c={},_0x27ed72={'count':0x0,'rows':[]};var _0x8674fc=_[_0xb8d9('0x2b')](db['Tag'][_0xb8d9('0x2c')],function(_0x374def){return{'name':_0x374def[_0xb8d9('0x2d')],'type':_0x374def['type'][_0xb8d9('0x2e')]};});_0x13120c[_0xb8d9('0x2f')]=_[_0xb8d9('0x2b')](_0x8674fc,_0xb8d9('0x28'));_0x13120c[_0xb8d9('0x30')]=_[_0xb8d9('0x31')](_0x1b1212['query']);_0x13120c['filters']=_[_0xb8d9('0x32')](_0x13120c[_0xb8d9('0x2f')],_0x13120c[_0xb8d9('0x30')]);_0x84b01c[_0xb8d9('0x33')]=_[_0xb8d9('0x32')](_0x13120c[_0xb8d9('0x2f')],qs['fields'](_0x1b1212['query'][_0xb8d9('0x34')]));_0x84b01c[_0xb8d9('0x33')]=_0x84b01c[_0xb8d9('0x33')]['length']?_0x84b01c[_0xb8d9('0x33')]:_0x13120c['model'];if(!_0x1b1212[_0xb8d9('0x30')][_0xb8d9('0x35')](_0xb8d9('0x36'))){_0x84b01c['limit']=qs[_0xb8d9('0x1d')](_0x1b1212[_0xb8d9('0x30')]['limit']);_0x84b01c['offset']=qs[_0xb8d9('0x1c')](_0x1b1212[_0xb8d9('0x30')][_0xb8d9('0x1c')]);}_0x84b01c[_0xb8d9('0x37')]=qs[_0xb8d9('0x38')](_0x1b1212[_0xb8d9('0x30')][_0xb8d9('0x38')]);_0x84b01c[_0xb8d9('0x39')]=qs[_0xb8d9('0x3a')](_[_0xb8d9('0x3b')](_0x1b1212[_0xb8d9('0x30')],_0x13120c[_0xb8d9('0x3a')]),_0x8674fc);if(_0x1b1212[_0xb8d9('0x30')][_0xb8d9('0x3c')]){_0x84b01c['where']=_['merge'](_0x84b01c[_0xb8d9('0x39')],{'$or':_[_0xb8d9('0x2b')](_0x8674fc,function(_0x364bb1){if(_0x364bb1[_0xb8d9('0x3d')]!=='VIRTUAL'){var _0x4b1d71={};_0x4b1d71[_0x364bb1[_0xb8d9('0x28')]]={'$like':'%'+_0x1b1212['query'][_0xb8d9('0x3c')]+'%'};return _0x4b1d71;}})});}_0x84b01c=_['merge']({},_0x84b01c,_0x1b1212[_0xb8d9('0x3e')]);var _0x5ae97b={'where':_0x84b01c[_0xb8d9('0x39')]};return db[_0xb8d9('0x3f')][_0xb8d9('0x1b')](_0x5ae97b)['then'](function(_0x40fd3e){_0x27ed72[_0xb8d9('0x1b')]=_0x40fd3e;if(_0x1b1212[_0xb8d9('0x30')]['includeAll']){_0x84b01c['include']=[{'all':!![]}];}return db['Tag']['findAll'](_0x84b01c);})['then'](function(_0xc1816a){_0x27ed72[_0xb8d9('0x40')]=_0xc1816a;return _0x27ed72;})[_0xb8d9('0x23')](respondWithFilteredResult(_0x358e4d,_0x84b01c))['catch'](handleError(_0x358e4d,null));};exports['show']=function(_0x142e54,_0x496d4f){var _0x13f7ce={'raw':!![],'where':{'id':_0x142e54[_0xb8d9('0x41')]['id']}},_0x25ae38={};_0x25ae38[_0xb8d9('0x2f')]=_[_0xb8d9('0x31')](db['Tag'][_0xb8d9('0x2c')]);_0x25ae38[_0xb8d9('0x30')]=_['keys'](_0x142e54[_0xb8d9('0x30')]);_0x25ae38[_0xb8d9('0x3a')]=_['intersection'](_0x25ae38['model'],_0x25ae38[_0xb8d9('0x30')]);_0x13f7ce[_0xb8d9('0x33')]=_[_0xb8d9('0x32')](_0x25ae38[_0xb8d9('0x2f')],qs[_0xb8d9('0x34')](_0x142e54['query'][_0xb8d9('0x34')]));_0x13f7ce[_0xb8d9('0x33')]=_0x13f7ce[_0xb8d9('0x33')][_0xb8d9('0x42')]?_0x13f7ce[_0xb8d9('0x33')]:_0x25ae38[_0xb8d9('0x2f')];if(_0x142e54['query'][_0xb8d9('0x43')]){_0x13f7ce[_0xb8d9('0x44')]=[{'all':!![]}];}_0x13f7ce=_[_0xb8d9('0x45')]({},_0x13f7ce,_0x142e54[_0xb8d9('0x3e')]);return db[_0xb8d9('0x3f')][_0xb8d9('0x46')](_0x13f7ce)['then'](handleEntityNotFound(_0x496d4f,null))[_0xb8d9('0x23')](respondWithResult(_0x496d4f,null))[_0xb8d9('0x47')](handleError(_0x496d4f,null));};exports['create']=function(_0x212310,_0x41f38b){return db['Tag']['create'](_0x212310[_0xb8d9('0x48')],{})[_0xb8d9('0x23')](function(_0x3c2a57){var _0xca2c82=_0x212310[_0xb8d9('0x49')][_0xb8d9('0x25')]({'plain':!![]});if(!_0xca2c82)throw new Error(_0xb8d9('0x4a'));if(_0xca2c82['role']===_0xb8d9('0x49')){var _0x431c21=_0x3c2a57[_0xb8d9('0x25')]({'plain':!![]});var _0x53575d=_0xb8d9('0x4b');return db[_0xb8d9('0x4c')]['find']({'where':{'name':_0x53575d,'userProfileId':_0xca2c82['userProfileId']},'raw':!![]})[_0xb8d9('0x23')](function(_0x213915){if(_0x213915&&_0x213915['autoAssociation']===0x0){return db[_0xb8d9('0x26')][_0xb8d9('0x4d')]({'name':_0x431c21[_0xb8d9('0x28')],'resourceId':_0x431c21['id'],'type':_0x213915[_0xb8d9('0x28')],'sectionId':_0x213915['id']},{})['then'](function(){return _0x3c2a57;});}else{return _0x3c2a57;}})[_0xb8d9('0x47')](function(_0x3d7ea6){logger[_0xb8d9('0x4e')](_0xb8d9('0x4f'),_0x3d7ea6);throw _0x3d7ea6;});}return _0x3c2a57;})[_0xb8d9('0x23')](respondWithResult(_0x41f38b,0xc9))[_0xb8d9('0x47')](handleError(_0x41f38b,null));};exports[_0xb8d9('0x22')]=function(_0x518bb4,_0x3101da){if(_0x518bb4['body']['id']){delete _0x518bb4[_0xb8d9('0x48')]['id'];}return db[_0xb8d9('0x3f')][_0xb8d9('0x46')]({'where':{'id':_0x518bb4['params']['id']}})[_0xb8d9('0x23')](handleEntityNotFound(_0x3101da,null))[_0xb8d9('0x23')](saveUpdates(_0x518bb4[_0xb8d9('0x48')],null))[_0xb8d9('0x23')](respondWithResult(_0x3101da,null))[_0xb8d9('0x47')](handleError(_0x3101da,null));};exports[_0xb8d9('0x24')]=function(_0x4533e5,_0x3480d1){return db[_0xb8d9('0x3f')][_0xb8d9('0x46')]({'where':{'id':_0x4533e5[_0xb8d9('0x41')]['id']}})['then'](handleEntityNotFound(_0x3480d1,null))[_0xb8d9('0x23')](removeEntity(_0x3480d1,null))[_0xb8d9('0x47')](handleError(_0x3480d1,null));};