source: src/main/java/mk/ukim/finki/wp/db/controller/LessonController.java

Last change on this file was 5ea00d7, checked in by Malek Alavi <malekalavi7@…>, 8 days ago

Initial project upload

  • Property mode set to 100644
File size: 3.0 KB
Line 
1package mk.ukim.finki.wp.db.controller;
2
3import lombok.RequiredArgsConstructor;
4import mk.ukim.finki.wp.db.entity.Lesson;
5import mk.ukim.finki.wp.db.entity.ModuleEntity;
6import mk.ukim.finki.wp.db.service.LessonService;
7import mk.ukim.finki.wp.db.service.ModuleService;
8import org.springframework.stereotype.Controller;
9import org.springframework.ui.Model;
10import org.springframework.web.bind.annotation.GetMapping;
11import org.springframework.web.bind.annotation.PathVariable;
12import org.springframework.web.bind.annotation.PostMapping;
13import org.springframework.web.bind.annotation.RequestParam;
14
15@Controller
16@RequiredArgsConstructor
17public class LessonController {
18
19 private final ModuleService moduleService;
20 private final LessonService lessonService;
21
22 @GetMapping("/lesson/{moduleId}")
23 public String getLessonsPage(@PathVariable Integer moduleId, Model model) {
24 ModuleEntity moduleEntity = moduleService.findById(moduleId);
25
26 model.addAttribute("module", moduleEntity);
27 model.addAttribute("lessons", lessonService.findAllByModule(moduleEntity));
28
29 return "lesson/lesson";
30 }
31
32 @GetMapping("/lesson/{moduleId}/add")
33 public String getAddLessonPage(@PathVariable Integer moduleId, Model model) {
34 ModuleEntity moduleEntity = moduleService.findById(moduleId);
35
36 model.addAttribute("module", moduleEntity);
37
38 return "lesson/lesson_form";
39 }
40
41 @PostMapping("/lesson/{moduleId}/add")
42 public String addLesson(@PathVariable Integer moduleId,
43 @RequestParam String title,
44 @RequestParam String material) {
45
46 ModuleEntity moduleEntity = moduleService.findById(moduleId);
47 lessonService.addLesson(moduleEntity, title, material);
48
49 return "redirect:/lesson/" + moduleId;
50 }
51
52 @GetMapping("/lesson/{moduleId}/edit/{lessonId}")
53 public String getEditLessonPage(@PathVariable Integer moduleId,
54 @PathVariable Integer lessonId,
55 Model model) {
56
57 ModuleEntity moduleEntity = moduleService.findById(moduleId);
58 Lesson lesson = lessonService.findById(lessonId);
59
60 model.addAttribute("module", moduleEntity);
61 model.addAttribute("lesson", lesson);
62
63 return "lesson/lesson_form";
64 }
65
66 @PostMapping("/lesson/{moduleId}/edit/{lessonId}")
67 public String editLesson(@PathVariable Integer moduleId,
68 @PathVariable Integer lessonId,
69 @RequestParam String title,
70 @RequestParam String material) {
71
72 lessonService.editLesson(lessonId, title, material);
73
74 return "redirect:/lesson/" + moduleId;
75 }
76
77 @PostMapping("/lesson/{moduleId}/delete/{lessonId}")
78 public String deleteLesson(@PathVariable Integer moduleId,
79 @PathVariable Integer lessonId) {
80
81 lessonService.deleteLesson(lessonId);
82
83 return "redirect:/lesson/" + moduleId;
84 }
85}
Note: See TracBrowser for help on using the repository browser.