394006921490ce210c17632ba94ce7f7608397fa
[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 _0x9b9b=['model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','sort','filter','where','merge','options','includeAll','rows','show','params','include','find','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','Tags','UserProfileSection','userProfileId','autoAssociation','error','rimraf','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','end','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','destroy','then','get','UserProfileResource','sendStatus','stack','name','send','index','map','Tag','rawAttributes','type','key'];(function(_0x16d8db,_0x6a1999){var _0x51ca48=function(_0x412e25){while(--_0x412e25){_0x16d8db['push'](_0x16d8db['shift']());}};_0x51ca48(++_0x6a1999);}(_0x9b9b,0x114));var _0xb9b9=function(_0x7b544a,_0x33c45a){_0x7b544a=_0x7b544a-0x0;var _0x33dcb4=_0x9b9b[_0x7b544a];return _0x33dcb4;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xb9b9('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xb9b9('0x1'));var moment=require(_0xb9b9('0x2'));var BPromise=require(_0xb9b9('0x3'));var Mustache=require(_0xb9b9('0x4'));var util=require(_0xb9b9('0x5'));var path=require(_0xb9b9('0x6'));var sox=require(_0xb9b9('0x7'));var csv=require(_0xb9b9('0x8'));var ejs=require(_0xb9b9('0x9'));var fs=require('fs');var fs_extra=require(_0xb9b9('0xa'));var _=require(_0xb9b9('0xb'));var squel=require(_0xb9b9('0xc'));var crypto=require(_0xb9b9('0xd'));var jsforce=require(_0xb9b9('0xe'));var deskjs=require(_0xb9b9('0xf'));var toCsv=require(_0xb9b9('0x8'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xb9b9('0x10'));var authService=require(_0xb9b9('0x11'));var qs=require(_0xb9b9('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb9b9('0x13'));var logger=require(_0xb9b9('0x14'))(_0xb9b9('0x15'));var utils=require('../../config/utils');var config=require(_0xb9b9('0x16'));var licenseUtil=require(_0xb9b9('0x17'));var db=require(_0xb9b9('0x18'))['db'];function respondWithStatusCode(_0x26fa04,_0x230fea){_0x230fea=_0x230fea||0xcc;return function(_0x135cdc){if(_0x135cdc){return _0x26fa04['sendStatus'](_0x230fea);}return _0x26fa04['status'](_0x230fea)[_0xb9b9('0x19')]();};}function respondWithResult(_0x4ef543,_0xe78d58){_0xe78d58=_0xe78d58||0xc8;return function(_0x50e5d6){if(_0x50e5d6){return _0x4ef543[_0xb9b9('0x1a')](_0xe78d58)[_0xb9b9('0x1b')](_0x50e5d6);}};}function respondWithFilteredResult(_0x21fa2a,_0x29794c){return function(_0x177ad9){if(_0x177ad9){var _0x3fd09c=typeof _0x29794c[_0xb9b9('0x1c')]===_0xb9b9('0x1d')&&typeof _0x29794c['limit']===_0xb9b9('0x1d');var _0x48d9ae=_0x177ad9[_0xb9b9('0x1e')];var _0x3e6d23=_0x3fd09c?0x0:_0x29794c[_0xb9b9('0x1c')];var _0x11bb05=_0x3fd09c?_0x177ad9['count']:_0x29794c[_0xb9b9('0x1c')]+_0x29794c[_0xb9b9('0x1f')];var _0x398f3d;if(_0x11bb05>=_0x48d9ae){_0x11bb05=_0x48d9ae;_0x398f3d=0xc8;}else{_0x398f3d=0xce;}_0x21fa2a[_0xb9b9('0x1a')](_0x398f3d);return _0x21fa2a[_0xb9b9('0x20')](_0xb9b9('0x21'),_0x3e6d23+'-'+_0x11bb05+'/'+_0x48d9ae)[_0xb9b9('0x1b')](_0x177ad9);}return null;};}function patchUpdates(_0x3d0edb){return function(_0xb16391){try{jsonpatch[_0xb9b9('0x22')](_0xb16391,_0x3d0edb,!![]);}catch(_0xbf7c16){return BPromise[_0xb9b9('0x23')](_0xbf7c16);}return _0xb16391[_0xb9b9('0x24')]();};}function saveUpdates(_0x4e33a0,_0x10b7e1){return function(_0xe1e1d7){if(_0xe1e1d7){return _0xe1e1d7[_0xb9b9('0x25')](_0x4e33a0)['then'](function(_0x9898bc){return _0x9898bc;});}return null;};}function removeEntity(_0x46525d,_0x5efa01){return function(_0x18e2ca){if(_0x18e2ca){return _0x18e2ca[_0xb9b9('0x26')]()[_0xb9b9('0x27')](function(){var _0x40b801=_0x18e2ca[_0xb9b9('0x28')]({'plain':!![]});var _0x5299fb='Tags';return db[_0xb9b9('0x29')][_0xb9b9('0x26')]({'where':{'type':_0x5299fb,'resourceId':_0x40b801['id']}})['then'](function(){return _0x18e2ca;});})[_0xb9b9('0x27')](function(){_0x46525d[_0xb9b9('0x1a')](0xcc)[_0xb9b9('0x19')]();});}};}function handleEntityNotFound(_0x21f68f,_0x125f6c){return function(_0x54bf18){if(!_0x54bf18){_0x21f68f[_0xb9b9('0x2a')](0x194);}return _0x54bf18;};}function handleError(_0x554850,_0x1e0c5e){_0x1e0c5e=_0x1e0c5e||0x1f4;return function(_0xe28f3c){logger['error'](_0xe28f3c[_0xb9b9('0x2b')]);if(_0xe28f3c[_0xb9b9('0x2c')]){delete _0xe28f3c[_0xb9b9('0x2c')];}_0x554850['status'](_0x1e0c5e)[_0xb9b9('0x2d')](_0xe28f3c);};}exports[_0xb9b9('0x2e')]=function(_0x2e1d12,_0x300453){var _0x4f002a={},_0xc40dda={},_0xdbc1f1={'count':0x0,'rows':[]};var _0x49757e=_[_0xb9b9('0x2f')](db[_0xb9b9('0x30')][_0xb9b9('0x31')],function(_0xc47845){return{'name':_0xc47845['fieldName'],'type':_0xc47845[_0xb9b9('0x32')][_0xb9b9('0x33')]};});_0xc40dda[_0xb9b9('0x34')]=_[_0xb9b9('0x2f')](_0x49757e,'name');_0xc40dda[_0xb9b9('0x35')]=_[_0xb9b9('0x36')](_0x2e1d12['query']);_0xc40dda[_0xb9b9('0x37')]=_[_0xb9b9('0x38')](_0xc40dda[_0xb9b9('0x34')],_0xc40dda[_0xb9b9('0x35')]);_0x4f002a[_0xb9b9('0x39')]=_[_0xb9b9('0x38')](_0xc40dda['model'],qs[_0xb9b9('0x3a')](_0x2e1d12[_0xb9b9('0x35')]['fields']));_0x4f002a[_0xb9b9('0x39')]=_0x4f002a[_0xb9b9('0x39')][_0xb9b9('0x3b')]?_0x4f002a['attributes']:_0xc40dda[_0xb9b9('0x34')];if(!_0x2e1d12['query'][_0xb9b9('0x3c')]('nolimit')){_0x4f002a[_0xb9b9('0x1f')]=qs[_0xb9b9('0x1f')](_0x2e1d12[_0xb9b9('0x35')][_0xb9b9('0x1f')]);_0x4f002a[_0xb9b9('0x1c')]=qs[_0xb9b9('0x1c')](_0x2e1d12[_0xb9b9('0x35')]['offset']);}_0x4f002a['order']=qs[_0xb9b9('0x3d')](_0x2e1d12[_0xb9b9('0x35')][_0xb9b9('0x3d')]);_0x4f002a['where']=qs[_0xb9b9('0x37')](_['pick'](_0x2e1d12[_0xb9b9('0x35')],_0xc40dda[_0xb9b9('0x37')]),_0x49757e);if(_0x2e1d12[_0xb9b9('0x35')][_0xb9b9('0x3e')]){_0x4f002a[_0xb9b9('0x3f')]=_[_0xb9b9('0x40')](_0x4f002a[_0xb9b9('0x3f')],{'$or':_[_0xb9b9('0x2f')](_0x49757e,function(_0x496cf){if(_0x496cf[_0xb9b9('0x32')]!=='VIRTUAL'){var _0xf484fd={};_0xf484fd[_0x496cf[_0xb9b9('0x2c')]]={'$like':'%'+_0x2e1d12[_0xb9b9('0x35')][_0xb9b9('0x3e')]+'%'};return _0xf484fd;}})});}_0x4f002a=_[_0xb9b9('0x40')]({},_0x4f002a,_0x2e1d12[_0xb9b9('0x41')]);var _0x36717c={'where':_0x4f002a[_0xb9b9('0x3f')]};return db[_0xb9b9('0x30')][_0xb9b9('0x1e')](_0x36717c)['then'](function(_0x357b9c){_0xdbc1f1[_0xb9b9('0x1e')]=_0x357b9c;if(_0x2e1d12[_0xb9b9('0x35')][_0xb9b9('0x42')]){_0x4f002a['include']=[{'all':!![]}];}return db[_0xb9b9('0x30')]['findAll'](_0x4f002a);})['then'](function(_0x3e374e){_0xdbc1f1[_0xb9b9('0x43')]=_0x3e374e;return _0xdbc1f1;})['then'](respondWithFilteredResult(_0x300453,_0x4f002a))['catch'](handleError(_0x300453,null));};exports[_0xb9b9('0x44')]=function(_0x1a5888,_0x375543){var _0x3f4388={'raw':!![],'where':{'id':_0x1a5888[_0xb9b9('0x45')]['id']}},_0x493786={};_0x493786[_0xb9b9('0x34')]=_[_0xb9b9('0x36')](db['Tag']['rawAttributes']);_0x493786[_0xb9b9('0x35')]=_['keys'](_0x1a5888[_0xb9b9('0x35')]);_0x493786[_0xb9b9('0x37')]=_[_0xb9b9('0x38')](_0x493786[_0xb9b9('0x34')],_0x493786['query']);_0x3f4388[_0xb9b9('0x39')]=_[_0xb9b9('0x38')](_0x493786[_0xb9b9('0x34')],qs[_0xb9b9('0x3a')](_0x1a5888[_0xb9b9('0x35')][_0xb9b9('0x3a')]));_0x3f4388[_0xb9b9('0x39')]=_0x3f4388[_0xb9b9('0x39')][_0xb9b9('0x3b')]?_0x3f4388[_0xb9b9('0x39')]:_0x493786[_0xb9b9('0x34')];if(_0x1a5888[_0xb9b9('0x35')]['includeAll']){_0x3f4388[_0xb9b9('0x46')]=[{'all':!![]}];}_0x3f4388=_['merge']({},_0x3f4388,_0x1a5888[_0xb9b9('0x41')]);return db[_0xb9b9('0x30')][_0xb9b9('0x47')](_0x3f4388)[_0xb9b9('0x27')](handleEntityNotFound(_0x375543,null))['then'](respondWithResult(_0x375543,null))[_0xb9b9('0x48')](handleError(_0x375543,null));};exports['create']=function(_0x2b3e22,_0x576c06){return db[_0xb9b9('0x30')][_0xb9b9('0x49')](_0x2b3e22[_0xb9b9('0x4a')],{})[_0xb9b9('0x27')](function(_0x25bfa1){var _0x1a406c=_0x2b3e22[_0xb9b9('0x4b')][_0xb9b9('0x28')]({'plain':!![]});if(!_0x1a406c)throw new Error(_0xb9b9('0x4c'));if(_0x1a406c['role']==='user'){var _0x4da7d8=_0x25bfa1[_0xb9b9('0x28')]({'plain':!![]});var _0x504c1d=_0xb9b9('0x4d');return db[_0xb9b9('0x4e')][_0xb9b9('0x47')]({'where':{'name':_0x504c1d,'userProfileId':_0x1a406c[_0xb9b9('0x4f')]},'raw':!![]})['then'](function(_0x39c444){if(_0x39c444&&_0x39c444[_0xb9b9('0x50')]===0x0){return db['UserProfileResource'][_0xb9b9('0x49')]({'name':_0x4da7d8[_0xb9b9('0x2c')],'resourceId':_0x4da7d8['id'],'type':_0x39c444['name'],'sectionId':_0x39c444['id']},{})['then'](function(){return _0x25bfa1;});}else{return _0x25bfa1;}})[_0xb9b9('0x48')](function(_0x2bbe9f){logger[_0xb9b9('0x51')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2bbe9f);throw _0x2bbe9f;});}return _0x25bfa1;})[_0xb9b9('0x27')](respondWithResult(_0x576c06,0xc9))[_0xb9b9('0x48')](handleError(_0x576c06,null));};exports['update']=function(_0x17b032,_0xb0b883){if(_0x17b032[_0xb9b9('0x4a')]['id']){delete _0x17b032[_0xb9b9('0x4a')]['id'];}return db['Tag'][_0xb9b9('0x47')]({'where':{'id':_0x17b032[_0xb9b9('0x45')]['id']}})[_0xb9b9('0x27')](handleEntityNotFound(_0xb0b883,null))['then'](saveUpdates(_0x17b032[_0xb9b9('0x4a')],null))[_0xb9b9('0x27')](respondWithResult(_0xb0b883,null))[_0xb9b9('0x48')](handleError(_0xb0b883,null));};exports[_0xb9b9('0x26')]=function(_0x1e88f1,_0x49956d){return db['Tag'][_0xb9b9('0x47')]({'where':{'id':_0x1e88f1[_0xb9b9('0x45')]['id']}})[_0xb9b9('0x27')](handleEntityNotFound(_0x49956d,null))[_0xb9b9('0x27')](removeEntity(_0x49956d,null))[_0xb9b9('0x48')](handleError(_0x49956d,null));};