Implements the backend logic for the minerval gestion
This commit is contained in:
		| @ -0,0 +1,45 @@ | ||||
| package ovh.herisson.Clyde.EndPoints; | ||||
|  | ||||
| import org.apache.coyote.Response; | ||||
| import org.springframework.http.HttpStatus; | ||||
| import org.springframework.http.ResponseEntity; | ||||
| import org.springframework.web.bind.annotation.*; | ||||
| import ovh.herisson.Clyde.Repositories.MinervalRepository; | ||||
| import ovh.herisson.Clyde.Responses.UnauthorizedResponse; | ||||
| import ovh.herisson.Clyde.Services.AuthenticatorService; | ||||
| import ovh.herisson.Clyde.Tables.Minerval; | ||||
| import ovh.herisson.Clyde.Tables.Role; | ||||
|  | ||||
| import java.util.*; | ||||
|  | ||||
| @RestController | ||||
| public class MinervalController { | ||||
|     private final AuthenticatorService authServ; | ||||
|     private final MinervalRepository mr; | ||||
|  | ||||
|     public MinervalController(AuthenticatorService authServ, MinervalRepository mr) { | ||||
|         this.authServ = authServ; | ||||
|         this.mr = mr; | ||||
|     } | ||||
|  | ||||
|     //A new minerval entry is posted when the inscription service accept a registration request | ||||
|     @PostMapping("/minerval/{studentRegNo}") | ||||
|     public ResponseEntity<Object> postMinerval(@RequestHeader("Authorization") String token, @PathVariable long studentRegNo){ | ||||
|         if (authServ.isNotIn(new Role[]{Role.Admin,Role.Secretary,Role.InscriptionService},token)) | ||||
|             return new UnauthorizedResponse<>(null); | ||||
|  | ||||
|         Calendar c = new GregorianCalendar(); | ||||
|  | ||||
|         mr.save(new Minerval(studentRegNo, 0, 835, c.get(Calendar.YEAR))); | ||||
|         return new ResponseEntity<>(HttpStatus.OK); | ||||
|     } | ||||
|  | ||||
|     @GetMapping("/minerval/{studentRegNo}") | ||||
|     public ResponseEntity<Minerval> getCurrentMinervalbyRegNo(@PathVariable long studentRegNo){ | ||||
|         ArrayList<Minerval> mlist = mr.getMinervalsByStudentRegNoOrderByYearDesc(studentRegNo); | ||||
|  | ||||
|         //The list is ordered by year in descending order then the index 0 contains the actual minerval (for this year) | ||||
|         Minerval m = mlist.get(0); | ||||
|         return new ResponseEntity<>(m, HttpStatus.OK); | ||||
|     } | ||||
| } | ||||
| @ -0,0 +1,10 @@ | ||||
| package ovh.herisson.Clyde.Repositories; | ||||
|  | ||||
| import org.springframework.data.repository.CrudRepository; | ||||
| import ovh.herisson.Clyde.Tables.Minerval; | ||||
|  | ||||
| import java.util.ArrayList; | ||||
|  | ||||
| public interface MinervalRepository extends CrudRepository<Minerval, Long> { | ||||
|     public ArrayList<Minerval> getMinervalsByStudentRegNoOrderByYearDesc(Long studentRegNo); | ||||
| } | ||||
| @ -0,0 +1,64 @@ | ||||
| package ovh.herisson.Clyde.Tables; | ||||
|  | ||||
| import jakarta.persistence.Entity; | ||||
| import jakarta.persistence.GeneratedValue; | ||||
| import jakarta.persistence.GenerationType; | ||||
| import jakarta.persistence.Id; | ||||
|  | ||||
| @Entity | ||||
| public class Minerval { | ||||
|     @Id | ||||
|     @GeneratedValue(strategy = GenerationType.AUTO) | ||||
|     private long id; | ||||
|  | ||||
|     private long studentRegNo; | ||||
|     private int paidAmount; | ||||
|     private int toPay; | ||||
|  | ||||
|     //If the academic year is 2023-2024 then 2023 will be stored here (we take the lowest year) | ||||
|     private int year; | ||||
|     public Minerval(){} | ||||
|  | ||||
|     public Minerval(long studentRegNo, int paidAmount, int toPay, int year){ | ||||
|         this.studentRegNo = studentRegNo; | ||||
|         this.paidAmount = paidAmount; | ||||
|         this.toPay = toPay; | ||||
|         this.year = year; | ||||
|     } | ||||
|  | ||||
|     public long getStudentRegNo() { | ||||
|         return studentRegNo; | ||||
|     } | ||||
|  | ||||
|     public void setStudentRegNo(long studentRegNo) { | ||||
|         this.studentRegNo = studentRegNo; | ||||
|     } | ||||
|  | ||||
|     public int getPaidAmount() { | ||||
|         return paidAmount; | ||||
|     } | ||||
|  | ||||
|     public void setPaidAmount(int paidAmount) { | ||||
|         this.paidAmount = paidAmount; | ||||
|     } | ||||
|  | ||||
|     public int getToPay() { | ||||
|         return toPay; | ||||
|     } | ||||
|  | ||||
|     public void setToPay(int toPay) { | ||||
|         this.toPay = toPay; | ||||
|     } | ||||
|  | ||||
|     public int getYear() { | ||||
|         return year; | ||||
|     } | ||||
|  | ||||
|     public void setYear(int year) { | ||||
|         this.year = year; | ||||
|     } | ||||
|  | ||||
|     public long getId() { | ||||
|         return id; | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user