eccab8b997c623771c3d3fb20d18f261322c4599
[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 _0xb924=['key','model','query','keys','filters','attributes','fields','length','hasOwnProperty','sort','where','pick','filter','merge','options','includeAll','include','findAll','catch','show','params','intersection','create','body','user','role','UserProfileSection','userProfileId','autoAssociation','error','find','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','count','offset','limit','status','set','Content-Range','apply','save','destroy','then','get','Tags','UserProfileResource','stack','name','send','map','Tag','rawAttributes','fieldName','type'];(function(_0x2d66fd,_0x3c9415){var _0x322f24=function(_0x3aa4cc){while(--_0x3aa4cc){_0x2d66fd['push'](_0x2d66fd['shift']());}};_0x322f24(++_0x3c9415);}(_0xb924,0xbd));var _0x4b92=function(_0x403c65,_0x5d56ac){_0x403c65=_0x403c65-0x0;var _0x5f579e=_0xb924[_0x403c65];return _0x5f579e;};'use strict';var pdf=require(_0x4b92('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x4b92('0x1'));var zipdir=require(_0x4b92('0x2'));var jsonpatch=require(_0x4b92('0x3'));var rp=require(_0x4b92('0x4'));var moment=require(_0x4b92('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x4b92('0x6'));var util=require(_0x4b92('0x7'));var path=require('path');var sox=require(_0x4b92('0x8'));var csv=require(_0x4b92('0x9'));var ejs=require(_0x4b92('0xa'));var fs=require('fs');var _=require(_0x4b92('0xb'));var squel=require(_0x4b92('0xc'));var crypto=require(_0x4b92('0xd'));var jsforce=require(_0x4b92('0xe'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x4b92('0xf'));var Papa=require(_0x4b92('0x10'));var Redis=require(_0x4b92('0x11'));var authService=require(_0x4b92('0x12'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x4b92('0x13'));var logger=require(_0x4b92('0x14'))(_0x4b92('0x15'));var utils=require(_0x4b92('0x16'));var config=require(_0x4b92('0x17'));var db=require(_0x4b92('0x18'))['db'];function respondWithStatusCode(_0x390f12,_0xb55955){_0xb55955=_0xb55955||0xcc;return function(_0xd0e4ba){if(_0xd0e4ba){return _0x390f12[_0x4b92('0x19')](_0xb55955);}return _0x390f12['status'](_0xb55955)[_0x4b92('0x1a')]();};}function respondWithResult(_0x2bba8c,_0x4078a0){_0x4078a0=_0x4078a0||0xc8;return function(_0x42d0b1){if(_0x42d0b1){return _0x2bba8c['status'](_0x4078a0)['json'](_0x42d0b1);}};}function respondWithFilteredResult(_0x5a7daa,_0x12aef1){return function(_0x514aa4){if(_0x514aa4){var _0x27af5f=_0x514aa4[_0x4b92('0x1b')],_0x1531ce=_0x12aef1[_0x4b92('0x1c')],_0x18ab32=_0x12aef1['offset']+_0x12aef1[_0x4b92('0x1d')],_0x1309e0;if(_0x18ab32>=_0x27af5f){_0x18ab32=_0x27af5f;_0x1309e0=0xc8;}else{_0x1309e0=0xce;}_0x5a7daa[_0x4b92('0x1e')](_0x1309e0);return _0x5a7daa[_0x4b92('0x1f')](_0x4b92('0x20'),_0x1531ce+'-'+_0x18ab32+'/'+_0x27af5f)['json'](_0x514aa4);}return null;};}function patchUpdates(_0x527b87){return function(_0x201c23){try{jsonpatch[_0x4b92('0x21')](_0x201c23,_0x527b87,!![]);}catch(_0xa56bdb){return BPromise['reject'](_0xa56bdb);}return _0x201c23[_0x4b92('0x22')]();};}function saveUpdates(_0x1faf9b,_0x4ede81){return function(_0x16059a){if(_0x16059a){return _0x16059a['update'](_0x1faf9b)['then'](function(_0x3ef9ac){return _0x3ef9ac;});}return null;};}function removeEntity(_0x5ce859,_0x3060a7){return function(_0x1ce4a2){if(_0x1ce4a2){return _0x1ce4a2[_0x4b92('0x23')]()[_0x4b92('0x24')](function(){var _0x5507af=_0x1ce4a2[_0x4b92('0x25')]({'plain':!![]});var _0x508b13=_0x4b92('0x26');return db[_0x4b92('0x27')][_0x4b92('0x23')]({'where':{'type':_0x508b13,'resourceId':_0x5507af['id']}})['then'](function(){return _0x1ce4a2;});})[_0x4b92('0x24')](function(){_0x5ce859[_0x4b92('0x1e')](0xcc)[_0x4b92('0x1a')]();});}};}function handleEntityNotFound(_0x33c7cb,_0x15f488){return function(_0x25add7){if(!_0x25add7){_0x33c7cb[_0x4b92('0x19')](0x194);}return _0x25add7;};}function handleError(_0x528464,_0x19c56e){_0x19c56e=_0x19c56e||0x1f4;return function(_0x5bf926){logger['error'](_0x5bf926[_0x4b92('0x28')]);if(_0x5bf926[_0x4b92('0x29')]){delete _0x5bf926[_0x4b92('0x29')];}_0x528464[_0x4b92('0x1e')](_0x19c56e)[_0x4b92('0x2a')](_0x5bf926);};}exports['index']=function(_0x43bed3,_0x25b1c2){var _0x49bb60={},_0x809e9e={},_0x3dbf8f={'count':0x0,'rows':[]};var _0x19a01c=_[_0x4b92('0x2b')](db[_0x4b92('0x2c')][_0x4b92('0x2d')],function(_0xe558){return{'name':_0xe558[_0x4b92('0x2e')],'type':_0xe558[_0x4b92('0x2f')][_0x4b92('0x30')]};});_0x809e9e[_0x4b92('0x31')]=_['map'](_0x19a01c,_0x4b92('0x29'));_0x809e9e[_0x4b92('0x32')]=_[_0x4b92('0x33')](_0x43bed3[_0x4b92('0x32')]);_0x809e9e[_0x4b92('0x34')]=_['intersection'](_0x809e9e['model'],_0x809e9e[_0x4b92('0x32')]);_0x49bb60[_0x4b92('0x35')]=_['intersection'](_0x809e9e[_0x4b92('0x31')],qs[_0x4b92('0x36')](_0x43bed3[_0x4b92('0x32')]['fields']));_0x49bb60[_0x4b92('0x35')]=_0x49bb60['attributes'][_0x4b92('0x37')]?_0x49bb60[_0x4b92('0x35')]:_0x809e9e['model'];if(!_0x43bed3[_0x4b92('0x32')][_0x4b92('0x38')]('nolimit')){_0x49bb60[_0x4b92('0x1d')]=qs[_0x4b92('0x1d')](_0x43bed3[_0x4b92('0x32')][_0x4b92('0x1d')]);_0x49bb60[_0x4b92('0x1c')]=qs[_0x4b92('0x1c')](_0x43bed3[_0x4b92('0x32')][_0x4b92('0x1c')]);}_0x49bb60['order']=qs['sort'](_0x43bed3[_0x4b92('0x32')][_0x4b92('0x39')]);_0x49bb60[_0x4b92('0x3a')]=qs[_0x4b92('0x34')](_[_0x4b92('0x3b')](_0x43bed3[_0x4b92('0x32')],_0x809e9e[_0x4b92('0x34')]));if(_0x43bed3[_0x4b92('0x32')][_0x4b92('0x3c')]){_0x49bb60[_0x4b92('0x3a')]=_['merge'](_0x49bb60[_0x4b92('0x3a')],{'$or':_[_0x4b92('0x2b')](_0x19a01c,function(_0xa6427d){if(_0xa6427d[_0x4b92('0x2f')]!=='VIRTUAL'){var _0x3b8c64={};_0x3b8c64[_0xa6427d[_0x4b92('0x29')]]={'$like':'%'+_0x43bed3[_0x4b92('0x32')][_0x4b92('0x3c')]+'%'};return _0x3b8c64;}})});}_0x49bb60=_[_0x4b92('0x3d')]({},_0x49bb60,_0x43bed3[_0x4b92('0x3e')]);var _0x528a63={'where':_0x49bb60[_0x4b92('0x3a')]};return db[_0x4b92('0x2c')][_0x4b92('0x1b')](_0x528a63)[_0x4b92('0x24')](function(_0x199f7f){_0x3dbf8f[_0x4b92('0x1b')]=_0x199f7f;if(_0x43bed3[_0x4b92('0x32')][_0x4b92('0x3f')]){_0x49bb60[_0x4b92('0x40')]=[{'all':!![]}];}return db[_0x4b92('0x2c')][_0x4b92('0x41')](_0x49bb60);})['then'](function(_0x1413b1){_0x3dbf8f['rows']=_0x1413b1;return _0x3dbf8f;})[_0x4b92('0x24')](respondWithFilteredResult(_0x25b1c2,_0x49bb60))[_0x4b92('0x42')](handleError(_0x25b1c2,null));};exports[_0x4b92('0x43')]=function(_0x46b879,_0x80776b){var _0x3895db={'raw':!![],'where':{'id':_0x46b879[_0x4b92('0x44')]['id']}},_0xb848e={};_0xb848e[_0x4b92('0x31')]=_[_0x4b92('0x33')](db[_0x4b92('0x2c')][_0x4b92('0x2d')]);_0xb848e[_0x4b92('0x32')]=_[_0x4b92('0x33')](_0x46b879['query']);_0xb848e['filters']=_[_0x4b92('0x45')](_0xb848e['model'],_0xb848e[_0x4b92('0x32')]);_0x3895db[_0x4b92('0x35')]=_[_0x4b92('0x45')](_0xb848e[_0x4b92('0x31')],qs[_0x4b92('0x36')](_0x46b879[_0x4b92('0x32')]['fields']));_0x3895db[_0x4b92('0x35')]=_0x3895db[_0x4b92('0x35')][_0x4b92('0x37')]?_0x3895db[_0x4b92('0x35')]:_0xb848e[_0x4b92('0x31')];if(_0x46b879['query'][_0x4b92('0x3f')]){_0x3895db[_0x4b92('0x40')]=[{'all':!![]}];}_0x3895db=_[_0x4b92('0x3d')]({},_0x3895db,_0x46b879['options']);return db[_0x4b92('0x2c')]['find'](_0x3895db)[_0x4b92('0x24')](handleEntityNotFound(_0x80776b,null))[_0x4b92('0x24')](respondWithResult(_0x80776b,null))[_0x4b92('0x42')](handleError(_0x80776b,null));};exports['create']=function(_0x58dcb3,_0xe0381b){return db[_0x4b92('0x2c')][_0x4b92('0x46')](_0x58dcb3[_0x4b92('0x47')],{})['then'](function(_0x423fae){var _0x14e60e=_0x58dcb3[_0x4b92('0x48')][_0x4b92('0x25')]({'plain':!![]});if(!_0x14e60e)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x14e60e[_0x4b92('0x49')]===_0x4b92('0x48')){var _0x5d891d=_0x423fae[_0x4b92('0x25')]({'plain':!![]});var _0x384a14=_0x4b92('0x26');return db[_0x4b92('0x4a')]['find']({'where':{'name':_0x384a14,'userProfileId':_0x14e60e[_0x4b92('0x4b')]},'raw':!![]})['then'](function(_0x4b743a){if(_0x4b743a&&_0x4b743a[_0x4b92('0x4c')]===0x0){return db[_0x4b92('0x27')][_0x4b92('0x46')]({'name':_0x5d891d[_0x4b92('0x29')],'resourceId':_0x5d891d['id'],'type':_0x4b743a[_0x4b92('0x29')],'sectionId':_0x4b743a['id']},{})[_0x4b92('0x24')](function(){return _0x423fae;});}else{return _0x423fae;}})[_0x4b92('0x42')](function(_0xdf05d8){logger[_0x4b92('0x4d')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0xdf05d8);throw _0xdf05d8;});}return _0x423fae;})[_0x4b92('0x24')](respondWithResult(_0xe0381b,0xc9))['catch'](handleError(_0xe0381b,null));};exports['update']=function(_0x3d539a,_0x58c8ff){if(_0x3d539a['body']['id']){delete _0x3d539a['body']['id'];}return db[_0x4b92('0x2c')][_0x4b92('0x4e')]({'where':{'id':_0x3d539a[_0x4b92('0x44')]['id']}})[_0x4b92('0x24')](handleEntityNotFound(_0x58c8ff,null))[_0x4b92('0x24')](saveUpdates(_0x3d539a['body'],null))[_0x4b92('0x24')](respondWithResult(_0x58c8ff,null))['catch'](handleError(_0x58c8ff,null));};exports[_0x4b92('0x23')]=function(_0x662367,_0x28a9fe){return db[_0x4b92('0x2c')]['find']({'where':{'id':_0x662367[_0x4b92('0x44')]['id']}})[_0x4b92('0x24')](handleEntityNotFound(_0x28a9fe,null))['then'](removeEntity(_0x28a9fe,null))[_0x4b92('0x42')](handleError(_0x28a9fe,null));};