backend-api #6
@@ -1,6 +1,6 @@
 | 
				
			|||||||
package enseirb.myinpulse.controller;
 | 
					package enseirb.myinpulse.controller;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import enseirb.myinpulse.model.LCSection;
 | 
					import enseirb.myinpulse.model.SectionCell;
 | 
				
			||||||
import enseirb.myinpulse.model.Project;
 | 
					import enseirb.myinpulse.model.Project;
 | 
				
			||||||
import enseirb.myinpulse.service.EntrepreneurApiService;
 | 
					import enseirb.myinpulse.service.EntrepreneurApiService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -29,12 +29,12 @@ public class EntrepreneurApi {
 | 
				
			|||||||
     * @return status code
 | 
					     * @return status code
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    @PutMapping("/entrepreneur/lcsection/modify/{sectionId}")
 | 
					    @PutMapping("/entrepreneur/lcsection/modify/{sectionId}")
 | 
				
			||||||
    public void editLCSection(
 | 
					    public void editSectionCell(
 | 
				
			||||||
            @PathVariable String sectionId,
 | 
					            @PathVariable Long sectionId,
 | 
				
			||||||
            @RequestBody LCSection section,
 | 
					            @RequestBody SectionCell sectionCell,
 | 
				
			||||||
            @AuthenticationPrincipal Jwt principal) {
 | 
					            @AuthenticationPrincipal Jwt principal) {
 | 
				
			||||||
        entrepreneurApiService.editLCSection(
 | 
					        entrepreneurApiService.editSectionCell(
 | 
				
			||||||
                sectionId, section, principal.getClaimAsString("email"));
 | 
					                sectionId, sectionCell, principal.getClaimAsString("email"));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
@@ -45,9 +45,9 @@ public class EntrepreneurApi {
 | 
				
			|||||||
     * @return status code
 | 
					     * @return status code
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    @DeleteMapping("/entrepreneur/lcsection/remove/{sectionId}")
 | 
					    @DeleteMapping("/entrepreneur/lcsection/remove/{sectionId}")
 | 
				
			||||||
    public void removeLCSection(
 | 
					    public void removeSectionCell(
 | 
				
			||||||
            @PathVariable String sectionId, @AuthenticationPrincipal Jwt principal) {
 | 
					            @PathVariable Long sectionId, @AuthenticationPrincipal Jwt principal) {
 | 
				
			||||||
        entrepreneurApiService.removeLCSection(sectionId, principal.getClaimAsString("email"));
 | 
					        entrepreneurApiService.removeSectionCell(sectionId, principal.getClaimAsString("email"));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
@@ -57,13 +57,10 @@ public class EntrepreneurApi {
 | 
				
			|||||||
     *
 | 
					     *
 | 
				
			||||||
     * @return status code
 | 
					     * @return status code
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    @PostMapping("/entrepreneur/lcsection/add/{sectionId}")
 | 
					    @PostMapping("/entrepreneur/lcsection/add") // remove id from doc aswell
 | 
				
			||||||
    public void addLCSection(
 | 
					    public void addLCSection(
 | 
				
			||||||
            @PathVariable String sectionId,
 | 
					            @RequestBody SectionCell sectionCell, @AuthenticationPrincipal Jwt principal) {
 | 
				
			||||||
            @RequestBody LCSection section,
 | 
					        entrepreneurApiService.addSectionCell(sectionCell, principal.getClaimAsString("email"));
 | 
				
			||||||
            @AuthenticationPrincipal Jwt principal) {
 | 
					 | 
				
			||||||
        entrepreneurApiService.addLCSection(
 | 
					 | 
				
			||||||
                sectionId, section, principal.getClaimAsString("email"));
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -33,7 +33,7 @@ public class Annotation {
 | 
				
			|||||||
        return comment;
 | 
					        return comment;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void setCommentary(String comment) {
 | 
					    public void setComment(String comment) {
 | 
				
			||||||
        this.comment = comment;
 | 
					        this.comment = comment;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,29 +1,66 @@
 | 
				
			|||||||
package enseirb.myinpulse.service;
 | 
					package enseirb.myinpulse.service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import enseirb.myinpulse.model.LCSection;
 | 
					 | 
				
			||||||
import enseirb.myinpulse.model.Project;
 | 
					import enseirb.myinpulse.model.Project;
 | 
				
			||||||
 | 
					import enseirb.myinpulse.model.SectionCell;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import enseirb.myinpulse.service.database.ProjectService;
 | 
				
			||||||
 | 
					import enseirb.myinpulse.service.database.SectionCellService;
 | 
				
			||||||
 | 
					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;
 | 
				
			||||||
import org.springframework.web.bind.annotation.*;
 | 
					 | 
				
			||||||
import org.springframework.web.server.ResponseStatusException;
 | 
					import org.springframework.web.server.ResponseStatusException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@Service
 | 
					@Service
 | 
				
			||||||
public class EntrepreneurApiService {
 | 
					public class EntrepreneurApiService {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void editLCSection(String sectionId, LCSection section, String mail) {
 | 
					    private final SectionCellService sectionCellService;
 | 
				
			||||||
        throw new ResponseStatusException(HttpStatus.NOT_IMPLEMENTED, "Not implemented yet");
 | 
					    private final ProjectService projectService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    EntrepreneurApiService(SectionCellService sectionCellService, ProjectService projectService) {
 | 
				
			||||||
 | 
					        this.sectionCellService = sectionCellService;
 | 
				
			||||||
 | 
					        this.projectService = projectService;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void removeLCSection(String sectionId, String mail) {
 | 
					    public void editSectionCell(Long sectionCellId, SectionCell sectionCell, String mail) {
 | 
				
			||||||
        throw new ResponseStatusException(HttpStatus.NOT_IMPLEMENTED, "Not implemented yet");
 | 
					        SectionCell editSectionCell = sectionCellService.getSectionCellById(sectionCellId);
 | 
				
			||||||
 | 
					        if (editSectionCell == null) {
 | 
				
			||||||
 | 
					            System.err.println("Trying to edit unknown section cell");
 | 
				
			||||||
 | 
					            throw new ResponseStatusException(
 | 
				
			||||||
 | 
					                    HttpStatus.NOT_FOUND, "Cette cellule de section n'existe pas");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        sectionCellService.updateSectionCell(
 | 
				
			||||||
 | 
					                sectionCellId,
 | 
				
			||||||
 | 
					                sectionCell.getTitle(),
 | 
				
			||||||
 | 
					                sectionCell.getContentSectionCell(),
 | 
				
			||||||
 | 
					                sectionCell.getModificationDate());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void addLCSection(String sectionId, LCSection section, String mail) {
 | 
					    public void removeSectionCell(Long sectionCellId, String mail) {
 | 
				
			||||||
        throw new ResponseStatusException(HttpStatus.NOT_IMPLEMENTED, "Not implemented yet");
 | 
					        SectionCell editSectionCell = sectionCellService.getSectionCellById(sectionCellId);
 | 
				
			||||||
 | 
					        if (editSectionCell == null) {
 | 
				
			||||||
 | 
					            System.err.println("Trying to remove unknown section cell");
 | 
				
			||||||
 | 
					            throw new ResponseStatusException(
 | 
				
			||||||
 | 
					                    HttpStatus.NOT_FOUND, "Cette cellule de section n'existe pas");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        sectionCellService.removeSectionCellById(sectionCellId);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void addSectionCell(SectionCell sectionCell, String mail) {
 | 
				
			||||||
 | 
					        if (sectionCell == null) {
 | 
				
			||||||
 | 
					            System.err.println("Trying to create an empty section cell");
 | 
				
			||||||
 | 
					            throw new ResponseStatusException(
 | 
				
			||||||
 | 
					                    HttpStatus.BAD_REQUEST, "La cellule de section fournie est vide");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        sectionCellService.addNewSectionCell(sectionCell);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void requestNewProject(Project project, String mail) {
 | 
					    public void requestNewProject(Project project, String mail) {
 | 
				
			||||||
        throw new ResponseStatusException(HttpStatus.NOT_IMPLEMENTED, "Not implemented yet");
 | 
					        if (project == null) {
 | 
				
			||||||
 | 
					            System.err.println("Trying to request the creation of a null project");
 | 
				
			||||||
 | 
					            throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "Le projet fourni est vide");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        project.setProjectStatus("PENDING");
 | 
				
			||||||
 | 
					        projectService.addNewProject(project);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,54 @@
 | 
				
			|||||||
 | 
					package enseirb.myinpulse.service.database;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import enseirb.myinpulse.model.Annotation;
 | 
				
			||||||
 | 
					import enseirb.myinpulse.repository.AnnotationRepository;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.http.HttpStatus;
 | 
				
			||||||
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					import org.springframework.web.server.ResponseStatusException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.Optional;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@Service
 | 
				
			||||||
 | 
					public class AnnotationService {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private final AnnotationRepository annotationRepository;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    AnnotationService(AnnotationRepository annotationRepository) {
 | 
				
			||||||
 | 
					        this.annotationRepository = annotationRepository;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Iterable<Annotation> getAllAnnotations() {
 | 
				
			||||||
 | 
					        return annotationRepository.findAll();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Annotation getAnnotationById(Long id) {
 | 
				
			||||||
 | 
					        Optional<Annotation> annotation = annotationRepository.findById(id);
 | 
				
			||||||
 | 
					        if (annotation.isEmpty()) {
 | 
				
			||||||
 | 
					            throw new ResponseStatusException(
 | 
				
			||||||
 | 
					                    HttpStatus.NOT_FOUND, "Cette annotation n'existe pas");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return annotation.get();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Annotation addNewAnnotation(Annotation annotation) {
 | 
				
			||||||
 | 
					        return this.annotationRepository.save(annotation);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void deleteAnnotationById(Long id) {
 | 
				
			||||||
 | 
					        this.annotationRepository.deleteById(id);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Annotation updateAnnotation(Long id, String comment) {
 | 
				
			||||||
 | 
					        Optional<Annotation> annotation = annotationRepository.findById(id);
 | 
				
			||||||
 | 
					        if (annotation.isEmpty()) {
 | 
				
			||||||
 | 
					            return null;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        if (comment != null) {
 | 
				
			||||||
 | 
					            annotation.get().setComment(comment);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return this.annotationRepository.save(annotation.get());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,63 @@
 | 
				
			|||||||
 | 
					package enseirb.myinpulse.service.database;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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.stereotype.Service;
 | 
				
			||||||
 | 
					import org.springframework.web.server.ResponseStatusException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.time.LocalDateTime;
 | 
				
			||||||
 | 
					import java.util.Optional;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@Service
 | 
				
			||||||
 | 
					public class SectionCellService {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private final SectionCellRepository sectionCellRepository;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    SectionCellService(SectionCellRepository sectionCellRepository) {
 | 
				
			||||||
 | 
					        this.sectionCellRepository = sectionCellRepository;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Iterable<SectionCell> getAllSectionCells() {
 | 
				
			||||||
 | 
					        return this.sectionCellRepository.findAll();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public SectionCell getSectionCellById(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();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public SectionCell addNewSectionCell(SectionCell sectionCell) {
 | 
				
			||||||
 | 
					        return this.sectionCellRepository.save(sectionCell);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void removeSectionCellById(Long id) {
 | 
				
			||||||
 | 
					        this.sectionCellRepository.deleteById(id);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public SectionCell updateSectionCell(
 | 
				
			||||||
 | 
					            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