117 lines
4.0 KiB
Java
117 lines
4.0 KiB
Java
package enseirb.myinpulse.controller;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
|
import org.springframework.security.core.annotation.AuthenticationPrincipal;
|
|
import org.springframework.security.oauth2.jwt.Jwt;
|
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
import org.springframework.web.bind.annotation.PathVariable;
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
import org.springframework.web.bind.annotation.PutMapping;
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
import enseirb.myinpulse.model.Project;
|
|
import enseirb.myinpulse.model.SectionCell;
|
|
import enseirb.myinpulse.service.EntrepreneurApiService;
|
|
|
|
@SpringBootApplication
|
|
@RestController
|
|
public class EntrepreneurApi {
|
|
|
|
private final EntrepreneurApiService entrepreneurApiService;
|
|
|
|
@Autowired
|
|
EntrepreneurApi(EntrepreneurApiService entrepreneurApiService) {
|
|
this.entrepreneurApiService = entrepreneurApiService;
|
|
}
|
|
|
|
/**
|
|
* TODO: check return type
|
|
*
|
|
* <p>Endpoint used to update a LC section.
|
|
*
|
|
* @return status code
|
|
*/
|
|
@PutMapping("/entrepreneur/sectionCells/{sectionCellId}")
|
|
public void editSectionCell(
|
|
@PathVariable Long sectionCellId,
|
|
@RequestBody String content,
|
|
@AuthenticationPrincipal Jwt principal) {
|
|
entrepreneurApiService.editSectionCell(
|
|
sectionCellId, content, principal.getClaimAsString("email"));
|
|
}
|
|
|
|
/**
|
|
* Endpoint used to update a LC section.
|
|
*
|
|
* @return status code
|
|
*/
|
|
@GetMapping("/entrepreneur/projects")
|
|
public Iterable<Project> getEntrepreneurProjectId(
|
|
@PathVariable Long sectionCellId,
|
|
@RequestBody String content,
|
|
@AuthenticationPrincipal Jwt principal) {
|
|
return entrepreneurApiService.getProjectIdViaClaim(principal.getClaimAsString("email"));
|
|
}
|
|
|
|
/**
|
|
* TODO: checkReturn Type
|
|
*
|
|
* <p>Endpoint used to delete a LC section
|
|
*
|
|
* @return status code
|
|
*/
|
|
@DeleteMapping("/entrepreneur/sectionCells/{sectionCellId}")
|
|
public void removeSectionCell(
|
|
@PathVariable Long sectionCellId, @AuthenticationPrincipal Jwt principal) {
|
|
entrepreneurApiService.removeSectionCell(
|
|
sectionCellId, principal.getClaimAsString("email"));
|
|
}
|
|
|
|
/**
|
|
* TODO: check return type
|
|
*
|
|
* <p>Endpoint used to create a new LC section
|
|
*
|
|
* @return status code
|
|
*/
|
|
@PostMapping("/entrepreneur/sectionCells")
|
|
public void addLCSection(
|
|
@RequestBody SectionCell sectionCell, @AuthenticationPrincipal Jwt principal) {
|
|
entrepreneurApiService.addSectionCell(sectionCell, principal.getClaimAsString("email"));
|
|
}
|
|
|
|
/**
|
|
* TODO: check return type
|
|
*
|
|
* <p>Endpoint used to request the creation of a new project
|
|
*
|
|
* @return status code
|
|
*/
|
|
@PostMapping("/entrepreneur/projects/request")
|
|
public void requestNewProject(
|
|
@RequestBody Project project, @AuthenticationPrincipal Jwt principal) {
|
|
entrepreneurApiService.requestNewProject(project, principal.getClaimAsString("email"));
|
|
}
|
|
|
|
/*
|
|
* <p>Endpoint to check if project is has already been validated by an admin
|
|
*/
|
|
@GetMapping("/entrepreneur/projects/project-is-active")
|
|
public Boolean checkIfProjectValidated(@AuthenticationPrincipal Jwt principal) {
|
|
return entrepreneurApiService.checkIfEntrepreneurProjectActive(
|
|
principal.getClaimAsString("email"));
|
|
}
|
|
|
|
/*
|
|
* <p>Endpoint to check if a user requested a project (used when project is pending)
|
|
*/
|
|
@GetMapping("/entrepreneur/projects/has-pending-request")
|
|
public Boolean checkIfHasRequested(@AuthenticationPrincipal Jwt principal) {
|
|
return entrepreneurApiService.entrepreneurHasPendingRequestedProject(
|
|
principal.getClaimAsString("email"));
|
|
}
|
|
}
|