use of org.wso2.charon3.core.exceptions.NotFoundException in project carbon-apimgt by wso2.
the class ApisApiServiceImpl method apisApiIdSwaggerGet.
/**
* Retrieves the swagger definition of an API
*
* @param apiId UUID of API
* @param ifNoneMatch If-None-Match header value
* @param ifModifiedSince If-Modified-Since header value
* @param request msf4j request object
* @return swagger definition of an API
* @throws NotFoundException When the particular resource does not exist in the system
*/
@Override
public Response apisApiIdSwaggerGet(String apiId, String ifNoneMatch, String ifModifiedSince, Request request) throws NotFoundException {
String username = RestApiUtil.getLoggedInUsername(request);
try {
APIPublisher apiPublisher = RestAPIPublisherUtil.getApiPublisher(username);
String existingFingerprint = apisApiIdSwaggerGetFingerprint(apiId, ifNoneMatch, ifModifiedSince, request);
if (!StringUtils.isEmpty(ifNoneMatch) && !StringUtils.isEmpty(existingFingerprint) && ifNoneMatch.contains(existingFingerprint)) {
return Response.notModified().build();
}
String swagger = apiPublisher.getApiSwaggerDefinition(apiId);
return Response.ok().header(HttpHeaders.ETAG, "\"" + existingFingerprint + "\"").entity(swagger).build();
} catch (APIManagementException e) {
String errorMessage = "Error while retrieving swagger definition of API : " + apiId;
HashMap<String, String> paramList = new HashMap<String, String>();
paramList.put(APIMgtConstants.ExceptionsConstants.API_ID, apiId);
ErrorDTO errorDTO = RestApiUtil.getErrorDTO(e.getErrorHandler(), paramList);
log.error(errorMessage, e);
return Response.status(e.getErrorHandler().getHttpStatusCode()).entity(errorDTO).build();
}
}
use of org.wso2.charon3.core.exceptions.NotFoundException in project carbon-apimgt by wso2.
the class ApisApiServiceImpl method apisApiIdThreatProtectionPoliciesPost.
/**
* Add a threat protection policy to an API
* @param apiId APIID
* @param policyId Threat protection policy id
* @param request MSF4J Request
* @return HTTP status 200 if success, 500 otherwise
* @throws NotFoundException When the particular resource does not exist in the system
*/
@Override
public Response apisApiIdThreatProtectionPoliciesPost(String apiId, String policyId, Request request) throws NotFoundException {
String username = RestApiUtil.getLoggedInUsername(request);
try {
APIPublisher apiPublisher = RestAPIPublisherUtil.getApiPublisher(username);
if (!apiPublisher.isAPIExists(apiId)) {
ErrorDTO errorDTO = new ErrorDTO();
errorDTO.setCode(404l);
errorDTO.setDescription("Specified API was not found");
return Response.status(404).entity(errorDTO).build();
}
apiPublisher.addThreatProtectionPolicy(apiId, policyId);
return Response.ok().build();
} catch (APIManagementException e) {
log.error(e.getMessage(), e);
return Response.status(500).entity("Internal Server Error.").build();
}
}
use of org.wso2.charon3.core.exceptions.NotFoundException in project carbon-apimgt by wso2.
the class LabelInfoApiServiceImpl method labelInfoGet.
/**
* Get label information for labels provided.
*
* @param labels List of labels
* @param ifNoneMatch If-None-Match header value
* @param ifModifiedSince If-Modified-Since header value
* @param request msf4j request object
* @return Label List
* @throws NotFoundException If failed to get the label values
*/
@Override
public Response labelInfoGet(String labels, String ifNoneMatch, String ifModifiedSince, Request request) throws NotFoundException {
String username = RestApiUtil.getLoggedInUsername(request);
LabelListDTO labelListDTO;
try {
APIStore apiStore = RestApiUtil.getConsumer(username);
if (labels != null) {
List<String> labelNames = Arrays.asList(labels.split(","));
List<Label> labelList = apiStore.getLabelInfo(labelNames, username);
labelListDTO = LabelMappingUtil.toLabelListDTO(labelList);
} else {
// mandatory parameters not provided
String errorMessage = "Labels parameter should be provided";
ErrorHandler errorHandler = ExceptionCodes.PARAMETER_NOT_PROVIDED;
ErrorDTO errorDTO = RestApiUtil.getErrorDTO(errorHandler);
log.error(errorMessage);
return Response.status(errorHandler.getHttpStatusCode()).entity(errorDTO).build();
}
} catch (APIManagementException e) {
String errorMessage = "Error occurred while retrieving label information";
HashMap<String, String> paramList = new HashMap<String, String>();
ErrorDTO errorDTO = RestApiUtil.getErrorDTO(e.getErrorHandler(), paramList);
log.error(errorMessage, e);
return Response.status(e.getErrorHandler().getHttpStatusCode()).entity(errorDTO).build();
}
return Response.ok().entity(labelListDTO).build();
}
use of org.wso2.charon3.core.exceptions.NotFoundException in project carbon-apimgt by wso2.
the class LabelsApiServiceImpl method labelsGet.
/**
* Get all the labels.
*
* @param labelType the type of the labels to be fetched
* @param accept Accept header value
* @param ifNoneMatch If-None-Match header value
* @param request ms4j request object
* @return Lable List
* @throws NotFoundException If failed to get the label values
*/
@Override
public Response labelsGet(String labelType, String accept, String ifNoneMatch, String ifModifiedSince, Request request) throws NotFoundException {
String username = RestApiUtil.getLoggedInUsername(request);
try {
APIStore apiStore = RestApiUtil.getConsumer(username);
List<Label> labels;
if (labelType == null) {
labels = apiStore.getAllLabels();
} else {
labels = apiStore.getLabelsByType(labelType);
}
LabelListDTO labelListDTO = LabelMappingUtil.toLabelListDTO(labels);
return Response.ok().entity(labelListDTO).build();
} catch (APIManagementException e) {
String errorMessage = "Error occurred while retrieving Labels";
HashMap<String, String> paramList = new HashMap<String, String>();
org.wso2.carbon.apimgt.rest.api.common.dto.ErrorDTO errorDTO = RestApiUtil.getErrorDTO(e.getErrorHandler(), paramList);
log.error(errorMessage, e);
return Response.status(e.getErrorHandler().getHttpStatusCode()).entity(errorDTO).build();
}
}
use of org.wso2.charon3.core.exceptions.NotFoundException in project carbon-apimgt by wso2.
the class PoliciesApiServiceImpl method policiesTierLevelTierNameGet.
/**
* Retrieves a tier by tier name and level
*
* @param tierName Name of the tier
* @param tierLevel Level of the tier
* @param ifNoneMatch If-Non-Match header value
* @param ifModifiedSince If-Modified-Since header value
* @param request msf4j request object
* @return The requested tier as the response
* @throws NotFoundException When the particular resource does not exist in the system
*/
@Override
public Response policiesTierLevelTierNameGet(String tierName, String tierLevel, String ifNoneMatch, String ifModifiedSince, Request request) throws NotFoundException {
TierDTO tierDTO = null;
String username = RestApiUtil.getLoggedInUsername(request);
try {
APIStore apiStore = RestApiUtil.getConsumer(username);
String existingFingerprint = policiesTierLevelTierNameGetFingerprint(tierName, tierLevel, ifNoneMatch, ifModifiedSince, request);
if (!StringUtils.isEmpty(ifNoneMatch) && !StringUtils.isEmpty(existingFingerprint) && ifNoneMatch.contains(existingFingerprint)) {
return Response.notModified().build();
}
Policy tier = apiStore.getPolicy(RestApiUtil.mapRestApiPolicyLevelToPolicyLevelEnum(tierLevel), tierName);
tierDTO = TierMappingUtil.fromTierToDTO(tier, tierLevel);
return Response.ok().entity(tierDTO).header(HttpHeaders.ETAG, "\"" + existingFingerprint + "\"").build();
} catch (APIManagementException e) {
String errorMessage = "Error while retrieving tier";
HashMap<String, String> paramList = new HashMap<String, String>();
paramList.put(APIMgtConstants.ExceptionsConstants.TIER_LEVEL, tierLevel);
ErrorDTO errorDTO = RestApiUtil.getErrorDTO(e.getErrorHandler(), paramList);
log.error(errorMessage, e);
return Response.status(e.getErrorHandler().getHttpStatusCode()).entity(errorDTO).build();
}
}
Aggregations