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