source: backend/web3-Ednevnik-Backend/src/main/java/com/nikola/web3ednevnikbackend/controller/WeeklyPlanController.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: 4.8 KB
Line 
1package com.nikola.web3ednevnikbackend.controller;
2
3
4import com.nikola.web3ednevnikbackend.dto.weeklyplans.*;
5import com.nikola.web3ednevnikbackend.service.weeklyPlansAndActivities.AktivnostZa_NedelenPlanService;
6import com.nikola.web3ednevnikbackend.service.weeklyPlansAndActivities.NedelenPlanService;
7import jakarta.validation.Valid;
8import org.springframework.http.HttpStatus;
9import org.springframework.http.ResponseEntity;
10import org.springframework.security.access.prepost.PreAuthorize;
11import org.springframework.web.bind.annotation.*;
12
13import java.util.List;
14import java.util.UUID;
15
16@RestController
17public class WeeklyPlanController {
18 private final NedelenPlanService nedelenPlanService;
19 private final AktivnostZa_NedelenPlanService aktivnostZaNedelenPlanService;
20
21 public WeeklyPlanController(NedelenPlanService nedelenPlanService, AktivnostZa_NedelenPlanService aktivnostZaNedelenPlanService) {
22 this.nedelenPlanService = nedelenPlanService;
23 this.aktivnostZaNedelenPlanService = aktivnostZaNedelenPlanService;
24 }
25
26 // GET /api/nedelenPlan
27 @GetMapping("/api/nedelenPlan")
28 @PreAuthorize("hasAnyRole('DIREKTOR_ADMIN', 'KLASEN_RAKOVODITEL', 'PREDMETEN_NASTAVNIK')")
29 public ResponseEntity<List<NedelenPlanResponseDTO>> getAllNedelniPlanovi(){
30 List<NedelenPlanResponseDTO> nedelniPlanovi =this.nedelenPlanService.getAllNedelniPlanovi();
31 return new ResponseEntity<>(nedelniPlanovi, HttpStatus.OK);
32 }
33
34 // POST /api/nedelenPlan
35 @PostMapping("/api/nedelenPlan")
36 @PreAuthorize("hasRole('DIREKTOR_ADMIN')")
37 public ResponseEntity<NedelenPlanResponseDTO> createNedelenPlan(@Valid @RequestBody NedelenPlanRequestDTO nedelenPlanRequestDTO) {
38
39 return new ResponseEntity<>( this.nedelenPlanService.createNedelenPlan(nedelenPlanRequestDTO), HttpStatus.CREATED);
40 }
41
42 // GET /api/nedelenPlan/{id}
43
44 @GetMapping("/api/nedelenPlan/{id}")
45 @PreAuthorize("hasAnyRole('DIREKTOR_ADMIN', 'KLASEN_RAKOVODITEL', 'PREDMETEN_NASTAVNIK')")
46 public ResponseEntity <NedelenPlanResponseDTO> getNedelenPlanById(@PathVariable UUID id) {
47 NedelenPlanResponseDTO nedelenPlan = this.nedelenPlanService.getNedelenPlanById(id);
48 return new ResponseEntity<>(nedelenPlan, HttpStatus.OK);
49 }
50
51 // GET /api/nedelenPlan/{id}/aktivnosti
52 @GetMapping("/api/nedelenPlan/{id}/aktivnosti")
53 @PreAuthorize("hasAnyRole('DIREKTOR_ADMIN', 'KLASEN_RAKOVODITEL', 'PREDMETEN_NASTAVNIK', 'RODITEL')")
54 public ResponseEntity <List<AktivnostZaNedelenPlanResponseDTO>> getAktivnostiZaNedelenPlan(@PathVariable UUID id) {
55 List<AktivnostZaNedelenPlanResponseDTO> aktivnosti =
56 this.nedelenPlanService.getAktivnostiZaNedelenPlan(id);
57 return new ResponseEntity<>(aktivnosti, HttpStatus.OK);
58 }
59
60 // POST /api/nedelenPlan/{id}/aktivnosti
61 @PostMapping("/api/nedelenPlan/{id}/aktivnosti")
62 @PreAuthorize("hasAnyRole('KLASEN_RAKOVODITEL', 'PREDMETEN_NASTAVNIK')") //implement also for predmeten nastavnik
63 public ResponseEntity <AktivnostZaNedelenPlanResponseDTO> addNedelniAktivnostiVoNedelenPlan(@PathVariable("id") UUID nedelenPlanId, @Valid @RequestBody AddNedelniAktivnostiVoNedelenPlanRequestDTO addNedelniAktivnostiVoNedelenPlanRequestDTO){
64
65 this.aktivnostZaNedelenPlanService.addAktivnostZaNedelenPlanToNedelenPlan(nedelenPlanId, addNedelniAktivnostiVoNedelenPlanRequestDTO.getAktivnostZaNedelenPlanId());
66 return new ResponseEntity<>(HttpStatus.CREATED);
67 }
68
69 @GetMapping("/api/nedelnaAktivnost")
70 @PreAuthorize("hasAnyRole('DIREKTOR_ADMIN', 'KLASEN_RAKOVODITEL', 'PREDMETEN_NASTAVNIK')")
71 public ResponseEntity<List<AktivnostZaNedelenPlanResponseDTO>> getAllAktivnostZaNedelenPlan(){
72 List<AktivnostZaNedelenPlanResponseDTO> aktivnostiZaNedelenPlan = this.aktivnostZaNedelenPlanService.getAllAktivnostiZa_NedelenPlan();
73 return new ResponseEntity<>(aktivnostiZaNedelenPlan, HttpStatus.OK);
74 }
75
76 @GetMapping("/api/nedelnaAktivnost/{id}")
77 @PreAuthorize("hasAnyRole('DIREKTOR_ADMIN', 'KLASEN_RAKOVODITEL', 'PREDMETEN_NASTAVNIK')")
78 public ResponseEntity<AktivnostZaNedelenPlanResponseDTO> getAktivnostZaNedelenPlanById(@PathVariable UUID id) {
79 AktivnostZaNedelenPlanResponseDTO aktivnostZaNedelenPlan = this.aktivnostZaNedelenPlanService.getAktivnostZaNedelenPlanById(id);
80 return new ResponseEntity<>(aktivnostZaNedelenPlan, HttpStatus.OK);
81 }
82
83 @PostMapping("/api/nedelnaAktivnost")
84 @PreAuthorize("hasAnyRole('DIREKTOR_ADMIN', 'KLASEN_RAKOVODITEL', 'PREDMETEN_NASTAVNIK')")
85 public ResponseEntity<AktivnostZaNedelenPlanResponseDTO> createAktivnostZaNedelenPlan(@Valid @RequestBody AktivnostZaNedelenPlanRequestDTO aktivnostZaNedelenPlanRequestDTO) {
86
87 return new ResponseEntity<>( this.aktivnostZaNedelenPlanService.createAktivnostZa_NedelenPlan(aktivnostZaNedelenPlanRequestDTO), HttpStatus.CREATED);
88 }
89
90
91
92}
Note: See TracBrowser for help on using the repository browser.