7f1a1f3984fcf9c2b70489434d76ee04a9517ead
[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 _0x5a55=['user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','html-pdf','rimraf','fast-json-patch','request-promise','bluebird','util','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','Tags','UserProfileResource','sendStatus','error','stack','name','send','index','Tag','fieldName','type','key','query','keys','filters','intersection','attributes','fields','length','model','hasOwnProperty','order','sort','where','pick','filter','merge','map','VIRTUAL','options','count','includeAll','include','findAll','rows','catch','show','params','find','create','body'];(function(_0x27c780,_0x26b2ad){var _0x45b2dc=function(_0x3ff8c9){while(--_0x3ff8c9){_0x27c780['push'](_0x27c780['shift']());}};_0x45b2dc(++_0x26b2ad);}(_0x5a55,0x150));var _0x55a5=function(_0x541a67,_0x50728d){_0x541a67=_0x541a67-0x0;var _0x45da2a=_0x5a55[_0x541a67];return _0x45da2a;};'use strict';var pdf=require(_0x55a5('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x55a5('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x55a5('0x2'));var rp=require(_0x55a5('0x3'));var moment=require('moment');var BPromise=require(_0x55a5('0x4'));var Mustache=require('mustache');var util=require(_0x55a5('0x5'));var path=require('path');var sox=require(_0x55a5('0x6'));var csv=require(_0x55a5('0x7'));var ejs=require(_0x55a5('0x8'));var fs=require('fs');var _=require(_0x55a5('0x9'));var squel=require('squel');var crypto=require(_0x55a5('0xa'));var jsforce=require(_0x55a5('0xb'));var deskjs=require(_0x55a5('0xc'));var toCsv=require(_0x55a5('0x7'));var querystring=require('querystring');var Papa=require(_0x55a5('0xd'));var Redis=require('ioredis');var authService=require(_0x55a5('0xe'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x55a5('0xf'));var logger=require(_0x55a5('0x10'))('api');var utils=require('../../config/utils');var config=require(_0x55a5('0x11'));var licenseUtil=require(_0x55a5('0x12'));var db=require(_0x55a5('0x13'))['db'];function respondWithStatusCode(_0x4d8613,_0x3b4c01){_0x3b4c01=_0x3b4c01||0xcc;return function(_0x4094b5){if(_0x4094b5){return _0x4d8613['sendStatus'](_0x3b4c01);}return _0x4d8613[_0x55a5('0x14')](_0x3b4c01)[_0x55a5('0x15')]();};}function respondWithResult(_0x3a8538,_0x536fcc){_0x536fcc=_0x536fcc||0xc8;return function(_0x514080){if(_0x514080){return _0x3a8538[_0x55a5('0x14')](_0x536fcc)[_0x55a5('0x16')](_0x514080);}};}function respondWithFilteredResult(_0x2798cd,_0xae5de3){return function(_0x1dddbf){if(_0x1dddbf){var _0x59791e=_0x1dddbf['count'],_0xbbc70a=_0xae5de3[_0x55a5('0x17')],_0x4713a9=_0xae5de3['offset']+_0xae5de3[_0x55a5('0x18')],_0x4fc3d2;if(_0x4713a9>=_0x59791e){_0x4713a9=_0x59791e;_0x4fc3d2=0xc8;}else{_0x4fc3d2=0xce;}_0x2798cd[_0x55a5('0x14')](_0x4fc3d2);return _0x2798cd[_0x55a5('0x19')](_0x55a5('0x1a'),_0xbbc70a+'-'+_0x4713a9+'/'+_0x59791e)[_0x55a5('0x16')](_0x1dddbf);}return null;};}function patchUpdates(_0x198ffe){return function(_0x1e4ae1){try{jsonpatch[_0x55a5('0x1b')](_0x1e4ae1,_0x198ffe,!![]);}catch(_0x509d4d){return BPromise[_0x55a5('0x1c')](_0x509d4d);}return _0x1e4ae1[_0x55a5('0x1d')]();};}function saveUpdates(_0x35a48f,_0xaeb022){return function(_0x591413){if(_0x591413){return _0x591413[_0x55a5('0x1e')](_0x35a48f)[_0x55a5('0x1f')](function(_0x2811d8){return _0x2811d8;});}return null;};}function removeEntity(_0x5bb07f,_0x48cc71){return function(_0x23ea23){if(_0x23ea23){return _0x23ea23[_0x55a5('0x20')]()['then'](function(){var _0x3b3e65=_0x23ea23['get']({'plain':!![]});var _0x3569c2=_0x55a5('0x21');return db[_0x55a5('0x22')][_0x55a5('0x20')]({'where':{'type':_0x3569c2,'resourceId':_0x3b3e65['id']}})['then'](function(){return _0x23ea23;});})[_0x55a5('0x1f')](function(){_0x5bb07f[_0x55a5('0x14')](0xcc)[_0x55a5('0x15')]();});}};}function handleEntityNotFound(_0x1f13e7,_0x2805d2){return function(_0x31ae63){if(!_0x31ae63){_0x1f13e7[_0x55a5('0x23')](0x194);}return _0x31ae63;};}function handleError(_0x5868f9,_0x17ba89){_0x17ba89=_0x17ba89||0x1f4;return function(_0x14ca85){logger[_0x55a5('0x24')](_0x14ca85[_0x55a5('0x25')]);if(_0x14ca85[_0x55a5('0x26')]){delete _0x14ca85[_0x55a5('0x26')];}_0x5868f9[_0x55a5('0x14')](_0x17ba89)[_0x55a5('0x27')](_0x14ca85);};}exports[_0x55a5('0x28')]=function(_0x5283e1,_0x4bff41){var _0x2daa1c={},_0x59ddf3={},_0x4d0292={'count':0x0,'rows':[]};var _0x20caef=_['map'](db[_0x55a5('0x29')]['rawAttributes'],function(_0x36cd5f){return{'name':_0x36cd5f[_0x55a5('0x2a')],'type':_0x36cd5f[_0x55a5('0x2b')][_0x55a5('0x2c')]};});_0x59ddf3['model']=_['map'](_0x20caef,_0x55a5('0x26'));_0x59ddf3[_0x55a5('0x2d')]=_[_0x55a5('0x2e')](_0x5283e1[_0x55a5('0x2d')]);_0x59ddf3[_0x55a5('0x2f')]=_[_0x55a5('0x30')](_0x59ddf3['model'],_0x59ddf3[_0x55a5('0x2d')]);_0x2daa1c[_0x55a5('0x31')]=_[_0x55a5('0x30')](_0x59ddf3['model'],qs[_0x55a5('0x32')](_0x5283e1['query'][_0x55a5('0x32')]));_0x2daa1c[_0x55a5('0x31')]=_0x2daa1c['attributes'][_0x55a5('0x33')]?_0x2daa1c['attributes']:_0x59ddf3[_0x55a5('0x34')];if(!_0x5283e1[_0x55a5('0x2d')][_0x55a5('0x35')]('nolimit')){_0x2daa1c[_0x55a5('0x18')]=qs[_0x55a5('0x18')](_0x5283e1['query'][_0x55a5('0x18')]);_0x2daa1c['offset']=qs[_0x55a5('0x17')](_0x5283e1[_0x55a5('0x2d')][_0x55a5('0x17')]);}_0x2daa1c[_0x55a5('0x36')]=qs[_0x55a5('0x37')](_0x5283e1[_0x55a5('0x2d')][_0x55a5('0x37')]);_0x2daa1c[_0x55a5('0x38')]=qs[_0x55a5('0x2f')](_[_0x55a5('0x39')](_0x5283e1[_0x55a5('0x2d')],_0x59ddf3[_0x55a5('0x2f')]),_0x20caef);if(_0x5283e1[_0x55a5('0x2d')][_0x55a5('0x3a')]){_0x2daa1c[_0x55a5('0x38')]=_[_0x55a5('0x3b')](_0x2daa1c[_0x55a5('0x38')],{'$or':_[_0x55a5('0x3c')](_0x20caef,function(_0x3573a8){if(_0x3573a8[_0x55a5('0x2b')]!==_0x55a5('0x3d')){var _0x21683e={};_0x21683e[_0x3573a8[_0x55a5('0x26')]]={'$like':'%'+_0x5283e1[_0x55a5('0x2d')][_0x55a5('0x3a')]+'%'};return _0x21683e;}})});}_0x2daa1c=_[_0x55a5('0x3b')]({},_0x2daa1c,_0x5283e1[_0x55a5('0x3e')]);var _0x494f31={'where':_0x2daa1c['where']};return db[_0x55a5('0x29')]['count'](_0x494f31)[_0x55a5('0x1f')](function(_0x547640){_0x4d0292[_0x55a5('0x3f')]=_0x547640;if(_0x5283e1['query'][_0x55a5('0x40')]){_0x2daa1c[_0x55a5('0x41')]=[{'all':!![]}];}return db['Tag'][_0x55a5('0x42')](_0x2daa1c);})[_0x55a5('0x1f')](function(_0x23b51d){_0x4d0292[_0x55a5('0x43')]=_0x23b51d;return _0x4d0292;})[_0x55a5('0x1f')](respondWithFilteredResult(_0x4bff41,_0x2daa1c))[_0x55a5('0x44')](handleError(_0x4bff41,null));};exports[_0x55a5('0x45')]=function(_0x53de87,_0x3eff89){var _0x22907c={'raw':!![],'where':{'id':_0x53de87[_0x55a5('0x46')]['id']}},_0x9c6f40={};_0x9c6f40['model']=_[_0x55a5('0x2e')](db['Tag']['rawAttributes']);_0x9c6f40[_0x55a5('0x2d')]=_[_0x55a5('0x2e')](_0x53de87[_0x55a5('0x2d')]);_0x9c6f40[_0x55a5('0x2f')]=_['intersection'](_0x9c6f40[_0x55a5('0x34')],_0x9c6f40[_0x55a5('0x2d')]);_0x22907c['attributes']=_['intersection'](_0x9c6f40['model'],qs[_0x55a5('0x32')](_0x53de87[_0x55a5('0x2d')]['fields']));_0x22907c['attributes']=_0x22907c[_0x55a5('0x31')][_0x55a5('0x33')]?_0x22907c[_0x55a5('0x31')]:_0x9c6f40['model'];if(_0x53de87['query']['includeAll']){_0x22907c[_0x55a5('0x41')]=[{'all':!![]}];}_0x22907c=_[_0x55a5('0x3b')]({},_0x22907c,_0x53de87[_0x55a5('0x3e')]);return db['Tag'][_0x55a5('0x47')](_0x22907c)[_0x55a5('0x1f')](handleEntityNotFound(_0x3eff89,null))[_0x55a5('0x1f')](respondWithResult(_0x3eff89,null))[_0x55a5('0x44')](handleError(_0x3eff89,null));};exports[_0x55a5('0x48')]=function(_0xe7f195,_0x3562fa){return db[_0x55a5('0x29')][_0x55a5('0x48')](_0xe7f195[_0x55a5('0x49')],{})['then'](function(_0x55f6f2){var _0x1fc910=_0xe7f195[_0x55a5('0x4a')][_0x55a5('0x4b')]({'plain':!![]});if(!_0x1fc910)throw new Error(_0x55a5('0x4c'));if(_0x1fc910[_0x55a5('0x4d')]===_0x55a5('0x4a')){var _0x5ec62b=_0x55f6f2['get']({'plain':!![]});var _0x337a04=_0x55a5('0x21');return db[_0x55a5('0x4e')][_0x55a5('0x47')]({'where':{'name':_0x337a04,'userProfileId':_0x1fc910[_0x55a5('0x4f')]},'raw':!![]})[_0x55a5('0x1f')](function(_0x2a15d7){if(_0x2a15d7&&_0x2a15d7[_0x55a5('0x50')]===0x0){return db[_0x55a5('0x22')][_0x55a5('0x48')]({'name':_0x5ec62b[_0x55a5('0x26')],'resourceId':_0x5ec62b['id'],'type':_0x2a15d7[_0x55a5('0x26')],'sectionId':_0x2a15d7['id']},{})[_0x55a5('0x1f')](function(){return _0x55f6f2;});}else{return _0x55f6f2;}})[_0x55a5('0x44')](function(_0x2fc1fb){logger[_0x55a5('0x24')](_0x55a5('0x51'),_0x2fc1fb);throw _0x2fc1fb;});}return _0x55f6f2;})[_0x55a5('0x1f')](respondWithResult(_0x3562fa,0xc9))[_0x55a5('0x44')](handleError(_0x3562fa,null));};exports[_0x55a5('0x1e')]=function(_0x3a8545,_0x4cb92f){if(_0x3a8545[_0x55a5('0x49')]['id']){delete _0x3a8545[_0x55a5('0x49')]['id'];}return db[_0x55a5('0x29')][_0x55a5('0x47')]({'where':{'id':_0x3a8545['params']['id']}})['then'](handleEntityNotFound(_0x4cb92f,null))[_0x55a5('0x1f')](saveUpdates(_0x3a8545[_0x55a5('0x49')],null))[_0x55a5('0x1f')](respondWithResult(_0x4cb92f,null))[_0x55a5('0x44')](handleError(_0x4cb92f,null));};exports[_0x55a5('0x20')]=function(_0x26584f,_0x158bbc){return db[_0x55a5('0x29')]['find']({'where':{'id':_0x26584f['params']['id']}})['then'](handleEntityNotFound(_0x158bbc,null))[_0x55a5('0x1f')](removeEntity(_0x158bbc,null))[_0x55a5('0x44')](handleError(_0x158bbc,null));};