package carpool.resources.adminResource;
import org.json.JSONObject;
import org.restlet.data.Status;
import org.restlet.ext.json.JsonRepresentation;
import org.restlet.representation.Representation;
import org.restlet.resource.Get;
import carpool.configurations.EnumConfig;
import carpool.configurations.EnumConfig.AdminRoutineAction;
import carpool.dbservice.admin.AdminService;
import carpool.resources.PseudoResource;
public class AdminRoutineResource extends PseudoResource{
@Get
public Representation updateTransaction(Representation entity) {
String access_admin = "";
int actionIndex = -1;
try {
access_admin = this.getQueryVal("access_admin");
actionIndex = Integer.parseInt(this.getQueryVal("actionIndex"));
if (!access_admin.equals(EnumConfig.access_admin)){
setStatus(Status.CLIENT_ERROR_UNAUTHORIZED);
this.addCORSHeader();
return this.buildQuickResponse("invalid authorization value");
}
AdminRoutineAction action = AdminRoutineAction.fromInt(actionIndex);
switch(action){
case clearBothDatabase:
AdminService.clearBothDatabase();
break;
case messageClean:
AdminService.forceMessageClean();
break;
case transactionMonitor:
AdminService.forceTransactionMonitoring();
break;
case cleanAndMonitor:
AdminService.forceMessageClean();
AdminService.forceTransactionMonitoring();
break;
case reloadLocation:
AdminService.forceReloadLocation();
break;
}
} catch(Exception e){
return this.doException(e);
}
Representation result = new JsonRepresentation(new JSONObject());
this.addCORSHeader();
return result;
}
}