All Downloads are FREE. Search and download functionalities are using the official Maven repository.

nl.tno.bim.nmd.controller.ElementController Maven / Gradle / Ivy

package nl.tno.bim.nmd.controller;

import java.util.List;

import org.apache.log4j.Logger;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import io.swagger.annotations.ApiOperation;
import nl.tno.bim.nmd.domain.NmdElement;

@CrossOrigin()
@RestController()
@RequestMapping(value = "/api")
public class ElementController extends BaseNMDController {

	private final static Logger logger = Logger.getLogger(ElementController.class);
	
	@Override
	protected Logger getLogger() {
		return ElementController.logger;
	}

	@ApiOperation(value = "Get All Elements")
    @RequestMapping(method = RequestMethod.GET, value = "{versionId}/elements")
    public ResponseEntity> getAllElements(@PathVariable Integer versionId) {
        
        if (logger.isDebugEnabled()) {
            logger.debug("triggering method getAllElements ");
        }
        
        try {
            List els = getService(versionId).getAllElements();
            if (els == null || els.isEmpty()) {
                if (logger.isDebugEnabled()) {
                    logger.debug("returning 404 no data found ");
                }
                return ResponseEntity.status(HttpStatus.NOT_FOUND).body(null);
            }
            if (logger.isDebugEnabled()) {
                logger.debug("returning all Elements 200 object");
            }
            return ResponseEntity.status(HttpStatus.OK).body(els);
        } catch (Exception e) {
        	return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy