many improvements mais flm

This commit is contained in:
Arthur Wambst 2025-10-16 00:24:10 +02:00
parent 7e12f6a838
commit 20568ed0b2
No known key found for this signature in database
7 changed files with 24 additions and 49 deletions

View File

@ -1,7 +1,5 @@
package fr.la_banquise.backend.data.model; package fr.la_banquise.backend.data.model;
import java.util.Set;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import jakarta.persistence.Column; import jakarta.persistence.Column;
import jakarta.persistence.Entity; import jakarta.persistence.Entity;
@ -29,25 +27,20 @@ public class Instance {
allocationSize = 1, initialValue = 1) allocationSize = 1, initialValue = 1)
public Long id; public Long id;
@Column(unique = true, nullable = false) @Column(unique = true, nullable = false) public String name;
public String name;
// So people cant have more than one // So people cant have more than one
// container per JI because name will be login-jiId // container per JI because name will be login-jiId
public int port; public int port;
//@JsonBackReference
@JsonIgnore @JsonIgnore
@ManyToOne @ManyToOne
@JoinColumn(name = "user_id", nullable = false) @JoinColumn(name = "user_id", nullable = false)
public User owner; public User owner;
//@ManyToOne @JoinColumn(name = "ji_id", nullable = false) public Ji ji; public Instance(String name, int port, User user) {
public Instance(String name, int port, User user ) {//, Ji ji) {
this.name = name; this.name = name;
this.port = port; this.port = port;
this.owner = user; this.owner = user;
//this.ji = ji;
} }
} }

View File

@ -30,7 +30,12 @@ public class Ji {
public Long id; public Long id;
public String name; public String name;
public String description; public String description;
public String date;
@ManyToOne
@JoinColumn(name = "site_id") //@JsonIgnore
public Site site;
@JsonIgnore @JsonIgnore
@ManyToMany @ManyToMany
@JoinTable(name = "ji_respos", // Table de liaison @JoinTable(name = "ji_respos", // Table de liaison
@ -45,12 +50,6 @@ public class Ji {
inverseJoinColumns = @JoinColumn(name = "user_id")) inverseJoinColumns = @JoinColumn(name = "user_id"))
public List<User> participants; public List<User> participants;
public String date;
@ManyToOne
@JoinColumn(name = "site_id") //@JsonIgnore
public Site site;
@OneToMany @JoinColumn(name = "instance_id") public List<Instance> instances; @OneToMany @JoinColumn(name = "instance_id") public List<Instance> instances;
public Ji(String name, String description, List<User> respos, String date, public Ji(String name, String description, List<User> respos, String date,
@ -61,5 +60,6 @@ public class Ji {
this.date = date; this.date = date;
this.site = site; this.site = site;
this.participants = new ArrayList<User>(); this.participants = new ArrayList<User>();
this.instances = new ArrayList<Instance>();
} }
} }

View File

@ -1,7 +1,6 @@
package fr.la_banquise.backend.data.model; package fr.la_banquise.backend.data.model;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import jakarta.persistence.CascadeType;
import jakarta.persistence.Column; import jakarta.persistence.Column;
import jakarta.persistence.Entity; import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue; import jakarta.persistence.GeneratedValue;
@ -34,15 +33,12 @@ public class Site {
public String description; public String description;
public String address; public String address;
/*@OneToMany(mappedBy = "ji", cascade = CascadeType.ALL) @OneToMany(mappedBy = "site") @JsonIgnore public List<Ji> listJi;
public List<Instance> instances;*/
@OneToMany(mappedBy = "site") @JsonIgnore public List<Ji> jiInSite;
public Site(String name, String description, String address) { public Site(String name, String description, String address) {
this.name = name; this.name = name;
this.description = description; this.description = description;
this.address = address; this.address = address;
this.jiInSite = new ArrayList<Ji>(); this.listJi = new ArrayList<Ji>();
} }
} }

View File

