34fd2cb7355aab43a71ed6f25a67f67e29833b0c
[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 _0x99d5=['send','index','map','rawAttributes','type','model','query','keys','intersection','attributes','length','hasOwnProperty','sort','where','filters','pick','filter','merge','VIRTUAL','Tag','include','findAll','catch','show','fields','includeAll','options','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','params','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','to-csv','ejs','lodash','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','count','offset','limit','json','save','then','destroy','get','Tags','UserProfileResource','stack','name'];(function(_0x24afdc,_0x523845){var _0x57a9e6=function(_0x2ad865){while(--_0x2ad865){_0x24afdc['push'](_0x24afdc['shift']());}};_0x57a9e6(++_0x523845);}(_0x99d5,0x111));var _0x599d=function(_0x2b80fc,_0x2a818a){_0x2b80fc=_0x2b80fc-0x0;var _0xff76b=_0x99d5[_0x2b80fc];return _0xff76b;};'use strict';var pdf=require(_0x599d('0x0'));var emlformat=require(_0x599d('0x1'));var rimraf=require(_0x599d('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x599d('0x3'));var rp=require(_0x599d('0x4'));var moment=require('moment');var BPromise=require(_0x599d('0x5'));var Mustache=require(_0x599d('0x6'));var util=require(_0x599d('0x7'));var path=require(_0x599d('0x8'));var sox=require('sox');var csv=require(_0x599d('0x9'));var ejs=require(_0x599d('0xa'));var fs=require('fs');var _=require(_0x599d('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x599d('0xc'));var deskjs=require(_0x599d('0xd'));var toCsv=require(_0x599d('0x9'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x599d('0xe'));var authService=require(_0x599d('0xf'));var qs=require(_0x599d('0x10'));var as=require(_0x599d('0x11'));var hardwareService=require(_0x599d('0x12'));var logger=require('../../config/logger')(_0x599d('0x13'));var utils=require(_0x599d('0x14'));var config=require(_0x599d('0x15'));var licenseUtil=require(_0x599d('0x16'));var db=require(_0x599d('0x17'))['db'];function respondWithStatusCode(_0x20955e,_0x59ad16){_0x59ad16=_0x59ad16||0xcc;return function(_0x38eb94){if(_0x38eb94){return _0x20955e[_0x599d('0x18')](_0x59ad16);}return _0x20955e[_0x599d('0x19')](_0x59ad16)[_0x599d('0x1a')]();};}function respondWithResult(_0x5cf5b7,_0x19fa36){_0x19fa36=_0x19fa36||0xc8;return function(_0x10483b){if(_0x10483b){return _0x5cf5b7[_0x599d('0x19')](_0x19fa36)['json'](_0x10483b);}};}function respondWithFilteredResult(_0x497435,_0x3160d6){return function(_0x4aea10){if(_0x4aea10){var _0x3a7ab8=_0x4aea10[_0x599d('0x1b')],_0x149383=_0x3160d6[_0x599d('0x1c')],_0x29fd3b=_0x3160d6[_0x599d('0x1c')]+_0x3160d6[_0x599d('0x1d')],_0x467def;if(_0x29fd3b>=_0x3a7ab8){_0x29fd3b=_0x3a7ab8;_0x467def=0xc8;}else{_0x467def=0xce;}_0x497435['status'](_0x467def);return _0x497435['set']('Content-Range',_0x149383+'-'+_0x29fd3b+'/'+_0x3a7ab8)[_0x599d('0x1e')](_0x4aea10);}return null;};}function patchUpdates(_0x4eea0d){return function(_0x523abf){try{jsonpatch['apply'](_0x523abf,_0x4eea0d,!![]);}catch(_0x3f14b0){return BPromise['reject'](_0x3f14b0);}return _0x523abf[_0x599d('0x1f')]();};}function saveUpdates(_0xc3df3d,_0x13aaaa){return function(_0x284e92){if(_0x284e92){return _0x284e92['update'](_0xc3df3d)[_0x599d('0x20')](function(_0x10b1e4){return _0x10b1e4;});}return null;};}function removeEntity(_0x156aa8,_0x5ac29b){return function(_0x8c43d2){if(_0x8c43d2){return _0x8c43d2[_0x599d('0x21')]()['then'](function(){var _0x26aa2d=_0x8c43d2[_0x599d('0x22')]({'plain':!![]});var _0x29fb64=_0x599d('0x23');return db[_0x599d('0x24')]['destroy']({'where':{'type':_0x29fb64,'resourceId':_0x26aa2d['id']}})[_0x599d('0x20')](function(){return _0x8c43d2;});})[_0x599d('0x20')](function(){_0x156aa8['status'](0xcc)[_0x599d('0x1a')]();});}};}function handleEntityNotFound(_0x241a09,_0x35cabe){return function(_0x581928){if(!_0x581928){_0x241a09['sendStatus'](0x194);}return _0x581928;};}function handleError(_0x5dfd9b,_0x5edf57){_0x5edf57=_0x5edf57||0x1f4;return function(_0x5b28cd){logger['error'](_0x5b28cd[_0x599d('0x25')]);if(_0x5b28cd[_0x599d('0x26')]){delete _0x5b28cd['name'];}_0x5dfd9b['status'](_0x5edf57)[_0x599d('0x27')](_0x5b28cd);};}exports[_0x599d('0x28')]=function(_0x550efa,_0x5864de){var _0x1eaaa6={},_0x42adf3={},_0x3d3ca8={'count':0x0,'rows':[]};var _0x2b4882=_[_0x599d('0x29')](db['Tag'][_0x599d('0x2a')],function(_0x6de2d4){return{'name':_0x6de2d4['fieldName'],'type':_0x6de2d4[_0x599d('0x2b')]['key']};});_0x42adf3[_0x599d('0x2c')]=_[_0x599d('0x29')](_0x2b4882,'name');_0x42adf3[_0x599d('0x2d')]=_[_0x599d('0x2e')](_0x550efa[_0x599d('0x2d')]);_0x42adf3['filters']=_[_0x599d('0x2f')](_0x42adf3[_0x599d('0x2c')],_0x42adf3[_0x599d('0x2d')]);_0x1eaaa6[_0x599d('0x30')]=_['intersection'](_0x42adf3[_0x599d('0x2c')],qs['fields'](_0x550efa[_0x599d('0x2d')]['fields']));_0x1eaaa6[_0x599d('0x30')]=_0x1eaaa6[_0x599d('0x30')][_0x599d('0x31')]?_0x1eaaa6['attributes']:_0x42adf3[_0x599d('0x2c')];if(!_0x550efa[_0x599d('0x2d')][_0x599d('0x32')]('nolimit')){_0x1eaaa6['limit']=qs[_0x599d('0x1d')](_0x550efa[_0x599d('0x2d')][_0x599d('0x1d')]);_0x1eaaa6[_0x599d('0x1c')]=qs[_0x599d('0x1c')](_0x550efa[_0x599d('0x2d')][_0x599d('0x1c')]);}_0x1eaaa6['order']=qs[_0x599d('0x33')](_0x550efa['query']['sort']);_0x1eaaa6[_0x599d('0x34')]=qs[_0x599d('0x35')](_[_0x599d('0x36')](_0x550efa['query'],_0x42adf3[_0x599d('0x35')]),_0x2b4882);if(_0x550efa[_0x599d('0x2d')][_0x599d('0x37')]){_0x1eaaa6[_0x599d('0x34')]=_[_0x599d('0x38')](_0x1eaaa6['where'],{'$or':_[_0x599d('0x29')](_0x2b4882,function(_0xdec63e){if(_0xdec63e[_0x599d('0x2b')]!==_0x599d('0x39')){var _0x4f6671={};_0x4f6671[_0xdec63e[_0x599d('0x26')]]={'$like':'%'+_0x550efa[_0x599d('0x2d')][_0x599d('0x37')]+'%'};return _0x4f6671;}})});}_0x1eaaa6=_[_0x599d('0x38')]({},_0x1eaaa6,_0x550efa['options']);var _0x5b5960={'where':_0x1eaaa6[_0x599d('0x34')]};return db[_0x599d('0x3a')][_0x599d('0x1b')](_0x5b5960)[_0x599d('0x20')](function(_0x532818){_0x3d3ca8[_0x599d('0x1b')]=_0x532818;if(_0x550efa['query']['includeAll']){_0x1eaaa6[_0x599d('0x3b')]=[{'all':!![]}];}return db['Tag'][_0x599d('0x3c')](_0x1eaaa6);})[_0x599d('0x20')](function(_0x6b2e6b){_0x3d3ca8['rows']=_0x6b2e6b;return _0x3d3ca8;})['then'](respondWithFilteredResult(_0x5864de,_0x1eaaa6))[_0x599d('0x3d')](handleError(_0x5864de,null));};exports[_0x599d('0x3e')]=function(_0x4292dc,_0x1138d4){var _0x9f5d58={'raw':!![],'where':{'id':_0x4292dc['params']['id']}},_0x245624={};_0x245624[_0x599d('0x2c')]=_['keys'](db[_0x599d('0x3a')][_0x599d('0x2a')]);_0x245624[_0x599d('0x2d')]=_[_0x599d('0x2e')](_0x4292dc[_0x599d('0x2d')]);_0x245624[_0x599d('0x35')]=_[_0x599d('0x2f')](_0x245624[_0x599d('0x2c')],_0x245624['query']);_0x9f5d58[_0x599d('0x30')]=_[_0x599d('0x2f')](_0x245624['model'],qs[_0x599d('0x3f')](_0x4292dc[_0x599d('0x2d')][_0x599d('0x3f')]));_0x9f5d58['attributes']=_0x9f5d58[_0x599d('0x30')][_0x599d('0x31')]?_0x9f5d58['attributes']:_0x245624[_0x599d('0x2c')];if(_0x4292dc[_0x599d('0x2d')][_0x599d('0x40')]){_0x9f5d58[_0x599d('0x3b')]=[{'all':!![]}];}_0x9f5d58=_[_0x599d('0x38')]({},_0x9f5d58,_0x4292dc[_0x599d('0x41')]);return db['Tag'][_0x599d('0x42')](_0x9f5d58)[_0x599d('0x20')](handleEntityNotFound(_0x1138d4,null))[_0x599d('0x20')](respondWithResult(_0x1138d4,null))['catch'](handleError(_0x1138d4,null));};exports[_0x599d('0x43')]=function(_0x378c3d,_0x3f3a3f){return db[_0x599d('0x3a')][_0x599d('0x43')](_0x378c3d['body'],{})['then'](function(_0x29ea5b){var _0x195aef=_0x378c3d[_0x599d('0x44')]['get']({'plain':!![]});if(!_0x195aef)throw new Error(_0x599d('0x45'));if(_0x195aef[_0x599d('0x46')]===_0x599d('0x44')){var _0x1a36b7=_0x29ea5b[_0x599d('0x22')]({'plain':!![]});var _0x11df48=_0x599d('0x23');return db[_0x599d('0x47')][_0x599d('0x42')]({'where':{'name':_0x11df48,'userProfileId':_0x195aef[_0x599d('0x48')]},'raw':!![]})[_0x599d('0x20')](function(_0x37be92){if(_0x37be92&&_0x37be92['autoAssociation']===0x0){return db[_0x599d('0x24')][_0x599d('0x43')]({'name':_0x1a36b7[_0x599d('0x26')],'resourceId':_0x1a36b7['id'],'type':_0x37be92['name'],'sectionId':_0x37be92['id']},{})[_0x599d('0x20')](function(){return _0x29ea5b;});}else{return _0x29ea5b;}})['catch'](function(_0x24dd16){logger[_0x599d('0x49')](_0x599d('0x4a'),_0x24dd16);throw _0x24dd16;});}return _0x29ea5b;})['then'](respondWithResult(_0x3f3a3f,0xc9))[_0x599d('0x3d')](handleError(_0x3f3a3f,null));};exports[_0x599d('0x4b')]=function(_0x38c0e5,_0x27d3a1){if(_0x38c0e5['body']['id']){delete _0x38c0e5[_0x599d('0x4c')]['id'];}return db[_0x599d('0x3a')]['find']({'where':{'id':_0x38c0e5[_0x599d('0x4d')]['id']}})['then'](handleEntityNotFound(_0x27d3a1,null))['then'](saveUpdates(_0x38c0e5[_0x599d('0x4c')],null))[_0x599d('0x20')](respondWithResult(_0x27d3a1,null))['catch'](handleError(_0x27d3a1,null));};exports[_0x599d('0x21')]=function(_0x5de053,_0x1d4523){return db['Tag']['find']({'where':{'id':_0x5de053[_0x599d('0x4d')]['id']}})[_0x599d('0x20')](handleEntityNotFound(_0x1d4523,null))[_0x599d('0x20')](removeEntity(_0x1d4523,null))[_0x599d('0x3d')](handleError(_0x1d4523,null));};