Implements the backend logic for the minerval gestion
This commit is contained in:
parent
3c721de18b
commit
194b14f02b
@ -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;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user