@ -43,9 +43,9 @@ public class JiResource {
public Response createJi(@QueryParam("name") String name, public Response createJi(@QueryParam("name") String name,
@QueryParam("date") String date, @QueryParam("date") String date,
@QueryParam("respo") String respo, @QueryParam("respo") String respo,
@QueryParam("site") String name_site) { @QueryParam("site_id") Long siteId) {
try { try {
Ji jsp = jiService.createJi(name, date, respo, name_site); Ji jsp = jiService.createJi(name, date, respo, siteId);
return Response.ok(Map.of("created", jsp)).build(); return Response.ok(Map.of("created", jsp)).build();
} catch (Exception e) { } catch (Exception e) {
return Response.status(500) return Response.status(500)

View File

@ -71,7 +71,7 @@ public class SiteEndpoints {
} }
@GET @GET
@Path("/{name}") @Path("/{ID}")
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)
@Authenticated @Authenticated
@Operation(summary = "Gets a site with its name", description = "") @Operation(summary = "Gets a site with its name", description = "")
@ -83,9 +83,9 @@ public class SiteEndpoints {
}) })
public Response public Response
getSiteByName(@PathParam("name") String name) { getSite(@PathParam("ID") Long id) {
try { try {
Site site = siteService.getSiteByName(name); Site site = siteService.getSite(id);
return Response.ok(site.toString()).build(); return Response.ok(site.toString()).build();
} catch (Exception e) { } catch (Exception e) {
return Response.status(500) return Response.status(500)
@ -111,9 +111,9 @@ public class SiteEndpoints {
"Internal server error, usually site not found") "Internal server error, usually site not found")
}) })
public Response public Response
deleteSiteByName(@QueryParam("name") String name) { deleteSite(@QueryParam("ID") Long id) {
try { try {
boolean retour = siteService.deleteSiteByName(name); boolean retour = siteService.deleteSite(id);
if (retour) { if (retour) {
return Response.ok().build(); return Response.ok().build();
} }

View File

@ -23,8 +23,8 @@ public class JiService {
@Transactional @Transactional
public Ji createJi(String name, String description, String address, public Ji createJi(String name, String description, String address,
String site_name) { Long siteId) {
Site site = siteService.getSiteByName(site_name); Site site = siteService.getSite(siteId);
User currentUser = User currentUser =
userRepository.findByName(security.getUserPrincipal().getName()); userRepository.findByName(security.getUserPrincipal().getName());
Ji ji = new Ji(name, description, List.of(currentUser), "date", site); Ji ji = new Ji(name, description, List.of(currentUser), "date", site);

View File

@ -28,38 +28,24 @@ public class SiteService {
public List<Site> getAllSites() { return siteRepository.listAll(); } public List<Site> getAllSites() { return siteRepository.listAll(); }
public Site getSiteByName(String name) { public Site getSite(Long id) { return siteRepository.findById(id); }
return siteRepository.find("name", name).firstResult();
}
public Site getSiteById(Long id) { return siteRepository.findById(id); }
@Transactional @Transactional
public void addJi(Site site, Ji ji) { public void addJi(Site site, Ji ji) {
site.jiInSite.add(ji); site.listJi.add(ji);
} }
@Transactional @Transactional
public void removeJi(Site site, Ji ji) { public void removeJi(Site site, Ji ji) {
site.jiInSite.remove(ji); site.listJi.remove(ji);
} }
@Transactional @Transactional
public boolean deleteSiteById(Long id) { public boolean deleteSite(Long id) {
if (getSiteById(id).jiInSite.isEmpty()) { if (getSite(id).listJi.isEmpty()) {
siteRepository.deleteById(id); siteRepository.deleteById(id);
return true; return true;
} }
return false; return false;
} }
@Transactional
public boolean deleteSiteByName(String name) {
Site site = getSiteByName(name);
if (site.jiInSite.isEmpty()) {
siteRepository.delete(site);
return true;
}
return false;
}
} }