added comments and fixed logic issue
This commit is contained in:
parent
17cb969160
commit
1498cfa11e
@ -1,5 +1,12 @@
|
|||||||
package ovh.herisson.Clyde.DTO.ScientificPublications;
|
package ovh.herisson.Clyde.DTO.ScientificPublications;
|
||||||
|
|
||||||
|
/******************************************************
|
||||||
|
* @file ResearchDTO.java
|
||||||
|
* @author Bartha Maxime
|
||||||
|
* @scope Publications Scientifiques
|
||||||
|
*
|
||||||
|
* Research format to return to front (without author's password)
|
||||||
|
******************************************************/
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import ovh.herisson.Clyde.Tables.ScientificPublications.Access;
|
import ovh.herisson.Clyde.Tables.ScientificPublications.Access;
|
||||||
|
@ -1,5 +1,12 @@
|
|||||||
package ovh.herisson.Clyde.DTO.ScientificPublications;
|
package ovh.herisson.Clyde.DTO.ScientificPublications;
|
||||||
|
|
||||||
|
/******************************************************
|
||||||
|
* @file ResearcherDTO.java
|
||||||
|
* @author Bartha Maxime
|
||||||
|
* @scope Publications Scientifiques
|
||||||
|
*
|
||||||
|
* Researcher Format to return to front (without user password)
|
||||||
|
******************************************************/
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import ovh.herisson.Clyde.Services.ProtectionService;
|
import ovh.herisson.Clyde.Services.ProtectionService;
|
||||||
import ovh.herisson.Clyde.Tables.ScientificPublications.Researcher;
|
import ovh.herisson.Clyde.Tables.ScientificPublications.Researcher;
|
||||||
|
@ -1,5 +1,13 @@
|
|||||||
package ovh.herisson.Clyde.EndPoints.ScientificPublications;
|
package ovh.herisson.Clyde.EndPoints.ScientificPublications;
|
||||||
|
|
||||||
|
/******************************************************
|
||||||
|
* @file ResearchController.java
|
||||||
|
* @author Bartha Maxime
|
||||||
|
* @scope Publications Scientifiques
|
||||||
|
*
|
||||||
|
* API class for the researches
|
||||||
|
******************************************************/
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
@ -46,6 +54,10 @@ public class ResearchController {
|
|||||||
return new ResponseEntity<>(ResearchDTO.construct(research), HttpStatus.OK);
|
return new ResponseEntity<>(ResearchDTO.construct(research), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param token used to know if the user can download or not the research pdf
|
||||||
|
* @return every research
|
||||||
|
*/
|
||||||
@GetMapping("/researches")
|
@GetMapping("/researches")
|
||||||
public ResponseEntity<Iterable<ResearchDTO>> getResearches(@RequestHeader(value = "Authorization",required = false) String token){
|
public ResponseEntity<Iterable<ResearchDTO>> getResearches(@RequestHeader(value = "Authorization",required = false) String token){
|
||||||
Iterable<Research> researches = researchesServ.getAllResearches();
|
Iterable<Research> researches = researchesServ.getAllResearches();
|
||||||
@ -61,6 +73,10 @@ public class ResearchController {
|
|||||||
return new ResponseEntity<>(toReturnResearches,HttpStatus.OK);
|
return new ResponseEntity<>(toReturnResearches,HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** post a new research
|
||||||
|
*
|
||||||
|
* @return the research saved
|
||||||
|
*/
|
||||||
@PostMapping("/research")
|
@PostMapping("/research")
|
||||||
public ResponseEntity<Research> postResearch(@RequestHeader("Authorization") String token, @RequestBody Research research){
|
public ResponseEntity<Research> postResearch(@RequestHeader("Authorization") String token, @RequestBody Research research){
|
||||||
|
|
||||||
@ -72,6 +88,9 @@ public class ResearchController {
|
|||||||
return new ResponseEntity<>(researchesServ.saveResearch(research), HttpStatus.OK);
|
return new ResponseEntity<>(researchesServ.saveResearch(research), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** post updates to the research
|
||||||
|
*
|
||||||
|
*/
|
||||||
@PatchMapping("/research/{id}")
|
@PatchMapping("/research/{id}")
|
||||||
public ResponseEntity<String> patchResearch(@RequestHeader("Authorization") String token,
|
public ResponseEntity<String> patchResearch(@RequestHeader("Authorization") String token,
|
||||||
@RequestBody Map<String,Object> updates,
|
@RequestBody Map<String,Object> updates,
|
||||||
@ -118,6 +137,11 @@ public class ResearchController {
|
|||||||
/////////////
|
/////////////
|
||||||
// Co-authors Part
|
// Co-authors Part
|
||||||
|
|
||||||
|
/** get all the co-authors in a research
|
||||||
|
*
|
||||||
|
* @param id the research id
|
||||||
|
* @return all the co-authors associated with the research
|
||||||
|
*/
|
||||||
@GetMapping("/research/{id}/co-authors")
|
@GetMapping("/research/{id}/co-authors")
|
||||||
public ResponseEntity<Iterable<ResearcherDTO>> getCoAuthors(@PathVariable long id){
|
public ResponseEntity<Iterable<ResearcherDTO>> getCoAuthors(@PathVariable long id){
|
||||||
Research research = researchesServ.getResearchById(id);
|
Research research = researchesServ.getResearchById(id);
|
||||||
@ -133,6 +157,13 @@ public class ResearchController {
|
|||||||
return new ResponseEntity<>(toReturn,HttpStatus.OK);
|
return new ResponseEntity<>(toReturn,HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** post co-authors to the research
|
||||||
|
*
|
||||||
|
* @param token the Authorization header
|
||||||
|
* @param researchersId the co-authors ids
|
||||||
|
* @param id the research id
|
||||||
|
* @return the added researchers
|
||||||
|
*/
|
||||||
@PostMapping("/research/{id}/co-authors")
|
@PostMapping("/research/{id}/co-authors")
|
||||||
public ResponseEntity<Iterable<ResearcherDTO>> postCoAuthor(@RequestHeader("Authorization") String token,
|
public ResponseEntity<Iterable<ResearcherDTO>> postCoAuthor(@RequestHeader("Authorization") String token,
|
||||||
@RequestBody Iterable<Long> researchersId,
|
@RequestBody Iterable<Long> researchersId,
|
||||||
|
@ -1,5 +1,12 @@
|
|||||||
package ovh.herisson.Clyde.EndPoints.ScientificPublications;
|
package ovh.herisson.Clyde.EndPoints.ScientificPublications;
|
||||||
|
|
||||||
|
/******************************************************
|
||||||
|
* @file ResearcherController.java
|
||||||
|
* @author Bartha Maxime
|
||||||
|
* @scope Publications Scientifiques
|
||||||
|
*
|
||||||
|
* API class for the researchers
|
||||||
|
******************************************************/
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
@ -51,7 +58,9 @@ public class ResearcherController {
|
|||||||
|
|
||||||
Researcher posted = researchesServ.saveResearcher(researcher);
|
Researcher posted = researchesServ.saveResearcher(researcher);
|
||||||
|
|
||||||
return new ResponseEntity<>(ResearcherDTO.construct(posted), HttpStatus.OK);
|
if (posted == null) return new ResponseEntity<>(null, HttpStatus.BAD_REQUEST);
|
||||||
|
|
||||||
|
return new ResponseEntity<>(ResearcherDTO.construct(posted), HttpStatus.CREATED);
|
||||||
}
|
}
|
||||||
|
|
||||||
@PatchMapping("/researcher/{id}")
|
@PatchMapping("/researcher/{id}")
|
||||||
@ -59,9 +68,9 @@ public class ResearcherController {
|
|||||||
@PathVariable long id,
|
@PathVariable long id,
|
||||||
@RequestBody Map<String ,Object> updates){
|
@RequestBody Map<String ,Object> updates){
|
||||||
|
|
||||||
Researcher researcher = researchesServ.getResearcherById(id); //todo check authorization j'ai pu patch sans le bon token
|
Researcher researcher = researchesServ.getResearcherById(id);
|
||||||
if (authServ.isNotIn(new Role[]{Role.Secretary,Role.Admin}, token)
|
if (authServ.isNotIn(new Role[]{Role.Secretary,Role.Admin}, token)
|
||||||
&& researcher == researchesServ.getResearcherByUser(authServ.getUserFromToken(token)))
|
|| researcher == researchesServ.getResearcherByUser(authServ.getUserFromToken(token)))
|
||||||
return new UnauthorizedResponse<>(null);
|
return new UnauthorizedResponse<>(null);
|
||||||
|
|
||||||
if (researcher == null) return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
|
if (researcher == null) return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
|
||||||
|
@ -110,6 +110,8 @@ public class ResearchesService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Researcher saveResearcher(Researcher researcher) {
|
public Researcher saveResearcher(Researcher researcher) {
|
||||||
|
|
||||||
|
if (researcherRepo.findByUser(researcher.getUser()) != null) return null;
|
||||||
return researcherRepo.save(researcher);
|
return researcherRepo.save(researcher);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user