57 lines
1.8 KiB
Java
57 lines
1.8 KiB
Java
package org.gcube.resourcemanagement.manager.webapp.context;
|
|
|
|
import java.util.Objects;
|
|
import java.util.UUID;
|
|
|
|
import org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException;
|
|
import org.gcube.resourcemanagement.manager.io.codeexceptions.WebCodeException;
|
|
import org.gcube.resourcemanagement.manager.io.rs.RMDeleteContextCode;
|
|
|
|
/**
|
|
* Delete request for a context.
|
|
*
|
|
* @author Manuele Simi (ISTI CNR)
|
|
*
|
|
*/
|
|
public final class DeleteRequest extends RequestToResourceRegistry {
|
|
|
|
final UUID context;
|
|
|
|
private DeleteRequest(UUID context) {
|
|
this.context = context;
|
|
}
|
|
|
|
public static DeleteRequest fromUUID(UUID context) {
|
|
Objects.requireNonNull(context);
|
|
return new DeleteRequest(context);
|
|
}
|
|
/* (non-Javadoc)
|
|
* @see org.gcube.resourcemanagement.manager.webapp.context.RequestToResourceRegistry#validate()
|
|
*/
|
|
@Override
|
|
public RequestToResourceRegistry validate() throws Exception {
|
|
if (!new Queries().contextExists(context, resourceRegistryContextClient)) {
|
|
ResponseFromResourceRegistry.fromException(new WebCodeException(RMDeleteContextCode.CONTEXT_DOES_NOT_EXIST));
|
|
}
|
|
return null;
|
|
}
|
|
|
|
/* (non-Javadoc)
|
|
* @see org.gcube.resourcemanagement.manager.webapp.context.RequestToResourceRegistry#send()
|
|
*/
|
|
@Override
|
|
protected ResponseFromResourceRegistry send() {
|
|
try {
|
|
boolean deleted = resourceRegistryContextClient.delete(context);
|
|
if (!deleted) {
|
|
ResponseFromResourceRegistry.fromException(new WebCodeException(RMDeleteContextCode.GENERIC_ERROR_FROM_RR));
|
|
}
|
|
} catch (ResourceRegistryException e) {
|
|
ResponseFromResourceRegistry.fromException(new WebCodeException(RMDeleteContextCode.GENERIC_ERROR_FROM_RR));
|
|
}
|
|
|
|
return ResponseFromResourceRegistry.newSuccessResponseWithMessage("Context successfully deleted");
|
|
}
|
|
|
|
}
|