source: backend/web3-Ednevnik-Backend/src/main/java/com/nikola/web3ednevnikbackend/controller/SubjectController.java

Last change on this file was 81cdf2d, checked in by Nikola Janev <nikolajanev57@…>, 9 days ago

initial commit

  • Property mode set to 100644
File size: 3.0 KB
Line 
1package com.nikola.web3ednevnikbackend.controller;
2
3
4import com.nikola.web3ednevnikbackend.dto.subjects.NastavnikGoPredavaPredmetotResponseDTO;
5import com.nikola.web3ednevnikbackend.dto.subjects.PredmetRequestDTO;
6import com.nikola.web3ednevnikbackend.dto.subjects.PredmetResponseDTO;
7import com.nikola.web3ednevnikbackend.model.subjectsAndTeachers.NastavnikGoPredava_Predmetot;
8import com.nikola.web3ednevnikbackend.service.subjects.PredmetService;
9import jakarta.validation.Valid;
10import org.springframework.http.HttpStatus;
11import org.springframework.http.ResponseEntity;
12import org.springframework.security.access.prepost.PreAuthorize;
13import org.springframework.web.bind.annotation.*;
14
15import java.util.List;
16import java.util.UUID;
17
18@RestController
19@RequestMapping("/api/predmeti")
20
21public class SubjectController {
22 private final PredmetService predmetService;
23
24 public SubjectController(PredmetService predmetService) {
25 this.predmetService = predmetService;
26 }
27
28
29 //TODO: === GET Operacii
30 // GET /api/subjects -> zemi gi site predmeti sto postojat na sistemot
31 @GetMapping
32 @PreAuthorize("hasRole('DIREKTOR_ADMIN')")
33 public ResponseEntity<List<PredmetResponseDTO>> getAllPredmeti(){
34 List<PredmetResponseDTO> predmeti = this.predmetService.getAllPredmeti();
35 return new ResponseEntity<>(predmeti, HttpStatus.OK);
36 }
37
38 @GetMapping("/{id}")
39 @PreAuthorize("hasAnyRole('KLASEN_RAKOVODITEL','DIREKTOR_ADMIN', 'PREDMETEN_NASTAVNIK', 'RODITEL')")
40 public ResponseEntity<PredmetResponseDTO> getPredmetById(@PathVariable UUID id){
41 PredmetResponseDTO predmet = this.predmetService.getPredmetById(id);
42 return new ResponseEntity<>(predmet, HttpStatus.OK);
43 }
44 @DeleteMapping("/{id}")
45 @PreAuthorize("hasRole('DIREKTOR_ADMIN')")
46 public ResponseEntity<Void> deletePredmetById(@PathVariable UUID id){
47 this.predmetService.deletePredmetById(id);
48 return new ResponseEntity<>(HttpStatus.NO_CONTENT);
49 }
50 @PostMapping
51 @PreAuthorize("hasRole('DIREKTOR_ADMIN')")
52 public ResponseEntity<Void> createPredmet(@Valid @RequestBody PredmetRequestDTO predmetRequestDTO){
53 this.predmetService.createPredmet(predmetRequestDTO);
54 return new ResponseEntity<>( HttpStatus.CREATED);
55 }
56 @PostMapping("/{predmetId}/dodeli-nastavnik/{nastavnikId}")
57 @PreAuthorize("hasRole('DIREKTOR_ADMIN')")
58 public ResponseEntity<Void> assignNastavnikToPredmet(
59 @PathVariable UUID predmetId,
60 @PathVariable UUID nastavnikId) {
61
62 this.predmetService.assignNastavnikToPredmet(predmetId, nastavnikId);
63 return new ResponseEntity<>(HttpStatus.OK);
64 }
65
66 @GetMapping("/getTeachers")
67 @PreAuthorize("hasRole('DIREKTOR_ADMIN')")
68 public ResponseEntity<List<NastavnikGoPredavaPredmetotResponseDTO>> getAllNastavniciWhoTeachesSubject(
69 ) {
70
71 List<NastavnikGoPredavaPredmetotResponseDTO> nastavnici_subjects = this.predmetService.getAllNastavniciWhoTeachesSubject();
72 return new ResponseEntity<>(nastavnici_subjects,HttpStatus.OK);
73 }
74
75
76
77
78}
Note: See TracBrowser for help on using the repository browser.