backend-api #6
@@ -21,22 +21,18 @@ public class SharedApi {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * TODO: It does not looks like a good id to have the title and the date in the url. What even
 | 
					     * Endpoint used to get the data inside the lean canvas
 | 
				
			||||||
     * TODO: is the title btw ? if this is the LC section, wouldn't it be better to use an ID ?
 | 
					 | 
				
			||||||
     * TODO: choose return type, cf comment in LCSection
 | 
					 | 
				
			||||||
     *
 | 
					 | 
				
			||||||
     * <p>Endpoint used to get the data inside the lean canvas
 | 
					 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @return a list of lean canvas sections
 | 
					     * @return a list of lean canvas sections
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    @GetMapping("/shared/project/lcsection/{projectId}/{title}/{date}")
 | 
					    @GetMapping("/shared/project/lcsection/{projectId}/{sectionId}/{date}")
 | 
				
			||||||
    public Iterable<SectionCell> getLCSection(
 | 
					    public Iterable<SectionCell> getLCSection(
 | 
				
			||||||
            @PathVariable("projectId") String projectId,
 | 
					            @PathVariable("projectId") Long projectId,
 | 
				
			||||||
            @PathVariable("title") String title,
 | 
					            @PathVariable("sectionId") Long sectionId,
 | 
				
			||||||
            @PathVariable("date") String date,
 | 
					            @PathVariable("date") String date,
 | 
				
			||||||
            @AuthenticationPrincipal Jwt principal) {
 | 
					            @AuthenticationPrincipal Jwt principal) {
 | 
				
			||||||
        return sharedApiService.getLCSection(
 | 
					        return sharedApiService.getSectionCells(
 | 
				
			||||||
                projectId, title, date, principal.getClaimAsString("email"));
 | 
					                projectId, sectionId, date, principal.getClaimAsString("email"));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,42 +11,39 @@ import java.util.List;
 | 
				
			|||||||
@Table(name = "section_cell")
 | 
					@Table(name = "section_cell")
 | 
				
			||||||
public class SectionCell {
 | 
					public class SectionCell {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ManyToMany(mappedBy = "listSectionCell")
 | 
				
			||||||
 | 
					    private final List<Appointment> appointment = new ArrayList<>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @OneToMany(mappedBy = "sectionCellAnnotation", fetch = FetchType.LAZY, orphanRemoval = true)
 | 
				
			||||||
 | 
					    private final List<Annotation> listAnnotation = new ArrayList<>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Id
 | 
					    @Id
 | 
				
			||||||
    @NotNull
 | 
					    @NotNull
 | 
				
			||||||
    @GeneratedValue(strategy = GenerationType.IDENTITY)
 | 
					    @GeneratedValue(strategy = GenerationType.IDENTITY)
 | 
				
			||||||
    private Long idSectionCell;
 | 
					    private Long idSectionCell;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Column(length = 255)
 | 
					    @Column() private long sectionId;
 | 
				
			||||||
    private String title;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private String contentSectionCell;
 | 
					    private String contentSectionCell;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /*@ManyToOne(fetch = FetchType.LAZY)
 | 
				
			||||||
 | 
					    @JoinColumn(name = "idAdministrator")
 | 
				
			||||||
 | 
					    private Administrator administratorSectionCell;*/
 | 
				
			||||||
 | 
					    // should now be useless
 | 
				
			||||||
    private LocalDateTime modificationDate;
 | 
					    private LocalDateTime modificationDate;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @ManyToOne(fetch = FetchType.LAZY)
 | 
					    @ManyToOne(fetch = FetchType.LAZY)
 | 
				
			||||||
    @JoinColumn(name = "idProject")
 | 
					    @JoinColumn(name = "idProject")
 | 
				
			||||||
    private Project projectSectionCell;
 | 
					    private Project projectSectionCell;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /*@ManyToOne(fetch = FetchType.LAZY)
 | 
					 | 
				
			||||||
    @JoinColumn(name = "idAdministrator")
 | 
					 | 
				
			||||||
    private Administrator administratorSectionCell;*/
 | 
					 | 
				
			||||||
    // should now be useless
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @ManyToMany(mappedBy = "listSectionCell")
 | 
					 | 
				
			||||||
    private List<Appointment> appointment = new ArrayList<>();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @OneToMany(mappedBy = "sectionCellAnnotation", fetch = FetchType.LAZY, orphanRemoval = true)
 | 
					 | 
				
			||||||
    private List<Annotation> listAnnotation = new ArrayList<>();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public SectionCell() {}
 | 
					    public SectionCell() {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public SectionCell(
 | 
					    public SectionCell(
 | 
				
			||||||
            Long idSectionCell,
 | 
					            Long idSectionCell,
 | 
				
			||||||
            String title,
 | 
					            Long sectionId,
 | 
				
			||||||
            String contentSectionCell,
 | 
					            String contentSectionCell,
 | 
				
			||||||
            LocalDateTime modificationDate) {
 | 
					            LocalDateTime modificationDate) {
 | 
				
			||||||
        this.idSectionCell = idSectionCell;
 | 
					        this.idSectionCell = idSectionCell;
 | 
				
			||||||
        this.title = title;
 | 
					        this.sectionId = sectionId;
 | 
				
			||||||
        this.contentSectionCell = contentSectionCell;
 | 
					        this.contentSectionCell = contentSectionCell;
 | 
				
			||||||
        this.modificationDate = modificationDate;
 | 
					        this.modificationDate = modificationDate;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -59,12 +56,12 @@ public class SectionCell {
 | 
				
			|||||||
        this.idSectionCell = idSectionCell;
 | 
					        this.idSectionCell = idSectionCell;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public String getTitle() {
 | 
					    public Long getSectionId() {
 | 
				
			||||||
        return title;
 | 
					        return sectionId;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void setTitle(String title) {
 | 
					    public void setSectionId(Long sectionId) {
 | 
				
			||||||
        this.title = title;
 | 
					        this.sectionId = sectionId;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public String getContentSectionCell() {
 | 
					    public String getContentSectionCell() {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,9 +1,13 @@
 | 
				
			|||||||
package enseirb.myinpulse.repository;
 | 
					package enseirb.myinpulse.repository;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import enseirb.myinpulse.model.Project;
 | 
				
			||||||
import enseirb.myinpulse.model.SectionCell;
 | 
					import enseirb.myinpulse.model.SectionCell;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.springframework.data.jpa.repository.JpaRepository;
 | 
					import org.springframework.data.jpa.repository.JpaRepository;
 | 
				
			||||||
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
 | 
					import org.springframework.data.rest.core.annotation.RepositoryRestResource;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@RepositoryRestResource
 | 
					@RepositoryRestResource
 | 
				
			||||||
public interface SectionCellRepository extends JpaRepository<SectionCell, Long> {}
 | 
					public interface SectionCellRepository extends JpaRepository<SectionCell, Long> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Iterable<SectionCell> findByProjectSectionCellAndSectionId(Project project, long sectionId);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,9 +2,9 @@ package enseirb.myinpulse.service;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import enseirb.myinpulse.model.Project;
 | 
					import enseirb.myinpulse.model.Project;
 | 
				
			||||||
import enseirb.myinpulse.model.SectionCell;
 | 
					import enseirb.myinpulse.model.SectionCell;
 | 
				
			||||||
 | 
					 | 
				
			||||||
import enseirb.myinpulse.service.database.ProjectService;
 | 
					import enseirb.myinpulse.service.database.ProjectService;
 | 
				
			||||||
import enseirb.myinpulse.service.database.SectionCellService;
 | 
					import enseirb.myinpulse.service.database.SectionCellService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
import org.springframework.http.HttpStatus;
 | 
					import org.springframework.http.HttpStatus;
 | 
				
			||||||
import org.springframework.stereotype.Service;
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
@@ -31,7 +31,7 @@ public class EntrepreneurApiService {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
        sectionCellService.updateSectionCell(
 | 
					        sectionCellService.updateSectionCell(
 | 
				
			||||||
                sectionCellId,
 | 
					                sectionCellId,
 | 
				
			||||||
                sectionCell.getTitle(),
 | 
					                sectionCell.getSectionId(),
 | 
				
			||||||
                sectionCell.getContentSectionCell(),
 | 
					                sectionCell.getContentSectionCell(),
 | 
				
			||||||
                sectionCell.getModificationDate());
 | 
					                sectionCell.getModificationDate());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +1,7 @@
 | 
				
			|||||||
package enseirb.myinpulse.service;
 | 
					package enseirb.myinpulse.service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import enseirb.myinpulse.model.*;
 | 
					import enseirb.myinpulse.model.*;
 | 
				
			||||||
import enseirb.myinpulse.service.database.AdministratorService;
 | 
					import enseirb.myinpulse.service.database.*;
 | 
				
			||||||
import enseirb.myinpulse.service.database.EntrepreneurService;
 | 
					 | 
				
			||||||
import enseirb.myinpulse.service.database.ProjectService;
 | 
					 | 
				
			||||||
import enseirb.myinpulse.service.database.UserService;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.apache.logging.log4j.LogManager;
 | 
					import org.apache.logging.log4j.LogManager;
 | 
				
			||||||
import org.apache.logging.log4j.Logger;
 | 
					import org.apache.logging.log4j.Logger;
 | 
				
			||||||
@@ -22,17 +19,20 @@ public class SharedApiService {
 | 
				
			|||||||
    private final UserService userService;
 | 
					    private final UserService userService;
 | 
				
			||||||
    private final ProjectService projectService;
 | 
					    private final ProjectService projectService;
 | 
				
			||||||
    private final EntrepreneurService entrepreneurService;
 | 
					    private final EntrepreneurService entrepreneurService;
 | 
				
			||||||
 | 
					    private final SectionCellService sectionCellService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Autowired
 | 
					    @Autowired
 | 
				
			||||||
    SharedApiService(
 | 
					    SharedApiService(
 | 
				
			||||||
            AdministratorService administratorService,
 | 
					            AdministratorService administratorService,
 | 
				
			||||||
            UserService userService,
 | 
					            UserService userService,
 | 
				
			||||||
            ProjectService projectService,
 | 
					            ProjectService projectService,
 | 
				
			||||||
            EntrepreneurService entrepreneurService) {
 | 
					            EntrepreneurService entrepreneurService,
 | 
				
			||||||
 | 
					            SectionCellService sectionCellService) {
 | 
				
			||||||
        this.administratorService = administratorService;
 | 
					        this.administratorService = administratorService;
 | 
				
			||||||
        this.userService = userService;
 | 
					        this.userService = userService;
 | 
				
			||||||
        this.projectService = projectService;
 | 
					        this.projectService = projectService;
 | 
				
			||||||
        this.entrepreneurService = entrepreneurService;
 | 
					        this.entrepreneurService = entrepreneurService;
 | 
				
			||||||
 | 
					        this.sectionCellService = sectionCellService;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // TODO: test
 | 
					    // TODO: test
 | 
				
			||||||
@@ -58,13 +58,23 @@ public class SharedApiService {
 | 
				
			|||||||
        return entrepreneur.getProjectParticipation() == project;
 | 
					        return entrepreneur.getProjectParticipation() == project;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // TODO
 | 
					    // TODO filter this with date
 | 
				
			||||||
    public Iterable<SectionCell> getLCSection(
 | 
					    public Iterable<SectionCell> getSectionCells(
 | 
				
			||||||
            String projectId, String title, String date, String mail) {
 | 
					            long projectId, long sectionId, String date, String mail) {
 | 
				
			||||||
        throw new ResponseStatusException(HttpStatus.NOT_IMPLEMENTED, "Not implemented yet");
 | 
					
 | 
				
			||||||
 | 
					        if (!isAllowedToCheckProject(mail, projectId)) {
 | 
				
			||||||
 | 
					            logger.warn(
 | 
				
			||||||
 | 
					                    "User {} tried to check section cells of the project {} but is not allowed to.",
 | 
				
			||||||
 | 
					                    mail,
 | 
				
			||||||
 | 
					                    projectId);
 | 
				
			||||||
 | 
					            throw new ResponseStatusException(
 | 
				
			||||||
 | 
					                    HttpStatus.UNAUTHORIZED, "You're not allowed to check this project");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        Project project = this.projectService.getProjectById(projectId);
 | 
				
			||||||
 | 
					        return this.sectionCellService.getSectionCellsByProject(project, sectionId);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // TODO: test, protect via email
 | 
					    // TODO: test
 | 
				
			||||||
    public Iterable<Entrepreneur> getEntrepreneursByProjectId(long projectId, String mail) {
 | 
					    public Iterable<Entrepreneur> getEntrepreneursByProjectId(long projectId, String mail) {
 | 
				
			||||||
        if (!isAllowedToCheckProject(mail, projectId)) {
 | 
					        if (!isAllowedToCheckProject(mail, projectId)) {
 | 
				
			||||||
            logger.warn(
 | 
					            logger.warn(
 | 
				
			||||||
@@ -92,14 +102,17 @@ public class SharedApiService {
 | 
				
			|||||||
        return project.getAdministrator();
 | 
					        return project.getAdministrator();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // TODO
 | 
				
			||||||
    public Iterable<Appointment> getAppointmentsByProjectId(int projectId, String mail) {
 | 
					    public Iterable<Appointment> getAppointmentsByProjectId(int projectId, String mail) {
 | 
				
			||||||
        throw new ResponseStatusException(HttpStatus.NOT_IMPLEMENTED, "Not implemented yet");
 | 
					        throw new ResponseStatusException(HttpStatus.NOT_IMPLEMENTED, "Not implemented yet");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // TODO
 | 
				
			||||||
    public void getPDFReport(int appointmentId, String mail) {
 | 
					    public void getPDFReport(int appointmentId, String mail) {
 | 
				
			||||||
        throw new ResponseStatusException(HttpStatus.NOT_IMPLEMENTED, "Not implemented yet");
 | 
					        throw new ResponseStatusException(HttpStatus.NOT_IMPLEMENTED, "Not implemented yet");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // TODO
 | 
				
			||||||
    public void createAppointmentRequest(Appointment appointment, String mail) {
 | 
					    public void createAppointmentRequest(Appointment appointment, String mail) {
 | 
				
			||||||
        throw new ResponseStatusException(HttpStatus.NOT_IMPLEMENTED, "Not implemented yet");
 | 
					        throw new ResponseStatusException(HttpStatus.NOT_IMPLEMENTED, "Not implemented yet");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,6 @@
 | 
				
			|||||||
package enseirb.myinpulse.service.database;
 | 
					package enseirb.myinpulse.service.database;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import enseirb.myinpulse.model.Project;
 | 
				
			||||||
import enseirb.myinpulse.model.SectionCell;
 | 
					import enseirb.myinpulse.model.SectionCell;
 | 
				
			||||||
import enseirb.myinpulse.repository.SectionCellRepository;
 | 
					import enseirb.myinpulse.repository.SectionCellRepository;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -43,14 +44,14 @@ public class SectionCellService {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public SectionCell updateSectionCell(
 | 
					    public SectionCell updateSectionCell(
 | 
				
			||||||
            Long id, String title, String contentSectionCell, LocalDateTime modificationDate) {
 | 
					            Long id, Long sectionId, String contentSectionCell, LocalDateTime modificationDate) {
 | 
				
			||||||
        Optional<SectionCell> sectionCell = this.sectionCellRepository.findById(id);
 | 
					        Optional<SectionCell> sectionCell = this.sectionCellRepository.findById(id);
 | 
				
			||||||
        if (sectionCell.isEmpty()) {
 | 
					        if (sectionCell.isEmpty()) {
 | 
				
			||||||
            throw new ResponseStatusException(
 | 
					            throw new ResponseStatusException(
 | 
				
			||||||
                    HttpStatus.NOT_FOUND, "Cette cellule de section n'existe pas");
 | 
					                    HttpStatus.NOT_FOUND, "Cette cellule de section n'existe pas");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (title != null) {
 | 
					        if (sectionId != null) {
 | 
				
			||||||
            sectionCell.get().setTitle(title);
 | 
					            sectionCell.get().setSectionId(sectionId);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (contentSectionCell != null) {
 | 
					        if (contentSectionCell != null) {
 | 
				
			||||||
            sectionCell.get().setContentSectionCell(contentSectionCell);
 | 
					            sectionCell.get().setContentSectionCell(contentSectionCell);
 | 
				
			||||||
@@ -60,4 +61,8 @@ public class SectionCellService {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
        return this.sectionCellRepository.save(sectionCell.get());
 | 
					        return this.sectionCellRepository.save(sectionCell.get());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Iterable<SectionCell> getSectionCellsByProject(Project project, Long sectionId) {
 | 
				
			||||||
 | 
					        return this.sectionCellRepository.findByProjectSectionCellAndSectionId(project, sectionId);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,62 +0,0 @@
 | 
				
			|||||||
package enseirb.myinpulse.service.database.old_controllers_to_convert_to_services;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import enseirb.myinpulse.model.SectionCell;
 | 
					 | 
				
			||||||
import enseirb.myinpulse.repository.SectionCellRepository;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
					 | 
				
			||||||
import org.springframework.http.HttpStatus;
 | 
					 | 
				
			||||||
import org.springframework.web.bind.annotation.*;
 | 
					 | 
				
			||||||
import org.springframework.web.server.ResponseStatusException;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import java.time.LocalDateTime;
 | 
					 | 
				
			||||||
import java.util.Optional;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@RestController
 | 
					 | 
				
			||||||
public class SectionCellController {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @Autowired SectionCellRepository sectionCellRepository;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @GetMapping("/SectionCell")
 | 
					 | 
				
			||||||
    @ResponseBody
 | 
					 | 
				
			||||||
    public Iterable<SectionCell> allSectionCells() {
 | 
					 | 
				
			||||||
        return this.sectionCellRepository.findAll();
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @GetMapping("/SectionCell/{id}")
 | 
					 | 
				
			||||||
    public SectionCell getSectionCellById(@PathVariable Long id) {
 | 
					 | 
				
			||||||
        Optional<SectionCell> sectionCell = this.sectionCellRepository.findById(id);
 | 
					 | 
				
			||||||
        if (sectionCell.isEmpty()) {
 | 
					 | 
				
			||||||
            throw new ResponseStatusException(
 | 
					 | 
				
			||||||
                    HttpStatus.NOT_FOUND, "Cette cellule de section n'existe pas");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        return sectionCell.get();
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @PostMapping("/SectionCell")
 | 
					 | 
				
			||||||
    public SectionCell addSectionCell(@RequestBody SectionCell sectionCell) {
 | 
					 | 
				
			||||||
        return this.sectionCellRepository.save(sectionCell);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @PostMapping("/SectionCell/{id}")
 | 
					 | 
				
			||||||
    public SectionCell updateSectionCell(
 | 
					 | 
				
			||||||
            @PathVariable Long id,
 | 
					 | 
				
			||||||
            String title,
 | 
					 | 
				
			||||||
            String contentSectionCell,
 | 
					 | 
				
			||||||
            LocalDateTime modificationDate) {
 | 
					 | 
				
			||||||
        Optional<SectionCell> sectionCell = this.sectionCellRepository.findById(id);
 | 
					 | 
				
			||||||
        if (sectionCell.isEmpty()) {
 | 
					 | 
				
			||||||
            throw new ResponseStatusException(
 | 
					 | 
				
			||||||
                    HttpStatus.NOT_FOUND, "Cette cellule de section n'existe pas");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        if (title != null) {
 | 
					 | 
				
			||||||
            sectionCell.get().setTitle(title);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        if (contentSectionCell != null) {
 | 
					 | 
				
			||||||
            sectionCell.get().setContentSectionCell(contentSectionCell);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        if (modificationDate != null) {
 | 
					 | 
				
			||||||
            sectionCell.get().setModificationDate(modificationDate);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        return this.sectionCellRepository.save(sectionCell.get());
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
		Reference in New Issue
	
	Block a user