Select Git revision
FTPResource.java
-
fabiovandewaeter authoredfabiovandewaeter authored
FTPResource.java 8.04 KiB
package fil.sr2.flopbox;
import jakarta.ws.rs.*;
import jakarta.ws.rs.core.*;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import java.util.List;
@Path("/ftps")
public class FTPResource {
private FTPService ftpService;
// Endpoints pour gérer la configuration des serveurs FTP
public FTPResource(FTPService ftpService) {
this.ftpService = ftpService;
}
public FTPResource() {
this.ftpService = new FTPService();
}
@GET
@Produces(MediaType.APPLICATION_JSON)
public Response listFTPServers() {
System.out.println("listFTPServers()");
List<FTPServerConfig> servers = FTPServerRepository.getInstance().getAllServers();
return Response.ok(servers).build();
}
@POST
@Consumes(MediaType.APPLICATION_JSON)
public Response addFTPServer(FTPServerConfig config, @Context UriInfo uriInfo) {
System.out.println("addFTPServer()");
boolean created = FTPServerRepository.getInstance().addServer(config);
if (!created) {
return Response.status(Response.Status.CONFLICT)
.entity("Alias déjà utilisé").build();
}
UriBuilder builder = uriInfo.getAbsolutePathBuilder();
builder.path(config.getAlias());
return Response.created(builder.build()).build();
}
@DELETE
@Path("/{alias}")
public Response removeFTPServer(@PathParam("alias") String alias) {
System.out.println("removeFTPServer()");
boolean removed = FTPServerRepository.getInstance().removeServer(alias);
return removed ? Response.noContent().build()
: Response.status(Response.Status.NOT_FOUND).build();
}
@PUT
@Path("/{alias}")
@Consumes(MediaType.APPLICATION_JSON)
public Response updateFTPServer(@PathParam("alias") String alias, FTPServerConfig newConfig) {
System.out.println("updateFTPServer()");
boolean updated = FTPServerRepository.getInstance().updateServer(alias, newConfig);
return updated ? Response.ok(newConfig).build()
: Response.status(Response.Status.NOT_FOUND).build();
}
// --- Endpoints pour les opérations FTP ---
@GET
@Path("/list/{alias}")
@Produces(MediaType.APPLICATION_JSON)
public Response getFTPRoot(