added comments and fixed logic issue
This commit is contained in:
		| @ -1,5 +1,12 @@ | ||||
| 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 ovh.herisson.Clyde.Tables.ScientificPublications.Access; | ||||
|  | ||||
| @ -1,5 +1,12 @@ | ||||
| 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 ovh.herisson.Clyde.Services.ProtectionService; | ||||
| import ovh.herisson.Clyde.Tables.ScientificPublications.Researcher; | ||||
|  | ||||
| @ -1,5 +1,13 @@ | ||||
| package ovh.herisson.Clyde.EndPoints.ScientificPublications; | ||||
|  | ||||
| /****************************************************** | ||||
|  * @file ResearchController.java | ||||
|  * @author Bartha Maxime | ||||
|  * @scope Publications Scientifiques | ||||
|  * | ||||
|  * API class for the researches | ||||
|  ******************************************************/ | ||||
|  | ||||
| import lombok.AllArgsConstructor; | ||||
| import org.springframework.http.HttpStatus; | ||||
| import org.springframework.http.ResponseEntity; | ||||
| @ -46,6 +54,10 @@ public class ResearchController { | ||||
|         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") | ||||
|     public ResponseEntity<Iterable<ResearchDTO>> getResearches(@RequestHeader(value = "Authorization",required = false) String token){ | ||||
|         Iterable<Research> researches = researchesServ.getAllResearches(); | ||||
| @ -61,6 +73,10 @@ public class ResearchController { | ||||
|         return new ResponseEntity<>(toReturnResearches,HttpStatus.OK); | ||||
|     } | ||||
|  | ||||
|     /** post a new research | ||||
|      * | ||||
|      * @return the research saved | ||||
|      */ | ||||
|     @PostMapping("/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); | ||||
|     } | ||||
|  | ||||
|     /** post updates to the research | ||||
|      * | ||||
|      */ | ||||
|     @PatchMapping("/research/{id}") | ||||
|     public ResponseEntity<String> patchResearch(@RequestHeader("Authorization") String token, | ||||
|                                           @RequestBody Map<String,Object> updates, | ||||
| @ -118,6 +137,11 @@ public class ResearchController { | ||||
|     ///////////// | ||||
|     // 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") | ||||
|     public  ResponseEntity<Iterable<ResearcherDTO>> getCoAuthors(@PathVariable long id){ | ||||
|        Research research = researchesServ.getResearchById(id); | ||||
| @ -133,6 +157,13 @@ public class ResearchController { | ||||
|        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") | ||||
|     public ResponseEntity<Iterable<ResearcherDTO>> postCoAuthor(@RequestHeader("Authorization") String token, | ||||
|                                                               @RequestBody Iterable<Long> researchersId, | ||||
|  | ||||
| @ -1,5 +1,12 @@ | ||||
| package ovh.herisson.Clyde.EndPoints.ScientificPublications; | ||||
|  | ||||
| /****************************************************** | ||||
|  * @file ResearcherController.java | ||||
|  * @author Bartha Maxime | ||||
|  * @scope Publications Scientifiques | ||||
|  * | ||||
|  * API class for the researchers | ||||
|  ******************************************************/ | ||||
| import lombok.AllArgsConstructor; | ||||
| import org.springframework.http.HttpStatus; | ||||
| import org.springframework.http.ResponseEntity; | ||||
| @ -51,7 +58,9 @@ public class ResearcherController { | ||||
|  | ||||
|         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}") | ||||
| @ -59,9 +68,9 @@ public class ResearcherController { | ||||
|                                                          @PathVariable long id, | ||||
|                                                          @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) | ||||
|                 && researcher == researchesServ.getResearcherByUser(authServ.getUserFromToken(token))) | ||||
|                 || researcher == researchesServ.getResearcherByUser(authServ.getUserFromToken(token))) | ||||
|             return new UnauthorizedResponse<>(null); | ||||
|  | ||||
|         if (researcher == null) return new ResponseEntity<>(HttpStatus.BAD_REQUEST); | ||||
|  | ||||
| @ -110,6 +110,8 @@ public class ResearchesService { | ||||
|     } | ||||
|  | ||||
|     public Researcher saveResearcher(Researcher researcher) { | ||||
|  | ||||
|         if (researcherRepo.findByUser(researcher.getUser()) != null) return null; | ||||
|        return researcherRepo.save(researcher); | ||||
|     } | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user