package org.fenixedu.bennu.io.api; import javax.ws.rs.Consumes; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import org.fenixedu.bennu.core.groups.Group; import org.fenixedu.bennu.core.rest.BennuRestResource; import org.fenixedu.bennu.io.domain.FileStorageConfiguration; import org.fenixedu.bennu.io.domain.FileSupport; import pt.ist.fenixframework.Atomic; import com.google.gson.JsonElement; @Path("/bennu-io/storage/config") public class StorageConfigurationResource extends BennuRestResource { @GET @Produces(MediaType.APPLICATION_JSON) public JsonElement all() { accessControl(Group.managers()); createMissingConfigurations(); return view(FileSupport.getInstance().getConfigurationSet(), "storageConfigurations"); } @Atomic private void createMissingConfigurations() { FileStorageConfiguration.createMissingStorageConfigurations(); } @POST @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public JsonElement post(JsonElement json) { accessControl(Group.managers()); create(json, FileStorageConfiguration.class); return all(); } }