8cd7ef4d7f69c2f174877ec201a8c4381a8556b0
[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 _0xe6b4=['json','offset','limit','count','set','Content-Range','apply','reject','save','update','destroy','get','Tags','UserProfileResource','then','stack','name','send','index','Tag','rawAttributes','fieldName','type','key','model','map','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filters','pick','filter','merge','findAll','rows','catch','show','params','keys','includeAll','include','options','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end'];(function(_0x50e545,_0x342948){var _0x181af8=function(_0x369add){while(--_0x369add){_0x50e545['push'](_0x50e545['shift']());}};_0x181af8(++_0x342948);}(_0xe6b4,0x188));var _0x4e6b=function(_0x42cae2,_0x284ef8){_0x42cae2=_0x42cae2-0x0;var _0x5f256f=_0xe6b4[_0x42cae2];return _0x5f256f;};'use strict';var emlformat=require(_0x4e6b('0x0'));var rimraf=require(_0x4e6b('0x1'));var zipdir=require(_0x4e6b('0x2'));var jsonpatch=require(_0x4e6b('0x3'));var rp=require(_0x4e6b('0x4'));var moment=require(_0x4e6b('0x5'));var BPromise=require(_0x4e6b('0x6'));var Mustache=require('mustache');var util=require(_0x4e6b('0x7'));var path=require('path');var sox=require(_0x4e6b('0x8'));var csv=require(_0x4e6b('0x9'));var ejs=require(_0x4e6b('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x4e6b('0xb'));var squel=require(_0x4e6b('0xc'));var crypto=require(_0x4e6b('0xd'));var jsforce=require(_0x4e6b('0xe'));var deskjs=require(_0x4e6b('0xf'));var toCsv=require(_0x4e6b('0x9'));var querystring=require(_0x4e6b('0x10'));var Papa=require('papaparse');var Redis=require(_0x4e6b('0x11'));var authService=require(_0x4e6b('0x12'));var qs=require(_0x4e6b('0x13'));var as=require(_0x4e6b('0x14'));var hardwareService=require(_0x4e6b('0x15'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0x4e6b('0x16'));var licenseUtil=require(_0x4e6b('0x17'));var db=require(_0x4e6b('0x18'))['db'];function respondWithStatusCode(_0x5dae80,_0x1222bb){_0x1222bb=_0x1222bb||0xcc;return function(_0x59a0c3){if(_0x59a0c3){return _0x5dae80[_0x4e6b('0x19')](_0x1222bb);}return _0x5dae80[_0x4e6b('0x1a')](_0x1222bb)[_0x4e6b('0x1b')]();};}function respondWithResult(_0x4067a0,_0x3034c0){_0x3034c0=_0x3034c0||0xc8;return function(_0x250629){if(_0x250629){return _0x4067a0[_0x4e6b('0x1a')](_0x3034c0)[_0x4e6b('0x1c')](_0x250629);}};}function respondWithFilteredResult(_0x1ca245,_0x57caf2){return function(_0x14f822){if(_0x14f822){var _0x19df80=typeof _0x57caf2[_0x4e6b('0x1d')]==='undefined'&&typeof _0x57caf2[_0x4e6b('0x1e')]==='undefined';var _0x281f00=_0x14f822[_0x4e6b('0x1f')];var _0x56bd4f=_0x19df80?0x0:_0x57caf2[_0x4e6b('0x1d')];var _0x2107f1=_0x19df80?_0x14f822[_0x4e6b('0x1f')]:_0x57caf2[_0x4e6b('0x1d')]+_0x57caf2[_0x4e6b('0x1e')];var _0x5183b1;if(_0x2107f1>=_0x281f00){_0x2107f1=_0x281f00;_0x5183b1=0xc8;}else{_0x5183b1=0xce;}_0x1ca245[_0x4e6b('0x1a')](_0x5183b1);return _0x1ca245[_0x4e6b('0x20')](_0x4e6b('0x21'),_0x56bd4f+'-'+_0x2107f1+'/'+_0x281f00)[_0x4e6b('0x1c')](_0x14f822);}return null;};}function patchUpdates(_0xe5dba8){return function(_0x5ca255){try{jsonpatch[_0x4e6b('0x22')](_0x5ca255,_0xe5dba8,!![]);}catch(_0x3593ab){return BPromise[_0x4e6b('0x23')](_0x3593ab);}return _0x5ca255[_0x4e6b('0x24')]();};}function saveUpdates(_0x30dfd0,_0x1bd0b2){return function(_0x8fcef5){if(_0x8fcef5){return _0x8fcef5[_0x4e6b('0x25')](_0x30dfd0)['then'](function(_0x66e968){return _0x66e968;});}return null;};}function removeEntity(_0x41beab,_0x3c31d8){return function(_0x10ae5a){if(_0x10ae5a){return _0x10ae5a[_0x4e6b('0x26')]()['then'](function(){var _0x5bda85=_0x10ae5a[_0x4e6b('0x27')]({'plain':!![]});var _0x59019a=_0x4e6b('0x28');return db[_0x4e6b('0x29')][_0x4e6b('0x26')]({'where':{'type':_0x59019a,'resourceId':_0x5bda85['id']}})[_0x4e6b('0x2a')](function(){return _0x10ae5a;});})['then'](function(){_0x41beab['status'](0xcc)[_0x4e6b('0x1b')]();});}};}function handleEntityNotFound(_0x25c08e,_0x336246){return function(_0x3731ed){if(!_0x3731ed){_0x25c08e[_0x4e6b('0x19')](0x194);}return _0x3731ed;};}function handleError(_0x1bdde2,_0x4acf7f){_0x4acf7f=_0x4acf7f||0x1f4;return function(_0x41cd38){logger['error'](_0x41cd38[_0x4e6b('0x2b')]);if(_0x41cd38['name']){delete _0x41cd38[_0x4e6b('0x2c')];}_0x1bdde2[_0x4e6b('0x1a')](_0x4acf7f)[_0x4e6b('0x2d')](_0x41cd38);};}exports[_0x4e6b('0x2e')]=function(_0x477a6a,_0x5da823){var _0x7566dd={},_0x521540={},_0x2bcd35={'count':0x0,'rows':[]};var _0x533b4f=_['map'](db[_0x4e6b('0x2f')][_0x4e6b('0x30')],function(_0x988a2b){return{'name':_0x988a2b[_0x4e6b('0x31')],'type':_0x988a2b[_0x4e6b('0x32')][_0x4e6b('0x33')]};});_0x521540[_0x4e6b('0x34')]=_[_0x4e6b('0x35')](_0x533b4f,_0x4e6b('0x2c'));_0x521540['query']=_['keys'](_0x477a6a[_0x4e6b('0x36')]);_0x521540['filters']=_[_0x4e6b('0x37')](_0x521540['model'],_0x521540['query']);_0x7566dd[_0x4e6b('0x38')]=_[_0x4e6b('0x37')](_0x521540[_0x4e6b('0x34')],qs[_0x4e6b('0x39')](_0x477a6a['query']['fields']));_0x7566dd[_0x4e6b('0x38')]=_0x7566dd[_0x4e6b('0x38')][_0x4e6b('0x3a')]?_0x7566dd['attributes']:_0x521540[_0x4e6b('0x34')];if(!_0x477a6a['query'][_0x4e6b('0x3b')](_0x4e6b('0x3c'))){_0x7566dd[_0x4e6b('0x1e')]=qs[_0x4e6b('0x1e')](_0x477a6a[_0x4e6b('0x36')][_0x4e6b('0x1e')]);_0x7566dd[_0x4e6b('0x1d')]=qs[_0x4e6b('0x1d')](_0x477a6a[_0x4e6b('0x36')][_0x4e6b('0x1d')]);}_0x7566dd['order']=qs['sort'](_0x477a6a[_0x4e6b('0x36')][_0x4e6b('0x3d')]);_0x7566dd[_0x4e6b('0x3e')]=qs[_0x4e6b('0x3f')](_[_0x4e6b('0x40')](_0x477a6a[_0x4e6b('0x36')],_0x521540[_0x4e6b('0x3f')]),_0x533b4f);if(_0x477a6a[_0x4e6b('0x36')][_0x4e6b('0x41')]){_0x7566dd[_0x4e6b('0x3e')]=_['merge'](_0x7566dd[_0x4e6b('0x3e')],{'$or':_['map'](_0x533b4f,function(_0x114925){if(_0x114925[_0x4e6b('0x32')]!=='VIRTUAL'){var _0xf71936={};_0xf71936[_0x114925[_0x4e6b('0x2c')]]={'$like':'%'+_0x477a6a['query'][_0x4e6b('0x41')]+'%'};return _0xf71936;}})});}_0x7566dd=_[_0x4e6b('0x42')]({},_0x7566dd,_0x477a6a['options']);var _0x36dd3c={'where':_0x7566dd[_0x4e6b('0x3e')]};return db[_0x4e6b('0x2f')][_0x4e6b('0x1f')](_0x36dd3c)[_0x4e6b('0x2a')](function(_0x3069dd){_0x2bcd35[_0x4e6b('0x1f')]=_0x3069dd;if(_0x477a6a[_0x4e6b('0x36')]['includeAll']){_0x7566dd['include']=[{'all':!![]}];}return db[_0x4e6b('0x2f')][_0x4e6b('0x43')](_0x7566dd);})[_0x4e6b('0x2a')](function(_0x46275c){_0x2bcd35[_0x4e6b('0x44')]=_0x46275c;return _0x2bcd35;})[_0x4e6b('0x2a')](respondWithFilteredResult(_0x5da823,_0x7566dd))[_0x4e6b('0x45')](handleError(_0x5da823,null));};exports[_0x4e6b('0x46')]=function(_0x222725,_0xfe4f98){var _0x29a517={'raw':!![],'where':{'id':_0x222725[_0x4e6b('0x47')]['id']}},_0x36dc68={};_0x36dc68[_0x4e6b('0x34')]=_[_0x4e6b('0x48')](db[_0x4e6b('0x2f')][_0x4e6b('0x30')]);_0x36dc68[_0x4e6b('0x36')]=_['keys'](_0x222725[_0x4e6b('0x36')]);_0x36dc68[_0x4e6b('0x3f')]=_[_0x4e6b('0x37')](_0x36dc68[_0x4e6b('0x34')],_0x36dc68[_0x4e6b('0x36')]);_0x29a517['attributes']=_['intersection'](_0x36dc68[_0x4e6b('0x34')],qs[_0x4e6b('0x39')](_0x222725[_0x4e6b('0x36')]['fields']));_0x29a517[_0x4e6b('0x38')]=_0x29a517[_0x4e6b('0x38')][_0x4e6b('0x3a')]?_0x29a517['attributes']:_0x36dc68[_0x4e6b('0x34')];if(_0x222725[_0x4e6b('0x36')][_0x4e6b('0x49')]){_0x29a517[_0x4e6b('0x4a')]=[{'all':!![]}];}_0x29a517=_[_0x4e6b('0x42')]({},_0x29a517,_0x222725[_0x4e6b('0x4b')]);return db[_0x4e6b('0x2f')][_0x4e6b('0x4c')](_0x29a517)[_0x4e6b('0x2a')](handleEntityNotFound(_0xfe4f98,null))[_0x4e6b('0x2a')](respondWithResult(_0xfe4f98,null))[_0x4e6b('0x45')](handleError(_0xfe4f98,null));};exports[_0x4e6b('0x4d')]=function(_0x31828,_0x54cf9b){return db[_0x4e6b('0x2f')][_0x4e6b('0x4d')](_0x31828[_0x4e6b('0x4e')],{})[_0x4e6b('0x2a')](function(_0x11bdac){var _0x1cef6f=_0x31828[_0x4e6b('0x4f')][_0x4e6b('0x27')]({'plain':!![]});if(!_0x1cef6f)throw new Error(_0x4e6b('0x50'));if(_0x1cef6f[_0x4e6b('0x51')]===_0x4e6b('0x4f')){var _0x475edd=_0x11bdac[_0x4e6b('0x27')]({'plain':!![]});var _0x591b1d=_0x4e6b('0x28');return db[_0x4e6b('0x52')]['find']({'where':{'name':_0x591b1d,'userProfileId':_0x1cef6f['userProfileId']},'raw':!![]})[_0x4e6b('0x2a')](function(_0x1a455a){if(_0x1a455a&&_0x1a455a['autoAssociation']===0x0){return db['UserProfileResource']['create']({'name':_0x475edd[_0x4e6b('0x2c')],'resourceId':_0x475edd['id'],'type':_0x1a455a['name'],'sectionId':_0x1a455a['id']},{})['then'](function(){return _0x11bdac;});}else{return _0x11bdac;}})[_0x4e6b('0x45')](function(_0x10fabd){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x10fabd);throw _0x10fabd;});}return _0x11bdac;})[_0x4e6b('0x2a')](respondWithResult(_0x54cf9b,0xc9))[_0x4e6b('0x45')](handleError(_0x54cf9b,null));};exports[_0x4e6b('0x25')]=function(_0x3e6529,_0x5d4786){if(_0x3e6529[_0x4e6b('0x4e')]['id']){delete _0x3e6529[_0x4e6b('0x4e')]['id'];}return db['Tag']['find']({'where':{'id':_0x3e6529[_0x4e6b('0x47')]['id']}})['then'](handleEntityNotFound(_0x5d4786,null))['then'](saveUpdates(_0x3e6529['body'],null))[_0x4e6b('0x2a')](respondWithResult(_0x5d4786,null))['catch'](handleError(_0x5d4786,null));};exports[_0x4e6b('0x26')]=function(_0x552dd8,_0x12abd1){return db[_0x4e6b('0x2f')][_0x4e6b('0x4c')]({'where':{'id':_0x552dd8[_0x4e6b('0x47')]['id']}})[_0x4e6b('0x2a')](handleEntityNotFound(_0x12abd1,null))[_0x4e6b('0x2a')](removeEntity(_0x12abd1,null))[_0x4e6b('0x45')](handleError(_0x12abd1,null));};exports[_0x4e6b('0x53')]=function(_0x564f38,_0x2d7e6f){return db[_0x4e6b('0x2f')][_0x4e6b('0x53')]()['then'](respondWithResult(_0x2d7e6f,null))[_0x4e6b('0x45')](handleError(_0x2d7e6f,null));};