added exception in case the feature is not known to the system

This commit is contained in:
Sheldan
2020-04-10 12:06:46 +02:00
parent e84e384706
commit 87c97d5069
9 changed files with 76 additions and 11 deletions

View File

@@ -0,0 +1,31 @@
package dev.sheldan.abstracto.core.exception;
import dev.sheldan.abstracto.templating.Templatable;
import java.util.HashMap;
import java.util.List;
public class FeatureNotFoundException extends AbstractoRunTimeException implements Templatable {
private String feature;
private List<String> availableFeatures;
public FeatureNotFoundException(String message, String feature, List<String> availableFeatures) {
super(message);
this.feature = feature;
this.availableFeatures = availableFeatures;
}
@Override
public String getTemplateName() {
return "feature_not_found";
}
@Override
public Object getTemplateModel() {
HashMap<String, Object> parameters = new HashMap<>();
parameters.put("featureName", this.feature);
parameters.put("availableFeatures", this.availableFeatures);
return parameters;
}
}

View File

@@ -2,4 +2,6 @@ package dev.sheldan.abstracto.core.service;
public interface FeatureFlagService {
boolean isFeatureEnabled(String name, Long serverId);
void enableFeature(String name, Long serverId);
void disableFeature(String name, Long serverId);
}

View File

@@ -9,6 +9,6 @@ public interface FeatureFlagManagementService {
void createFeatureFlag(String key, Long serverId, Boolean newValue);
void createFeatureFlag(String key, AServer server, Boolean newValue);
boolean getFeatureFlagValue(String key, Long serverId);
void updateOrCreateFeatureFlag(String key, Long serverId, Boolean newValue);
void updateFeatureFlag(String key, Long serverId, Boolean newValue);
Optional<AFeatureFlag> getFeatureFlag(String key, Long serverId);
}