93fe062ddfec0ff36c442525d3bdd0b1a184d11b
[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 _0x227a=['intersection','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','include','rows','catch','params','fields','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','count','offset','limit','set','Content-Range','json','apply','reject','save','update','destroy','then','Tags','UserProfileResource','error','name','index','map','Tag','rawAttributes','key','model','query','keys','filters'];(function(_0x42bc91,_0x41f40a){var _0x3f5507=function(_0x20cfaf){while(--_0x20cfaf){_0x42bc91['push'](_0x42bc91['shift']());}};_0x3f5507(++_0x41f40a);}(_0x227a,0x6d));var _0xa227=function(_0x116135,_0x665a46){_0x116135=_0x116135-0x0;var _0x3faa51=_0x227a[_0x116135];return _0x3faa51;};'use strict';var pdf=require(_0xa227('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xa227('0x1'));var zipdir=require(_0xa227('0x2'));var jsonpatch=require(_0xa227('0x3'));var rp=require(_0xa227('0x4'));var moment=require(_0xa227('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xa227('0x6'));var util=require(_0xa227('0x7'));var path=require(_0xa227('0x8'));var sox=require(_0xa227('0x9'));var csv=require(_0xa227('0xa'));var ejs=require(_0xa227('0xb'));var fs=require('fs');var _=require(_0xa227('0xc'));var squel=require(_0xa227('0xd'));var crypto=require('crypto');var jsforce=require(_0xa227('0xe'));var deskjs=require(_0xa227('0xf'));var toCsv=require(_0xa227('0xa'));var querystring=require(_0xa227('0x10'));var Papa=require(_0xa227('0x11'));var Redis=require(_0xa227('0x12'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xa227('0x13'));var logger=require(_0xa227('0x14'))(_0xa227('0x15'));var utils=require('../../config/utils');var config=require(_0xa227('0x16'));var licenseUtil=require(_0xa227('0x17'));var db=require(_0xa227('0x18'))['db'];function respondWithStatusCode(_0x3b1d4a,_0x34b5b4){_0x34b5b4=_0x34b5b4||0xcc;return function(_0x54f100){if(_0x54f100){return _0x3b1d4a[_0xa227('0x19')](_0x34b5b4);}return _0x3b1d4a['status'](_0x34b5b4)[_0xa227('0x1a')]();};}function respondWithResult(_0xadf03b,_0x3cb2bb){_0x3cb2bb=_0x3cb2bb||0xc8;return function(_0x4d6437){if(_0x4d6437){return _0xadf03b[_0xa227('0x1b')](_0x3cb2bb)['json'](_0x4d6437);}};}function respondWithFilteredResult(_0xab5bf,_0x53de0a){return function(_0x16331a){if(_0x16331a){var _0x117539=_0x16331a[_0xa227('0x1c')],_0x6d4603=_0x53de0a[_0xa227('0x1d')],_0x39993d=_0x53de0a[_0xa227('0x1d')]+_0x53de0a[_0xa227('0x1e')],_0x2ee40a;if(_0x39993d>=_0x117539){_0x39993d=_0x117539;_0x2ee40a=0xc8;}else{_0x2ee40a=0xce;}_0xab5bf[_0xa227('0x1b')](_0x2ee40a);return _0xab5bf[_0xa227('0x1f')](_0xa227('0x20'),_0x6d4603+'-'+_0x39993d+'/'+_0x117539)[_0xa227('0x21')](_0x16331a);}return null;};}function patchUpdates(_0x2622b7){return function(_0x5cb6dc){try{jsonpatch[_0xa227('0x22')](_0x5cb6dc,_0x2622b7,!![]);}catch(_0x50e6fb){return BPromise[_0xa227('0x23')](_0x50e6fb);}return _0x5cb6dc[_0xa227('0x24')]();};}function saveUpdates(_0x4dfbee,_0x147a16){return function(_0x215121){if(_0x215121){return _0x215121[_0xa227('0x25')](_0x4dfbee)['then'](function(_0x188ac5){return _0x188ac5;});}return null;};}function removeEntity(_0x6a8b74,_0x2e5bc3){return function(_0x354f48){if(_0x354f48){return _0x354f48[_0xa227('0x26')]()[_0xa227('0x27')](function(){var _0x5c713b=_0x354f48['get']({'plain':!![]});var _0x297ab1=_0xa227('0x28');return db[_0xa227('0x29')][_0xa227('0x26')]({'where':{'type':_0x297ab1,'resourceId':_0x5c713b['id']}})[_0xa227('0x27')](function(){return _0x354f48;});})[_0xa227('0x27')](function(){_0x6a8b74[_0xa227('0x1b')](0xcc)[_0xa227('0x1a')]();});}};}function handleEntityNotFound(_0x111bb1,_0x201d64){return function(_0xc09d46){if(!_0xc09d46){_0x111bb1[_0xa227('0x19')](0x194);}return _0xc09d46;};}function handleError(_0x566e7c,_0x300ee1){_0x300ee1=_0x300ee1||0x1f4;return function(_0x12bc38){logger[_0xa227('0x2a')](_0x12bc38['stack']);if(_0x12bc38['name']){delete _0x12bc38[_0xa227('0x2b')];}_0x566e7c[_0xa227('0x1b')](_0x300ee1)['send'](_0x12bc38);};}exports[_0xa227('0x2c')]=function(_0x472d3b,_0x511743){var _0x3904d5={},_0x323c64={},_0x5394ca={'count':0x0,'rows':[]};var _0x45fd55=_[_0xa227('0x2d')](db[_0xa227('0x2e')][_0xa227('0x2f')],function(_0x1c0b14){return{'name':_0x1c0b14['fieldName'],'type':_0x1c0b14['type'][_0xa227('0x30')]};});_0x323c64[_0xa227('0x31')]=_[_0xa227('0x2d')](_0x45fd55,_0xa227('0x2b'));_0x323c64[_0xa227('0x32')]=_[_0xa227('0x33')](_0x472d3b['query']);_0x323c64[_0xa227('0x34')]=_['intersection'](_0x323c64[_0xa227('0x31')],_0x323c64[_0xa227('0x32')]);_0x3904d5['attributes']=_[_0xa227('0x35')](_0x323c64[_0xa227('0x31')],qs['fields'](_0x472d3b['query']['fields']));_0x3904d5[_0xa227('0x36')]=_0x3904d5[_0xa227('0x36')][_0xa227('0x37')]?_0x3904d5[_0xa227('0x36')]:_0x323c64['model'];if(!_0x472d3b[_0xa227('0x32')][_0xa227('0x38')](_0xa227('0x39'))){_0x3904d5[_0xa227('0x1e')]=qs[_0xa227('0x1e')](_0x472d3b['query'][_0xa227('0x1e')]);_0x3904d5[_0xa227('0x1d')]=qs[_0xa227('0x1d')](_0x472d3b[_0xa227('0x32')][_0xa227('0x1d')]);}_0x3904d5[_0xa227('0x3a')]=qs[_0xa227('0x3b')](_0x472d3b['query'][_0xa227('0x3b')]);_0x3904d5[_0xa227('0x3c')]=qs['filters'](_[_0xa227('0x3d')](_0x472d3b[_0xa227('0x32')],_0x323c64[_0xa227('0x34')]),_0x45fd55);if(_0x472d3b[_0xa227('0x32')][_0xa227('0x3e')]){_0x3904d5[_0xa227('0x3c')]=_[_0xa227('0x3f')](_0x3904d5[_0xa227('0x3c')],{'$or':_['map'](_0x45fd55,function(_0x440a9a){if(_0x440a9a[_0xa227('0x40')]!==_0xa227('0x41')){var _0x3f2bcd={};_0x3f2bcd[_0x440a9a[_0xa227('0x2b')]]={'$like':'%'+_0x472d3b[_0xa227('0x32')]['filter']+'%'};return _0x3f2bcd;}})});}_0x3904d5=_[_0xa227('0x3f')]({},_0x3904d5,_0x472d3b[_0xa227('0x42')]);var _0x382066={'where':_0x3904d5[_0xa227('0x3c')]};return db[_0xa227('0x2e')][_0xa227('0x1c')](_0x382066)[_0xa227('0x27')](function(_0x1ccfde){_0x5394ca[_0xa227('0x1c')]=_0x1ccfde;if(_0x472d3b['query'][_0xa227('0x43')]){_0x3904d5[_0xa227('0x44')]=[{'all':!![]}];}return db[_0xa227('0x2e')]['findAll'](_0x3904d5);})[_0xa227('0x27')](function(_0x28d46a){_0x5394ca[_0xa227('0x45')]=_0x28d46a;return _0x5394ca;})[_0xa227('0x27')](respondWithFilteredResult(_0x511743,_0x3904d5))[_0xa227('0x46')](handleError(_0x511743,null));};exports['show']=function(_0x5558a4,_0x5f2866){var _0x527934={'raw':!![],'where':{'id':_0x5558a4[_0xa227('0x47')]['id']}},_0x441ed0={};_0x441ed0[_0xa227('0x31')]=_['keys'](db[_0xa227('0x2e')][_0xa227('0x2f')]);_0x441ed0['query']=_[_0xa227('0x33')](_0x5558a4['query']);_0x441ed0[_0xa227('0x34')]=_[_0xa227('0x35')](_0x441ed0[_0xa227('0x31')],_0x441ed0['query']);_0x527934[_0xa227('0x36')]=_[_0xa227('0x35')](_0x441ed0['model'],qs[_0xa227('0x48')](_0x5558a4[_0xa227('0x32')]['fields']));_0x527934[_0xa227('0x36')]=_0x527934[_0xa227('0x36')][_0xa227('0x37')]?_0x527934['attributes']:_0x441ed0[_0xa227('0x31')];if(_0x5558a4[_0xa227('0x32')][_0xa227('0x43')]){_0x527934[_0xa227('0x44')]=[{'all':!![]}];}_0x527934=_[_0xa227('0x3f')]({},_0x527934,_0x5558a4[_0xa227('0x42')]);return db[_0xa227('0x2e')][_0xa227('0x49')](_0x527934)['then'](handleEntityNotFound(_0x5f2866,null))['then'](respondWithResult(_0x5f2866,null))['catch'](handleError(_0x5f2866,null));};exports[_0xa227('0x4a')]=function(_0x5177b1,_0xfe70f6){return db[_0xa227('0x2e')]['create'](_0x5177b1[_0xa227('0x4b')],{})['then'](function(_0x393f50){var _0x2d940f=_0x5177b1[_0xa227('0x4c')][_0xa227('0x4d')]({'plain':!![]});if(!_0x2d940f)throw new Error(_0xa227('0x4e'));if(_0x2d940f['role']===_0xa227('0x4c')){var _0x14e912=_0x393f50[_0xa227('0x4d')]({'plain':!![]});var _0x30bd4c='Tags';return db[_0xa227('0x4f')]['find']({'where':{'name':_0x30bd4c,'userProfileId':_0x2d940f[_0xa227('0x50')]},'raw':!![]})['then'](function(_0x36db17){if(_0x36db17&&_0x36db17['autoAssociation']===0x0){return db['UserProfileResource'][_0xa227('0x4a')]({'name':_0x14e912[_0xa227('0x2b')],'resourceId':_0x14e912['id'],'type':_0x36db17[_0xa227('0x2b')],'sectionId':_0x36db17['id']},{})['then'](function(){return _0x393f50;});}else{return _0x393f50;}})['catch'](function(_0x4ea225){logger[_0xa227('0x2a')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4ea225);throw _0x4ea225;});}return _0x393f50;})[_0xa227('0x27')](respondWithResult(_0xfe70f6,0xc9))[_0xa227('0x46')](handleError(_0xfe70f6,null));};exports[_0xa227('0x25')]=function(_0x5b8152,_0x3a401e){if(_0x5b8152[_0xa227('0x4b')]['id']){delete _0x5b8152[_0xa227('0x4b')]['id'];}return db[_0xa227('0x2e')][_0xa227('0x49')]({'where':{'id':_0x5b8152[_0xa227('0x47')]['id']}})[_0xa227('0x27')](handleEntityNotFound(_0x3a401e,null))[_0xa227('0x27')](saveUpdates(_0x5b8152[_0xa227('0x4b')],null))[_0xa227('0x27')](respondWithResult(_0x3a401e,null))[_0xa227('0x46')](handleError(_0x3a401e,null));};exports[_0xa227('0x26')]=function(_0x416405,_0x22c7f5){return db[_0xa227('0x2e')][_0xa227('0x49')]({'where':{'id':_0x416405[_0xa227('0x47')]['id']}})[_0xa227('0x27')](handleEntityNotFound(_0x22c7f5,null))['then'](removeEntity(_0x22c7f5,null))[_0xa227('0x46')](handleError(_0x22c7f5,null));};