فهرست منبع

Add and remove meetings

dagarcos 2 سال پیش
والد
کامیت
76bafdb6e5
2فایلهای تغییر یافته به همراه35 افزوده شده و 6 حذف شده
  1. 34 5
      src/main/java/es/uv/garcosda/controllers/MeetupController.java
  2. 1 1
      src/main/resources/templates/index.html

+ 34 - 5
src/main/java/es/uv/garcosda/controllers/MeetupController.java

@@ -3,23 +3,52 @@ package es.uv.garcosda.controllers;
 import es.uv.garcosda.domain.Meeting;
 
 import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
+import java.util.stream.Collectors;
 
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.servlet.view.RedirectView;
 
 @Controller
 public class MeetupController {
-
-	List<Meeting> meetings = List.of(new Meeting("First meeting", LocalDateTime.now()),
-								     new Meeting("Second meeting", LocalDateTime.now()),
-								     new Meeting("Third meeting", LocalDateTime.now()),
-								     new Meeting("Fourth meeting", LocalDateTime.now()));
 	
+	DateTimeFormatter format = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm");
+
+	List<Meeting> meetings = new ArrayList<Meeting>(
+        Arrays.asList(new Meeting("First meeting", 
+        						  LocalDateTime.parse("10/02/2023 10:00", format)),
+        			  new Meeting("Second meeting", 
+        					      LocalDateTime.parse("12/02/2023 16:30", format)),
+        			  new Meeting("Fourth meeting", 
+        					  	  LocalDateTime.parse("15/02/2023 13:00", format)),
+        			  new Meeting("Fourth meeting", 
+        					  	  LocalDateTime.parse("01/03/2023 11:45", format))));
+
 	@GetMapping("/")
 	public String getMeetups(Model model) {
 		model.addAttribute("meetings", this.meetings);
 		return "index";
 	}
+	
+	@PostMapping("/")
+	public RedirectView addMeeting(Model model, @RequestParam("subject") String subject, @RequestParam("date") String date) {
+		meetings.add(new Meeting(subject, LocalDateTime.parse(date, this.format)));
+		model.addAttribute("meetings", this.meetings);
+		return new RedirectView("/");
+	}
+	
+	@GetMapping("/remove/{id}")
+	public RedirectView removeMeeting(Model model, @PathVariable("id") String id) {
+		this.meetings = this.meetings.stream().filter(x -> !x.getId().equals(id)).collect(Collectors.toList());
+		return new RedirectView("/");
+	}
+	
 }

+ 1 - 1
src/main/resources/templates/index.html

@@ -70,7 +70,7 @@
 						</div>
 						<div class="form-group">
 							<label>Date</label>
-							<input class="form-control" type="text" value="" name="subject" placeholder="DD/MM/YYY HH:MM">
+							<input class="form-control" type="text" value="" name="date" placeholder="DD/MM/YYY HH:MM">
 						</div>
 					</form>
 				</div>