Commit 18a016c6 authored by Nicola Fulvio Calabria's avatar Nicola Fulvio Calabria
Browse files

Refactoring for error detail endpoint development

parent 75beaddc
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
package it.inaf.oats.vospace.exception;

import net.ivoa.xml.uws.v1.ErrorSummaryFactory;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ResponseStatus;

@@ -8,7 +7,7 @@ import org.springframework.web.bind.annotation.ResponseStatus;
public class ContainerNotFoundException extends VoSpaceErrorSummarizableException {

    public ContainerNotFoundException(String path) {
        super("Container Not Found at path: " + path, 
                ErrorSummaryFactory.VOSpaceFault.NODE_NOT_FOUND);
        super("Path: " + path, 
                VOSpaceFaultEnum.NODE_NOT_FOUND);
    }
}
+2 −3
Original line number Diff line number Diff line
package it.inaf.oats.vospace.exception;

import net.ivoa.xml.uws.v1.ErrorSummaryFactory;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ResponseStatus;

@@ -8,7 +7,7 @@ import org.springframework.web.bind.annotation.ResponseStatus;
public class DuplicateNodeException extends VoSpaceErrorSummarizableException {

    public DuplicateNodeException(String path) {
        super("Duplicate Node at path: " + path,
                ErrorSummaryFactory.VOSpaceFault.DUPLICATE_NODE);
        super("Path: " + path,
                VOSpaceFaultEnum.DUPLICATE_NODE);
    }
}
+32 −0
Original line number Diff line number Diff line
package it.inaf.oats.vospace.exception;

import net.ivoa.xml.uws.v1.ErrorSummary;

public class ErrorSummaryFactory {    

    public static ErrorSummary newErrorSummary(VOSpaceFaultEnum error, String detailMessage) {
        ErrorSummary result = new ErrorSummary();
        result.setMessage(error.getFaultRepresentation());
        result.setType(error.getType());

        if (detailMessage == null || detailMessage.isBlank()) {
            result.setHasDetail(false);
        } else {
            result.setHasDetail(true);
            result.setDetailMessage(error.getFaultCaptionForDetails()
                    + ". "
                    + detailMessage);
        }

        return result;
    }

    public static ErrorSummary newErrorSummary(VOSpaceFaultEnum error) {
        return newErrorSummary(error, null);
    }
    
    public static ErrorSummary newErrorSummary(VoSpaceErrorSummarizableException e)
    {
        return newErrorSummary(e.getFault(), e.getDetailMessage());
    }
}
+4 −5
Original line number Diff line number Diff line
package it.inaf.oats.vospace.exception;

import net.ivoa.xml.uws.v1.ErrorSummaryFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus;
@@ -12,13 +11,13 @@ public class InternalFaultException extends VoSpaceErrorSummarizableException {
    private static final Logger LOG = LoggerFactory.getLogger(InternalFaultException.class);

    public InternalFaultException(String msg) {
        super("InternalFaultException: " + msg,
                ErrorSummaryFactory.VOSpaceFault.INTERNAL_FAULT);
        super("Description: " + msg,
                VOSpaceFaultEnum.INTERNAL_FAULT);
    }

    public InternalFaultException(Throwable cause) {
        super("InternalFaultException: " + getMessage(cause),
                ErrorSummaryFactory.VOSpaceFault.INTERNAL_FAULT);
        super("Description: " + getMessage(cause),
                VOSpaceFaultEnum.INTERNAL_FAULT);
    }

    private static String getMessage(Throwable cause) {
+1 −2
Original line number Diff line number Diff line
package it.inaf.oats.vospace.exception;

import net.ivoa.xml.uws.v1.ErrorSummaryFactory;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ResponseStatus;

@@ -8,6 +7,6 @@ import org.springframework.web.bind.annotation.ResponseStatus;
public class InvalidArgumentException extends VoSpaceErrorSummarizableException {

    public InvalidArgumentException(String message) {
        super(message, ErrorSummaryFactory.VOSpaceFault.NODE_NOT_FOUND);
        super("Description: " + message, VOSpaceFaultEnum.NODE_NOT_FOUND);
    }
}
Loading