File tree Expand file tree Collapse file tree
java/org/launchcode/codingevents
resources/templates/eventCategories Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -25,9 +25,21 @@ public class EventController {
2525 private EventCategoryRepository eventCategoryRepository ;
2626
2727 @ GetMapping
28- public String displayAllEvents (Model model ) {
29- model .addAttribute ("title" , "All Events" );
30- model .addAttribute ("events" , eventRepository .findAll ());
28+ public String displayEvents (@ RequestParam (required = false ) Integer categoryId , Model model ) {
29+
30+ if (categoryId == null ) {
31+ model .addAttribute ("title" , "All Events" );
32+ model .addAttribute ("events" , eventRepository .findAll ());
33+ } else {
34+ Optional <EventCategory > result = eventCategoryRepository .findById (categoryId );
35+ if (result .isEmpty ()) {
36+ model .addAttribute ("title" , "Invalid Category ID: " + categoryId );
37+ } else {
38+ EventCategory category = result .get ();
39+ model .addAttribute ("title" , "Events in category: " + category .getName ());
40+ model .addAttribute ("events" , category .getEvents ());
41+ }
42+ }
3143 return "events/index" ;
3244 }
3345
Original file line number Diff line number Diff line change @@ -15,6 +15,9 @@ public class EventCategory extends AbstractEntity {
1515 @ Size (min =3 , message ="Name must be at least 3 characters long" )
1616 private String name ;
1717
18+ @ OneToMany (mappedBy = "eventCategory" )
19+ private final List <Event > events = new ArrayList <>();
20+
1821 public EventCategory (@ Size (min = 3 , message = "Name must be at least 3 characters long" ) String name ) {
1922 this .name = name ;
2023 }
@@ -29,6 +32,10 @@ public void setName(String name) {
2932 this .name = name ;
3033 }
3134
35+ public List <Event > getEvents () {
36+ return events ;
37+ }
38+
3239 @ Override
3340 public String toString () {
3441 return name ;
Original file line number Diff line number Diff line change 1212 </ tr >
1313 </ thead >
1414 < tr th:each ="category : ${categories} ">
15- < td th:text ="${category.name} "> </ td >
15+ < td > < a th:text ="${category.name} " th:href =" '/events?categoryId=' + ${category.id} " > </ a > </ td >
1616 </ tr >
1717
1818</ table >
You can’t perform that action at this time.
0 commit comments