Skip to content
This repository has been archived by the owner on Aug 20, 2021. It is now read-only.

Commit

Permalink
feat: Add a portal configuration to force user to add title and comme…
Browse files Browse the repository at this point in the history
…nt to rate an API

This closes gravitee-io/issues#1364
  • Loading branch information
aelamrani committed Jul 4, 2018
1 parent 14c6f74 commit 04ab9e8
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
*/
package io.gravitee.management.model;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.gravitee.management.model.annotations.ParameterKey;
Expand Down Expand Up @@ -130,8 +129,6 @@ public class Portal {
private String apikeyHeader;
@ParameterKey(Key.PORTAL_SUPPORT_ENABLED)
private Enabled support;
@ParameterKey(Key.PORTAL_RATING_ENABLED)
private Enabled rating;
@ParameterKey(Key.PORTAL_DEVMODE_ENABLED)
private Enabled devMode;
@ParameterKey(Key.PORTAL_USERCREATION_ENABLED)
Expand All @@ -140,11 +137,13 @@ public class Portal {
private PortalApis apis;
private PortalAnalytics analytics;
private PortalDashboard dashboard;
private PortalRating rating;

public Portal() {
apis = new PortalApis();
analytics = new PortalAnalytics();
dashboard = new PortalDashboard();
rating = new PortalRating();
}

public Enabled isDevMode() {
Expand Down Expand Up @@ -203,14 +202,6 @@ public void setSupport(Enabled support) {
this.support = support;
}

public Enabled getRating() {
return rating;
}

public void setRating(Enabled rating) {
this.rating = rating;
}

public Enabled getDevMode() {
return devMode;
}
Expand All @@ -235,6 +226,36 @@ public void setDashboard(PortalDashboard dashboard) {
this.dashboard = dashboard;
}

public PortalRating getRating() {
return rating;
}

public void setRating(PortalRating rating) {
this.rating = rating;
}

public class PortalRating {
@ParameterKey(Key.PORTAL_RATING_ENABLED)
private Boolean enabled;
@ParameterKey(Key.PORTAL_RATING_COMMENT_MANDATORY)
private Mandatory comment;

public Boolean isEnabled() {
return enabled;
}

public void setEnabled(Boolean enabled) {
this.enabled = enabled;
}

public Mandatory getComment() {
return comment;
}

public void setComment(Mandatory comment) {
this.comment = comment;
}
}
}

public class Management {
Expand Down Expand Up @@ -439,16 +460,11 @@ public void setScope(List<String> scope) {
}
}

@JsonIgnore
public static Enabled TRUE = new Enabled(true);
@JsonIgnore
public static Enabled FALSE = new Enabled(false);

public static class Enabled {
private boolean enabled;

Enabled() {}
Enabled(boolean enabled) {
public Enabled(boolean enabled) {
this.enabled = enabled;
}

Expand All @@ -461,6 +477,23 @@ public boolean isEnabled() {
}
}

public static class Mandatory {
private boolean mandatory;

Mandatory() {}
public Mandatory(boolean mandatory) {
this.mandatory = mandatory;
}

public boolean isMandatory() {
return mandatory;
}

public void setMandatory(boolean mandatory) {
this.mandatory = mandatory;
}
}

public static class PortalAnalytics {

@ParameterKey(Key.PORTAL_ANALYTICS_ENABLED)
Expand Down Expand Up @@ -519,11 +552,6 @@ public static class PortalApis {
@ParameterKey(Key.PORTAL_APIS_VIEW_ENABLED)
private Enabled viewMode;

public PortalApis() {
this.tilesMode = TRUE;
this.viewMode = FALSE;
}

public Enabled getTilesMode() {
return tilesMode;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ public enum Key {
PORTAL_APIKEY_HEADER("portal.apikey.header", "X-Gravitee-Api-Key"),
PORTAL_SUPPORT_ENABLED("portal.support.enabled", "false"),
PORTAL_RATING_ENABLED("portal.rating.enabled", "false"),
PORTAL_RATING_COMMENT_MANDATORY("portal.rating.comment.mandatory", "false"),
PORTAL_DEVMODE_ENABLED("portal.devMode.enabled", "false"),
PORTAL_USERCREATION_ENABLED("portal.userCreation.enabled", "true"),
PORTAL_ANALYTICS_ENABLED("portal.analytics.enabled", "false"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
package io.gravitee.management.service.impl;

import io.gravitee.management.model.PortalConfigEntity;
import io.gravitee.management.model.PortalConfigEntity.Enabled;
import io.gravitee.management.model.PortalConfigEntity.Mandatory;
import io.gravitee.management.model.annotations.ParameterKey;
import io.gravitee.management.model.parameters.Key;
import io.gravitee.management.service.ConfigService;
Expand Down Expand Up @@ -73,10 +75,15 @@ public PortalConfigEntity getPortalConfig() {
f.setAccessible(true);
try {
final List<String> values = parameterMap.get(parameterKey.value().key());
if (PortalConfigEntity.Enabled.class.isAssignableFrom(f.getType())) {
if (Enabled.class.isAssignableFrom(f.getType())) {
f.set(o, Boolean.valueOf(getFirstValueOrDefault(values, parameterKey.value().defaultValue()))
? PortalConfigEntity.TRUE
: PortalConfigEntity.FALSE
? new Enabled(true)
: new Enabled(false)
);
} else if (Mandatory.class.isAssignableFrom(f.getType())) {
f.set(o, Boolean.valueOf(getFirstValueOrDefault(values, parameterKey.value().defaultValue()))
? new Mandatory(true)
: new Mandatory(false)
);
} else if (Boolean.class.isAssignableFrom(f.getType())) {
f.set(o, Boolean.valueOf(getFirstValueOrDefault(values, parameterKey.value().defaultValue())));
Expand Down Expand Up @@ -146,8 +153,10 @@ public void save(PortalConfigEntity portalConfigEntity) {
f.setAccessible(true);
try {
Object value;
if (f.get(o) != null && PortalConfigEntity.Enabled.class.isAssignableFrom(f.getType())) {
value = Boolean.toString(((PortalConfigEntity.Enabled) f.get(o)).isEnabled());
if (f.get(o) != null && Enabled.class.isAssignableFrom(f.getType())) {
value = Boolean.toString(((Enabled) f.get(o)).isEnabled());
} else if (f.get(o) != null && Mandatory.class.isAssignableFrom(f.getType())) {
value = Boolean.toString(((Mandatory) f.get(o)).isMandatory());
} else if (f.get(o) != null && !Collection.class.isAssignableFrom(f.getType())) {
value = f.get(o).toString();
} else {
Expand Down Expand Up @@ -182,6 +191,7 @@ private Object[] getObjectArray(PortalConfigEntity portalConfigEntity) {
portalConfigEntity.getPortal().getApis(),
portalConfigEntity.getPortal().getAnalytics(),
portalConfigEntity.getPortal().getDashboard(),
portalConfigEntity.getPortal().getRating(),
portalConfigEntity.getScheduler(),
portalConfigEntity.getTheme(),
portalConfigEntity.getPlan(),
Expand Down

0 comments on commit 04ab9e8

Please sign in to comment.