3b01acd7aaaa518054b3e830783674a05e89e876
[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 _0x0546=['../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','count','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','get','Tags','stack','name','send','index','map','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','merge','options','Tag','includeAll','rows','catch','show','params','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','UserProfileResource','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','papaparse','ioredis'];(function(_0x27a5b1,_0x6ca6b8){var _0x3d84a6=function(_0xe1aaee){while(--_0xe1aaee){_0x27a5b1['push'](_0x27a5b1['shift']());}};_0x3d84a6(++_0x6ca6b8);}(_0x0546,0xe5));var _0x6054=function(_0x4687df,_0x12099c){_0x4687df=_0x4687df-0x0;var _0x32eaef=_0x0546[_0x4687df];return _0x32eaef;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x6054('0x0'));var jsonpatch=require(_0x6054('0x1'));var rp=require(_0x6054('0x2'));var moment=require(_0x6054('0x3'));var BPromise=require(_0x6054('0x4'));var Mustache=require(_0x6054('0x5'));var util=require(_0x6054('0x6'));var path=require(_0x6054('0x7'));var sox=require('sox');var csv=require(_0x6054('0x8'));var ejs=require(_0x6054('0x9'));var fs=require('fs');var fs_extra=require(_0x6054('0xa'));var _=require('lodash');var squel=require(_0x6054('0xb'));var crypto=require(_0x6054('0xc'));var jsforce=require(_0x6054('0xd'));var deskjs=require(_0x6054('0xe'));var toCsv=require(_0x6054('0x8'));var querystring=require('querystring');var Papa=require(_0x6054('0xf'));var Redis=require(_0x6054('0x10'));var authService=require(_0x6054('0x11'));var qs=require(_0x6054('0x12'));var as=require(_0x6054('0x13'));var hardwareService=require(_0x6054('0x14'));var logger=require(_0x6054('0x15'))(_0x6054('0x16'));var utils=require(_0x6054('0x17'));var config=require(_0x6054('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x6054('0x19'))['db'];function respondWithStatusCode(_0x3f7f25,_0x32904b){_0x32904b=_0x32904b||0xcc;return function(_0x46b095){if(_0x46b095){return _0x3f7f25[_0x6054('0x1a')](_0x32904b);}return _0x3f7f25[_0x6054('0x1b')](_0x32904b)[_0x6054('0x1c')]();};}function respondWithResult(_0x42c4af,_0x4d1499){_0x4d1499=_0x4d1499||0xc8;return function(_0x109746){if(_0x109746){return _0x42c4af['status'](_0x4d1499)['json'](_0x109746);}};}function respondWithFilteredResult(_0x1c787d,_0x567ddb){return function(_0xa7401e){if(_0xa7401e){var _0x359cff=_0xa7401e[_0x6054('0x1d')],_0xf41a89=_0x567ddb[_0x6054('0x1e')],_0x3bbcba=_0x567ddb['offset']+_0x567ddb[_0x6054('0x1f')],_0x50c6e3;if(_0x3bbcba>=_0x359cff){_0x3bbcba=_0x359cff;_0x50c6e3=0xc8;}else{_0x50c6e3=0xce;}_0x1c787d[_0x6054('0x1b')](_0x50c6e3);return _0x1c787d[_0x6054('0x20')](_0x6054('0x21'),_0xf41a89+'-'+_0x3bbcba+'/'+_0x359cff)['json'](_0xa7401e);}return null;};}function patchUpdates(_0x4228ad){return function(_0x19e307){try{jsonpatch[_0x6054('0x22')](_0x19e307,_0x4228ad,!![]);}catch(_0x36f1d4){return BPromise[_0x6054('0x23')](_0x36f1d4);}return _0x19e307[_0x6054('0x24')]();};}function saveUpdates(_0xaf366d,_0x4fb557){return function(_0xe58307){if(_0xe58307){return _0xe58307[_0x6054('0x25')](_0xaf366d)[_0x6054('0x26')](function(_0x192679){return _0x192679;});}return null;};}function removeEntity(_0x3f5157,_0x8dd7ca){return function(_0x58f0e9){if(_0x58f0e9){return _0x58f0e9[_0x6054('0x27')]()[_0x6054('0x26')](function(){var _0x580f9d=_0x58f0e9[_0x6054('0x28')]({'plain':!![]});var _0x3e6095=_0x6054('0x29');return db['UserProfileResource']['destroy']({'where':{'type':_0x3e6095,'resourceId':_0x580f9d['id']}})['then'](function(){return _0x58f0e9;});})[_0x6054('0x26')](function(){_0x3f5157[_0x6054('0x1b')](0xcc)[_0x6054('0x1c')]();});}};}function handleEntityNotFound(_0x4cfdfb,_0x14d705){return function(_0x4f1a0d){if(!_0x4f1a0d){_0x4cfdfb[_0x6054('0x1a')](0x194);}return _0x4f1a0d;};}function handleError(_0x4a0192,_0xd6cc56){_0xd6cc56=_0xd6cc56||0x1f4;return function(_0x3ad991){logger['error'](_0x3ad991[_0x6054('0x2a')]);if(_0x3ad991[_0x6054('0x2b')]){delete _0x3ad991['name'];}_0x4a0192[_0x6054('0x1b')](_0xd6cc56)[_0x6054('0x2c')](_0x3ad991);};}exports[_0x6054('0x2d')]=function(_0x1253c5,_0x58631f){var _0x43abf4={},_0x21ebd8={},_0x5c56b4={'count':0x0,'rows':[]};var _0x38b60b=_[_0x6054('0x2e')](db['Tag'][_0x6054('0x2f')],function(_0x3b1782){return{'name':_0x3b1782['fieldName'],'type':_0x3b1782[_0x6054('0x30')][_0x6054('0x31')]};});_0x21ebd8[_0x6054('0x32')]=_[_0x6054('0x2e')](_0x38b60b,'name');_0x21ebd8[_0x6054('0x33')]=_[_0x6054('0x34')](_0x1253c5['query']);_0x21ebd8[_0x6054('0x35')]=_[_0x6054('0x36')](_0x21ebd8[_0x6054('0x32')],_0x21ebd8[_0x6054('0x33')]);_0x43abf4[_0x6054('0x37')]=_[_0x6054('0x36')](_0x21ebd8[_0x6054('0x32')],qs[_0x6054('0x38')](_0x1253c5[_0x6054('0x33')]['fields']));_0x43abf4[_0x6054('0x37')]=_0x43abf4[_0x6054('0x37')][_0x6054('0x39')]?_0x43abf4[_0x6054('0x37')]:_0x21ebd8[_0x6054('0x32')];if(!_0x1253c5[_0x6054('0x33')]['hasOwnProperty'](_0x6054('0x3a'))){_0x43abf4['limit']=qs[_0x6054('0x1f')](_0x1253c5[_0x6054('0x33')]['limit']);_0x43abf4['offset']=qs['offset'](_0x1253c5[_0x6054('0x33')][_0x6054('0x1e')]);}_0x43abf4[_0x6054('0x3b')]=qs[_0x6054('0x3c')](_0x1253c5[_0x6054('0x33')][_0x6054('0x3c')]);_0x43abf4[_0x6054('0x3d')]=qs[_0x6054('0x35')](_[_0x6054('0x3e')](_0x1253c5[_0x6054('0x33')],_0x21ebd8[_0x6054('0x35')]),_0x38b60b);if(_0x1253c5[_0x6054('0x33')]['filter']){_0x43abf4[_0x6054('0x3d')]=_[_0x6054('0x3f')](_0x43abf4[_0x6054('0x3d')],{'$or':_['map'](_0x38b60b,function(_0x34b586){if(_0x34b586['type']!=='VIRTUAL'){var _0x26ca94={};_0x26ca94[_0x34b586[_0x6054('0x2b')]]={'$like':'%'+_0x1253c5[_0x6054('0x33')]['filter']+'%'};return _0x26ca94;}})});}_0x43abf4=_[_0x6054('0x3f')]({},_0x43abf4,_0x1253c5[_0x6054('0x40')]);var _0x3ce683={'where':_0x43abf4[_0x6054('0x3d')]};return db[_0x6054('0x41')][_0x6054('0x1d')](_0x3ce683)['then'](function(_0x1edc58){_0x5c56b4['count']=_0x1edc58;if(_0x1253c5[_0x6054('0x33')][_0x6054('0x42')]){_0x43abf4['include']=[{'all':!![]}];}return db[_0x6054('0x41')]['findAll'](_0x43abf4);})[_0x6054('0x26')](function(_0x4a5341){_0x5c56b4[_0x6054('0x43')]=_0x4a5341;return _0x5c56b4;})[_0x6054('0x26')](respondWithFilteredResult(_0x58631f,_0x43abf4))[_0x6054('0x44')](handleError(_0x58631f,null));};exports[_0x6054('0x45')]=function(_0x4e2501,_0x4e62b1){var _0x37d82f={'raw':!![],'where':{'id':_0x4e2501[_0x6054('0x46')]['id']}},_0x1fca57={};_0x1fca57[_0x6054('0x32')]=_['keys'](db[_0x6054('0x41')][_0x6054('0x2f')]);_0x1fca57[_0x6054('0x33')]=_['keys'](_0x4e2501[_0x6054('0x33')]);_0x1fca57['filters']=_[_0x6054('0x36')](_0x1fca57[_0x6054('0x32')],_0x1fca57[_0x6054('0x33')]);_0x37d82f['attributes']=_[_0x6054('0x36')](_0x1fca57['model'],qs['fields'](_0x4e2501[_0x6054('0x33')][_0x6054('0x38')]));_0x37d82f['attributes']=_0x37d82f['attributes']['length']?_0x37d82f[_0x6054('0x37')]:_0x1fca57[_0x6054('0x32')];if(_0x4e2501[_0x6054('0x33')][_0x6054('0x42')]){_0x37d82f['include']=[{'all':!![]}];}_0x37d82f=_['merge']({},_0x37d82f,_0x4e2501[_0x6054('0x40')]);return db['Tag'][_0x6054('0x47')](_0x37d82f)[_0x6054('0x26')](handleEntityNotFound(_0x4e62b1,null))[_0x6054('0x26')](respondWithResult(_0x4e62b1,null))[_0x6054('0x44')](handleError(_0x4e62b1,null));};exports[_0x6054('0x48')]=function(_0x2ac498,_0x72406a){return db[_0x6054('0x41')][_0x6054('0x48')](_0x2ac498[_0x6054('0x49')],{})[_0x6054('0x26')](function(_0x564db9){var _0x3bc66a=_0x2ac498[_0x6054('0x4a')][_0x6054('0x28')]({'plain':!![]});if(!_0x3bc66a)throw new Error(_0x6054('0x4b'));if(_0x3bc66a[_0x6054('0x4c')]===_0x6054('0x4a')){var _0x1d12c6=_0x564db9[_0x6054('0x28')]({'plain':!![]});var _0x551e3f=_0x6054('0x29');return db['UserProfileSection'][_0x6054('0x47')]({'where':{'name':_0x551e3f,'userProfileId':_0x3bc66a[_0x6054('0x4d')]},'raw':!![]})['then'](function(_0x979a1d){if(_0x979a1d&&_0x979a1d[_0x6054('0x4e')]===0x0){return db[_0x6054('0x4f')][_0x6054('0x48')]({'name':_0x1d12c6[_0x6054('0x2b')],'resourceId':_0x1d12c6['id'],'type':_0x979a1d[_0x6054('0x2b')],'sectionId':_0x979a1d['id']},{})[_0x6054('0x26')](function(){return _0x564db9;});}else{return _0x564db9;}})[_0x6054('0x44')](function(_0x1d6182){logger[_0x6054('0x50')](_0x6054('0x51'),_0x1d6182);throw _0x1d6182;});}return _0x564db9;})['then'](respondWithResult(_0x72406a,0xc9))['catch'](handleError(_0x72406a,null));};exports[_0x6054('0x25')]=function(_0x1f965b,_0x4d8abb){if(_0x1f965b[_0x6054('0x49')]['id']){delete _0x1f965b[_0x6054('0x49')]['id'];}return db[_0x6054('0x41')][_0x6054('0x47')]({'where':{'id':_0x1f965b[_0x6054('0x46')]['id']}})[_0x6054('0x26')](handleEntityNotFound(_0x4d8abb,null))[_0x6054('0x26')](saveUpdates(_0x1f965b['body'],null))['then'](respondWithResult(_0x4d8abb,null))['catch'](handleError(_0x4d8abb,null));};exports[_0x6054('0x27')]=function(_0x5455ab,_0x484d36){return db['Tag'][_0x6054('0x47')]({'where':{'id':_0x5455ab[_0x6054('0x46')]['id']}})['then'](handleEntityNotFound(_0x484d36,null))[_0x6054('0x26')](removeEntity(_0x484d36,null))[_0x6054('0x44')](handleError(_0x484d36,null));};