This PR allows the club admin to create a meeting for a club, adding it to all members' Google Calendars.
The AdminClubPage contains a form to post a new meeting, allowing the owner to enter a meeting name, location, description, and start and end times.
The Meeting object was created to store meeting data in Firestore, so it can be rendered to club members in future PRs.
The corresponding MeetingServlet was also created. The servlet does the typical Utility class posts and gets. But on a post, it also created an Event for the Google Calendar API, adding it to the owner's and members' primary calendars.
The Utility post was altered to allow a post with input of a JsonObject rather than a HttpServletRequest, so that the request body can still be retrieved in the MeetingServletdoPost. Without this, the Utility function to create the JsonObject from the request body made it so the body could not be accessed again. Additionally, "token" was appended to fieldNames in the postErrorHandler. This prevents errors when sending a token in a backend request. Otherwise, the backend would see "token" in the request body, but not as a field name and trigger errors.
Double quotes were changed to single quotes in the files manipulated, to conform with Google Style Guides.
Future PRs will display the clubs current event to users on the ClubPage.
This PR allows the club admin to create a meeting for a club, adding it to all members' Google Calendars.
The
AdminClubPage
contains a form to post a new meeting, allowing the owner to enter a meeting name, location, description, and start and end times.The
Meeting
object was created to store meeting data in Firestore, so it can be rendered to club members in future PRs.The corresponding
MeetingServlet
was also created. The servlet does the typicalUtility
class posts and gets. But on a post, it also created anEvent
for the Google Calendar API, adding it to the owner's and members' primary calendars.The
Utility
post was altered to allow a post with input of aJsonObject
rather than aHttpServletRequest
, so that the request body can still be retrieved in theMeetingServlet
doPost
. Without this, the Utility function to create the JsonObject from the request body made it so the body could not be accessed again. Additionally,"token"
was appended tofieldNames
in thepostErrorHandler
. This prevents errors when sending a token in a backend request. Otherwise, the backend would see"token"
in the request body, but not as a field name and trigger errors.Double quotes were changed to single quotes in the files manipulated, to conform with Google Style Guides.
Future PRs will display the clubs current event to users on the
ClubPage
.Video displaying whole feature: