blob: 37f023b57fb9e9347c5703bd00929e2cf970c914 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache license, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the license for the specific language governing permissions and
* limitations under the license.
*/
package org.apache.logging.log4j.catalog.controller;
import org.apache.logging.log4j.catalog.api.Attribute;
import org.apache.logging.log4j.catalog.api.CatalogData;
import org.apache.logging.log4j.catalog.api.Category;
import org.apache.logging.log4j.catalog.api.Event;
import org.apache.logging.log4j.catalog.api.Product;
import org.apache.logging.log4j.catalog.api.dao.CatalogDao;
import org.apache.logging.log4j.catalog.jpa.converter.AttributeModelConverter;
import org.apache.logging.log4j.catalog.jpa.converter.CategoryModelConverter;
import org.apache.logging.log4j.catalog.jpa.converter.EventModelConverter;
import org.apache.logging.log4j.catalog.jpa.converter.ProductModelConverter;
import org.apache.logging.log4j.catalog.jpa.model.AttributeModel;
import org.apache.logging.log4j.catalog.jpa.model.CategoryModel;
import org.apache.logging.log4j.catalog.jpa.model.EventModel;
import org.apache.logging.log4j.catalog.jpa.model.ProductModel;
import org.apache.logging.log4j.catalog.jpa.service.AttributeService;
import org.apache.logging.log4j.catalog.jpa.service.CategoryService;
import org.apache.logging.log4j.catalog.jpa.service.EventService;
import org.apache.logging.log4j.catalog.jpa.service.ProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
/**
* The Class CatalogController.
*/
@RestController
public class CatalogController {
@Autowired
private EventService eventService;
@Autowired
private AttributeService attributeService;
@Autowired
private ProductService productService;
@Autowired
private CategoryService categoryService;
@Autowired
private AttributeModelConverter attributeModelConverter;
@Autowired
private EventModelConverter eventModelConverter;
@Autowired
private ProductModelConverter productModelConverter;
@Autowired
private CategoryModelConverter categoryModelConverter;
@Autowired
private CatalogDao catalogDao;
@PostMapping(value = "catalog")
public ResponseEntity<?> saveCatalog() {
CatalogData catalogData = new CatalogData();
List<Attribute> attributes = new ArrayList<>();
for (AttributeModel attributeModel : attributeService.getAttributes()) {
attributes.add(attributeModelConverter.convert(attributeModel));
}
catalogData.setAttributes(attributes);
List<Event> events = new ArrayList<>();
for (EventModel eventModel : eventService.getEvents()) {
events.add(eventModelConverter.convert(eventModel));
}
catalogData.setEvents(events);
List<Category> categories = new ArrayList<>();
for (CategoryModel categoryModel : categoryService.getCategories()) {
categories.add(categoryModelConverter.convert(categoryModel));
}
catalogData.setCategories(categories);
List<Product> products = new ArrayList<>();
for (ProductModel productModel : productService.getProducts()) {
products.add(productModelConverter.convert(productModel));
}
catalogData.setProducts(products);
catalogDao.write(catalogData);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
/*
@RequestMapping(value = "/catalog", method = RequestMethod.GET)
public ResponseEntity<Object> handleGetCatalog(
@RequestParam(required = false) boolean attributeDetails,
HttpServletRequest servletRequest) {
CatalogData catalogData = null;
try {
//catalogData = globalLoggingCatalog.getCatalog();
if (attributeDetails) {
getAttributeDetailsForEvents(catalogData);
}
return new ResponseEntity<Object>(catalogData, HttpStatus.OK);
} catch (Exception e) {
logger.error("Error While Retrieving Data", e);
Status status = new Status();
ErrorInfo errorInfo = new ErrorInfo();
errorInfo.setErrorCode("00000");
errorInfo.setErrorMessage(e.getMessage());
status.getErrorInfo().add(errorInfo);
status.setStatusMessage(e.getMessage());
return new ResponseEntity<Object>(status,
HttpStatus.INTERNAL_SERVER_ERROR);
}
} */
}