789ede8ba04c616cfe085b9487a5ccf8252c1b00
[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 _0x4746=['error','stack','name','send','index','map','Tag','rawAttributes','model','keys','query','filters','attributes','fields','length','hasOwnProperty','sort','where','pick','merge','type','VIRTUAL','options','includeAll','findAll','catch','params','intersection','include','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','save','then','destroy','get','Tags','UserProfileResource'];(function(_0x32960c,_0x491736){var _0x10d449=function(_0x161849){while(--_0x161849){_0x32960c['push'](_0x32960c['shift']());}};_0x10d449(++_0x491736);}(_0x4746,0xc6));var _0x6474=function(_0x2173ba,_0xf8d276){_0x2173ba=_0x2173ba-0x0;var _0x50fe24=_0x4746[_0x2173ba];return _0x50fe24;};'use strict';var emlformat=require(_0x6474('0x0'));var rimraf=require(_0x6474('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x6474('0x2'));var rp=require('request-promise');var moment=require(_0x6474('0x3'));var BPromise=require(_0x6474('0x4'));var Mustache=require(_0x6474('0x5'));var util=require(_0x6474('0x6'));var path=require(_0x6474('0x7'));var sox=require('sox');var csv=require(_0x6474('0x8'));var ejs=require(_0x6474('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x6474('0xa'));var squel=require(_0x6474('0xb'));var crypto=require(_0x6474('0xc'));var jsforce=require(_0x6474('0xd'));var deskjs=require(_0x6474('0xe'));var toCsv=require(_0x6474('0x8'));var querystring=require('querystring');var Papa=require(_0x6474('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x6474('0x10'));var as=require(_0x6474('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x6474('0x12'))('api');var utils=require(_0x6474('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0x6474('0x14'));var db=require(_0x6474('0x15'))['db'];function respondWithStatusCode(_0x5509d2,_0x4936c2){_0x4936c2=_0x4936c2||0xcc;return function(_0x5cf0de){if(_0x5cf0de){return _0x5509d2[_0x6474('0x16')](_0x4936c2);}return _0x5509d2[_0x6474('0x17')](_0x4936c2)[_0x6474('0x18')]();};}function respondWithResult(_0xad1ebe,_0x113aba){_0x113aba=_0x113aba||0xc8;return function(_0x37fe08){if(_0x37fe08){return _0xad1ebe[_0x6474('0x17')](_0x113aba)[_0x6474('0x19')](_0x37fe08);}};}function respondWithFilteredResult(_0x29b935,_0x5cf8fa){return function(_0x5ee279){if(_0x5ee279){var _0x583afa=typeof _0x5cf8fa[_0x6474('0x1a')]===_0x6474('0x1b')&&typeof _0x5cf8fa[_0x6474('0x1c')]===_0x6474('0x1b');var _0x195465=_0x5ee279['count'];var _0x1505fc=_0x583afa?0x0:_0x5cf8fa[_0x6474('0x1a')];var _0xb6ecb6=_0x583afa?_0x5ee279[_0x6474('0x1d')]:_0x5cf8fa[_0x6474('0x1a')]+_0x5cf8fa[_0x6474('0x1c')];var _0x2e33f0;if(_0xb6ecb6>=_0x195465){_0xb6ecb6=_0x195465;_0x2e33f0=0xc8;}else{_0x2e33f0=0xce;}_0x29b935[_0x6474('0x17')](_0x2e33f0);return _0x29b935['set'](_0x6474('0x1e'),_0x1505fc+'-'+_0xb6ecb6+'/'+_0x195465)['json'](_0x5ee279);}return null;};}function patchUpdates(_0xd23b18){return function(_0x1df53c){try{jsonpatch[_0x6474('0x1f')](_0x1df53c,_0xd23b18,!![]);}catch(_0x185760){return BPromise[_0x6474('0x20')](_0x185760);}return _0x1df53c[_0x6474('0x21')]();};}function saveUpdates(_0x382ebf,_0x5d0e5c){return function(_0xf3cd65){if(_0xf3cd65){return _0xf3cd65['update'](_0x382ebf)[_0x6474('0x22')](function(_0x4dc277){return _0x4dc277;});}return null;};}function removeEntity(_0x4ba645,_0x58e024){return function(_0xb67896){if(_0xb67896){return _0xb67896[_0x6474('0x23')]()[_0x6474('0x22')](function(){var _0x18c1b3=_0xb67896[_0x6474('0x24')]({'plain':!![]});var _0x4a9cb6=_0x6474('0x25');return db[_0x6474('0x26')][_0x6474('0x23')]({'where':{'type':_0x4a9cb6,'resourceId':_0x18c1b3['id']}})[_0x6474('0x22')](function(){return _0xb67896;});})['then'](function(){_0x4ba645['status'](0xcc)[_0x6474('0x18')]();});}};}function handleEntityNotFound(_0x12d05f,_0xca66ba){return function(_0x39a591){if(!_0x39a591){_0x12d05f['sendStatus'](0x194);}return _0x39a591;};}function handleError(_0x4dc02b,_0x542265){_0x542265=_0x542265||0x1f4;return function(_0x4b81f3){logger[_0x6474('0x27')](_0x4b81f3[_0x6474('0x28')]);if(_0x4b81f3[_0x6474('0x29')]){delete _0x4b81f3[_0x6474('0x29')];}_0x4dc02b['status'](_0x542265)[_0x6474('0x2a')](_0x4b81f3);};}exports[_0x6474('0x2b')]=function(_0xe24477,_0x2e01fa){var _0x2a3ad0={},_0x443f8c={},_0xeb1f90={'count':0x0,'rows':[]};var _0x5f2926=_[_0x6474('0x2c')](db[_0x6474('0x2d')][_0x6474('0x2e')],function(_0x34fea6){return{'name':_0x34fea6['fieldName'],'type':_0x34fea6['type']['key']};});_0x443f8c[_0x6474('0x2f')]=_[_0x6474('0x2c')](_0x5f2926,_0x6474('0x29'));_0x443f8c['query']=_[_0x6474('0x30')](_0xe24477[_0x6474('0x31')]);_0x443f8c[_0x6474('0x32')]=_['intersection'](_0x443f8c[_0x6474('0x2f')],_0x443f8c[_0x6474('0x31')]);_0x2a3ad0[_0x6474('0x33')]=_['intersection'](_0x443f8c[_0x6474('0x2f')],qs[_0x6474('0x34')](_0xe24477['query'][_0x6474('0x34')]));_0x2a3ad0[_0x6474('0x33')]=_0x2a3ad0[_0x6474('0x33')][_0x6474('0x35')]?_0x2a3ad0[_0x6474('0x33')]:_0x443f8c['model'];if(!_0xe24477[_0x6474('0x31')][_0x6474('0x36')]('nolimit')){_0x2a3ad0['limit']=qs[_0x6474('0x1c')](_0xe24477['query'][_0x6474('0x1c')]);_0x2a3ad0[_0x6474('0x1a')]=qs[_0x6474('0x1a')](_0xe24477[_0x6474('0x31')][_0x6474('0x1a')]);}_0x2a3ad0['order']=qs['sort'](_0xe24477[_0x6474('0x31')][_0x6474('0x37')]);_0x2a3ad0[_0x6474('0x38')]=qs['filters'](_[_0x6474('0x39')](_0xe24477['query'],_0x443f8c[_0x6474('0x32')]),_0x5f2926);if(_0xe24477['query']['filter']){_0x2a3ad0['where']=_[_0x6474('0x3a')](_0x2a3ad0[_0x6474('0x38')],{'$or':_[_0x6474('0x2c')](_0x5f2926,function(_0xe2a64c){if(_0xe2a64c[_0x6474('0x3b')]!==_0x6474('0x3c')){var _0x52497f={};_0x52497f[_0xe2a64c[_0x6474('0x29')]]={'$like':'%'+_0xe24477[_0x6474('0x31')]['filter']+'%'};return _0x52497f;}})});}_0x2a3ad0=_[_0x6474('0x3a')]({},_0x2a3ad0,_0xe24477[_0x6474('0x3d')]);var _0x462908={'where':_0x2a3ad0['where']};return db[_0x6474('0x2d')][_0x6474('0x1d')](_0x462908)[_0x6474('0x22')](function(_0x47fa33){_0xeb1f90['count']=_0x47fa33;if(_0xe24477[_0x6474('0x31')][_0x6474('0x3e')]){_0x2a3ad0['include']=[{'all':!![]}];}return db[_0x6474('0x2d')][_0x6474('0x3f')](_0x2a3ad0);})[_0x6474('0x22')](function(_0x1a4bde){_0xeb1f90['rows']=_0x1a4bde;return _0xeb1f90;})['then'](respondWithFilteredResult(_0x2e01fa,_0x2a3ad0))[_0x6474('0x40')](handleError(_0x2e01fa,null));};exports['show']=function(_0x391be9,_0x25cb5b){var _0x1ff044={'raw':!![],'where':{'id':_0x391be9[_0x6474('0x41')]['id']}},_0x54e797={};_0x54e797[_0x6474('0x2f')]=_['keys'](db[_0x6474('0x2d')][_0x6474('0x2e')]);_0x54e797[_0x6474('0x31')]=_[_0x6474('0x30')](_0x391be9[_0x6474('0x31')]);_0x54e797[_0x6474('0x32')]=_[_0x6474('0x42')](_0x54e797['model'],_0x54e797[_0x6474('0x31')]);_0x1ff044[_0x6474('0x33')]=_['intersection'](_0x54e797[_0x6474('0x2f')],qs[_0x6474('0x34')](_0x391be9['query']['fields']));_0x1ff044['attributes']=_0x1ff044['attributes'][_0x6474('0x35')]?_0x1ff044[_0x6474('0x33')]:_0x54e797[_0x6474('0x2f')];if(_0x391be9[_0x6474('0x31')]['includeAll']){_0x1ff044[_0x6474('0x43')]=[{'all':!![]}];}_0x1ff044=_[_0x6474('0x3a')]({},_0x1ff044,_0x391be9[_0x6474('0x3d')]);return db[_0x6474('0x2d')][_0x6474('0x44')](_0x1ff044)[_0x6474('0x22')](handleEntityNotFound(_0x25cb5b,null))['then'](respondWithResult(_0x25cb5b,null))[_0x6474('0x40')](handleError(_0x25cb5b,null));};exports[_0x6474('0x45')]=function(_0x394ff9,_0x495666){return db[_0x6474('0x2d')][_0x6474('0x45')](_0x394ff9['body'],{})[_0x6474('0x22')](function(_0xfc538f){var _0x228a16=_0x394ff9[_0x6474('0x46')][_0x6474('0x24')]({'plain':!![]});if(!_0x228a16)throw new Error(_0x6474('0x47'));if(_0x228a16[_0x6474('0x48')]==='user'){var _0x27ebf9=_0xfc538f[_0x6474('0x24')]({'plain':!![]});var _0x231a02='Tags';return db[_0x6474('0x49')][_0x6474('0x44')]({'where':{'name':_0x231a02,'userProfileId':_0x228a16[_0x6474('0x4a')]},'raw':!![]})['then'](function(_0x5d2c92){if(_0x5d2c92&&_0x5d2c92[_0x6474('0x4b')]===0x0){return db[_0x6474('0x26')]['create']({'name':_0x27ebf9['name'],'resourceId':_0x27ebf9['id'],'type':_0x5d2c92[_0x6474('0x29')],'sectionId':_0x5d2c92['id']},{})['then'](function(){return _0xfc538f;});}else{return _0xfc538f;}})[_0x6474('0x40')](function(_0x409e55){logger[_0x6474('0x27')](_0x6474('0x4c'),_0x409e55);throw _0x409e55;});}return _0xfc538f;})[_0x6474('0x22')](respondWithResult(_0x495666,0xc9))[_0x6474('0x40')](handleError(_0x495666,null));};exports[_0x6474('0x4d')]=function(_0x451080,_0x471372){if(_0x451080[_0x6474('0x4e')]['id']){delete _0x451080[_0x6474('0x4e')]['id'];}return db[_0x6474('0x2d')][_0x6474('0x44')]({'where':{'id':_0x451080['params']['id']}})[_0x6474('0x22')](handleEntityNotFound(_0x471372,null))['then'](saveUpdates(_0x451080['body'],null))[_0x6474('0x22')](respondWithResult(_0x471372,null))[_0x6474('0x40')](handleError(_0x471372,null));};exports[_0x6474('0x23')]=function(_0x2a79d4,_0x5c245d){return db[_0x6474('0x2d')][_0x6474('0x44')]({'where':{'id':_0x2a79d4[_0x6474('0x41')]['id']}})[_0x6474('0x22')](handleEntityNotFound(_0x5c245d,null))[_0x6474('0x22')](removeEntity(_0x5c245d,null))[_0x6474('0x40')](handleError(_0x5c245d,null));};