var assetManager = function(session, type) { var am; var user = server.current(ctx.session); //Create asset manager depend on whether there is a loggedIn user or not. if (user) { am = rxt.asset.createUserAssetManager(ctx.session, type); } else { var carbon = require('carbon'); var tenantAPI = require('/modules/tenant-api.js').api; var tenantDetails = tenantAPI.tenantContext(session); var tenantId = tenantDetails.urlTenantId; //carbon.server.superTenant.tenantId; am = rxt.asset.createAnonAssetManager(ctx.session, type, tenantId); } return am; };
api.get = function(options, req, res, session) { var asset = require('rxt').asset; var server = require('store').server; var userDetails = server.current(session); var assetManager = null; var domain = options.domain || "carbon.super"; var tenantId = carbon.server.tenantId({ domain: domain }); if (!userDetails) { assetManager = asset.createAnonAssetManager(session, options.type, tenantId); } else { assetManager = asset.createUserAssetManager(session, options.type); } try { var retrievedAsset = assetManager.get(options.id); if (!retrievedAsset) { // print(responseProcessor.buildSuccessResponse(200, 'No matching asset found by' + options.id, [])); return null; } else { var expansionFields = (request.getParameter('fields') || ''); if (expansionFields) { options.fields = expansionFields.split(','); var assets = []; assets.push(retrievedAsset); options.assets = assets; result = fieldExpansion(options, req, res, session); } else { result = retrievedAsset; } // print(responseProcessor.buildSuccessResponse(200, 'Request Served Sucessfully', result)); } } catch (e) { //res.sendError(400, "No matching asset found"); // print(responseProcessor.buildErrorResponse(400, "No matching asset found")); log.error(e); result = null; } return result; };
api.advanceSearch = function(options, req, res, session) { var asset = require('rxt').asset; var server = require('store').server; var userDetails = server.current(session); var assetManager = null; var domain = options.domain || carbon.server.superTenant.domain; var tenantId = carbon.server.tenantId({ domain: domain }); var rxtModule = require('rxt'); var rxtManager = rxtModule.core.rxtManager(tenantId); var isGroupingEnabled = false; //Assume that grouping is disabled if (!userDetails) { assetManager = asset.createAnonAssetManager(session, options.type, tenantId); } else { assetManager = asset.createUserAssetManager(session, options.type); } var sort = (request.getParameter("sort") || ''); var sortOrder = DEFAULT_PAGIN.sortOrder; if (sort) { var order = sort.charAt(0); if (order == '+' || order == ' ') { sortOrder = 'ASC'; sort = sort.slice(1); } else if (order == '-') { sortOrder = 'DESC'; sort = sort.slice(1); } else { sortOrder = DEFAULT_PAGIN.sortOrder; } } var sortBy = (sort || DEFAULT_PAGIN.sortBy); var count = (request.getParameter("count") || DEFAULT_PAGIN.count); var start = (request.getParameter("start") || DEFAULT_PAGIN.start); var paginationLimit = (request.getParameter("paginationLimit") || DEFAULT_PAGIN.paginationLimit); var paging = { 'start': start, 'count': count, 'sortOrder': sortOrder, 'sortBy': sortBy, 'paginationLimit': paginationLimit }; var q = (request.getParameter("q") || ''); try { if (q) { var qString = '{' + q + '}'; var query = validateQuery(qString); query = replaceCategoryQuery(query, rxtManager, options.type); isGroupingEnabled = rxtManager.isGroupingEnabled(options.type); if(isGroupingEnabled){ query._group = true; query.default = true; } //query = replaceNameQuery(query, rxtManager, options.type); var assets = assetManager.advanceSearch(query, paging); //doesnt work properly } else { var assets = assetManager.list(paging); } var expansionFields = (request.getParameter('fields') || ''); if (expansionFields) { options.fields = expansionFields.split(','); options.assets = assets; result = fieldExpansion(options, req, res, session); //return; } else { result = assets; } //res = responseProcessor.buildSuccessResponse(res,200,result); } catch (e) { //res = responseProcessor.buildErrorResponse(400, "Your request is malformed"); //print(); result = null; log.error(e); } return result; };