filtering configuration (for pretty printing purposes)

This commit is contained in:
John Woodlock
2012-05-26 15:36:22 +10:00
parent 31647034d1
commit b96764da56
2 changed files with 33 additions and 15 deletions
@@ -6,7 +6,10 @@ import java.util.List;
import javax.xml.bind.annotation.XmlRootElement;
import org.codehaus.jackson.map.annotate.JsonFilter;
@XmlRootElement(name = "configuration")
@JsonFilter("myFilter")
public class ConfigurationData implements Serializable {
private List<CurrencyData> selectedCurrencyOptions = new ArrayList<CurrencyData>();
@@ -5,11 +5,14 @@ import javax.ws.rs.GET;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
import org.mifosng.data.ConfigurationData;
import org.mifosng.data.command.OrganisationCurrencyCommand;
import org.mifosng.platform.api.infrastructure.ApiJSONFormattingService;
import org.mifosng.platform.configuration.service.ConfigurationReadPlatformService;
import org.mifosng.platform.configuration.service.ConfigurationWritePlatformService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -21,30 +24,42 @@ import org.springframework.stereotype.Component;
@Scope("singleton")
public class ConfigurationApiResource {
@Autowired
private String allowedFieldList = "";
private String filterName = "myFilter";
@Autowired
private ConfigurationReadPlatformService configurationReadPlatformService;
@Autowired
private ConfigurationWritePlatformService configurationWritePlatformService;
@GET
@Path("currency")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
@Produces({MediaType.APPLICATION_JSON})
public Response retrieveCurrencyDataForConfiguration() {
@Autowired
private ApiJSONFormattingService jsonFormattingService;
ConfigurationData configurationData = this.configurationReadPlatformService.retrieveCurrencyConfiguration();
return Response.ok().entity(configurationData).build();
@GET
@Path("currency")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@Produces({ MediaType.APPLICATION_JSON })
public String retrieveCurrencyDataForConfiguration(@Context UriInfo uriInfo) {
ConfigurationData configurationData = this.configurationReadPlatformService
.retrieveCurrencyConfiguration();
String selectedFields = "";
return this.jsonFormattingService.convertRequest(configurationData,
filterName, allowedFieldList, selectedFields,
uriInfo.getQueryParameters());
}
@PUT
@Path("currency")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
@Produces({ MediaType.APPLICATION_JSON})
public Response updateAllowedCurrenciesForOrganisation(OrganisationCurrencyCommand command) {
this.configurationWritePlatformService.updateOrganisationCurrencies(command);
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@Produces({ MediaType.APPLICATION_JSON })
public Response updateAllowedCurrenciesForOrganisation(
OrganisationCurrencyCommand command) {
this.configurationWritePlatformService
.updateOrganisationCurrencies(command);
return Response.ok().entity(command).build();
}