Skip to content

Commit 2630c63

Browse files
committed
Base code for new course/update course
1 parent 87f6e19 commit 2630c63

File tree

3 files changed

+46
-19
lines changed

3 files changed

+46
-19
lines changed

backend/src/main/java/com/youdemy/controller/CourseRestController.java

Lines changed: 36 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616
import org.springframework.beans.factory.annotation.Autowired;
1717
import org.springframework.http.HttpStatus;
1818
import org.springframework.http.ResponseEntity;
19+
import org.springframework.security.core.Authentication;
20+
import org.springframework.security.core.context.SecurityContextHolder;
21+
import org.springframework.security.core.userdetails.UserDetails;
1922
import org.springframework.ui.Model;
2023
import org.springframework.util.ResourceUtils;
2124
import org.springframework.web.bind.annotation.GetMapping;
@@ -34,6 +37,7 @@
3437
import com.youdemy.model.Course;
3538
import com.youdemy.model.Lesson;
3639
import com.youdemy.model.User;
40+
import com.youdemy.security.jwt.UserLoginService;
3741
import com.youdemy.service.CourseService;
3842
import com.youdemy.service.UserService;
3943

@@ -48,6 +52,9 @@ public class CourseRestController {
4852
@Autowired
4953
UserService userService;
5054

55+
@Autowired
56+
private UserLoginService userLoginService;
57+
5158
@GetMapping("/")
5259
public Collection<Course> getCourses() {
5360
return courseService.findAll();
@@ -76,30 +83,41 @@ public ResponseEntity<Course> getCourse(@PathVariable long id){
7683
// }
7784

7885
@PostMapping("/")
79-
public String postNewCourse(@RequestParam("title") String title, @RequestParam("thumbnail") String image,
80-
@RequestParam("description") String description, @RequestParam("price") int price,
81-
@RequestParam("tags") List<String> tags, @RequestBody("lessons") List<Lesson> lessons,
82-
Model model) throws IOException {
86+
public String postNewCourse(@RequestBody Course newCourse, Model model) throws IOException {
87+
88+
89+
90+
91+
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
92+
93+
System.out.println("aquiiiiiiiiiiii "+authentication.getName());
94+
8395

84-
Course course = new Course();
85-
User author = userService.findByFirstName(Objects.requireNonNull(model.getAttribute("userName")).toString());
8696

87-
List<Lesson> lessonList = new ArrayList<>(Arrays.asList(new ObjectMapper().readValues(lessons, Lesson[].class)));
88-
lessonList.forEach(lesson -> {
97+
98+
UserDetails userDetails = (UserDetails) SecurityContextHolder.getContext().getAuthentication()
99+
.getPrincipal();
100+
String username = userDetails.getUsername();
101+
102+
System.out.println("aquiiiiiiiiiiii "+username);
103+
104+
User author = userService.findByFirstName(Objects.requireNonNull(authentication.getName()));
105+
106+
107+
newCourse.getLessons().forEach(lesson -> {
89108
lesson.setAuthor(author);
90-
lesson.setCourse(course);
109+
lesson.setCourse(newCourse);
91110
});
92111

93-
course.setAuthor(author);
94-
course.setThumbnail(loadRandomImage());
95-
course.setTitle(title);
96-
course.setDescription(description);
97-
course.setPrice(price);
98-
course.setTags(tags);
99-
course.setLessons(lessonList);
112+
newCourse.setAuthor(author);
113+
newCourse.setThumbnail(loadRandomImage());
114+
100115

101-
courseService.save(course);
102-
return "redirect:/courses";
116+
courseService.save(newCourse);
117+
118+
System.out.println(newCourse.getLessons());
119+
return "redirect:/";
120+
103121
}
104122

105123
public byte[] loadRandomImage() throws IOException {

backend/src/main/java/com/youdemy/model/Lesson.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,15 @@ public Lesson(String title, String description, User author, Course course, Stri
3535
this.videoUrl = videoUrl;
3636
this.imageId = imageId;
3737
}
38+
39+
public Lesson(String title, String description, Course course, String videoUrl, long imageId) {
40+
super();
41+
this.title = title;
42+
this.description = description;
43+
this.course = course;
44+
this.videoUrl = videoUrl;
45+
this.imageId = imageId;
46+
}
3847

3948
public Lesson() {}
4049

backend/target/classes/META-INF/maven/com.youdemy/Youdemy/pom.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#Generated by Maven Integration for Eclipse
2-
#Wed Mar 23 11:37:00 CET 2022
2+
#Fri Mar 25 14:21:54 CET 2022
33
m2e.projectLocation=/Users/emi/Documents/URJC/Web Dev/webapp10/backend
44
m2e.projectName=Youdemy
55
groupId=com.youdemy

0 commit comments

Comments
 (0)