Skip to content
Snippets Groups Projects
Select Git revision
  • 1e4e7f1f5697f9086b48ef8eab42ad40033f1ea6
  • main default protected
  • version_pour_projet_2
  • dev
  • LIVRABLE_3
  • LIVRABLE_2
  • LIVRABLE_1
7 results

FTPResource.java

Blame
  • 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(