Class EventDB

java.lang.Object
com.example.breeze_seas.EventDB

public class EventDB extends Object
EventDB This class manages queries for use by the event class.
  • Method Details

    • genNewEventId

      public static String genNewEventId()
      Generate a new document ID from database.
      Returns:
      the new document ID
    • getEventRef

      public static com.google.firebase.firestore.CollectionReference getEventRef()
      Returns the event CollectionReference used in the database.
      Returns:
      CollectionReference to the events collection
    • addEvent

      public static void addEvent(Event event, EventDB.AddEventCallback callback)
      Add an event collection to database
      Parameters:
      event - Event object to add to database
      callback - Callback method to run after firebase transaction
    • updateEvent

      public static void updateEvent(Event event, EventDB.EventMutationCallback callback)
      Modifies an event collection from the database.
      Parameters:
      event - The event object to modifiy.
      callback - Callback method to run after firebase transaction.
    • deleteEvent

      public static void deleteEvent(Event event, EventDB.EventMutationCallback callback)
      Deletes an event and all of its data from the database.

      Fetches every document in the event's "participants" and "comments" subcollections, then uses a WriteBatch to delete all participant documents, all comment documents, the event's poster image (if one exists), and the event document itself. Either everything is deleted or nothing is.

      Parameters:
      event - The event to delete.
      callback - Callback fired once all deletes are committed, or on failure.
    • startEventsListen

      public static void startEventsListen(EventDB.EventsChangedCallback callback)
      Attaches a real-time listener to the entire "events" collection. Any add, modify, or delete on any event document fires the appropriate callback.
      Parameters:
      callback - Receives individual change events or errors.
    • stopEventsListen

      public static void stopEventsListen()
      Detaches the realtime collection listener.
    • getEventById

      public static void getEventById(String eventId, EventDB.LoadSingleEventCallback callback)
      Fetches an event based on documentID
      Parameters:
      eventId - The event document to fetch for.
      callback - Callback method to run after firebase transaction.
    • getAllEventsQuery

      public static com.google.firebase.firestore.Query getAllEventsQuery()
      Method to obtain query for all events.
      Returns:
      Query for all events.
    • getAllEvents

      public static void getAllEvents(EventDB.LoadEventsCallback callback)
      Fetches all events from the database.
      Parameters:
      callback - Callback method to run after firebase transaction.
    • getExploreEventsQuery

      public static com.google.firebase.firestore.Query getExploreEventsQuery(User user)
      Method to obtain query for all joinable public events for given user. This is EXPLICITLY meant to be used in the explore fragment.
      Parameters:
      user - User to get query for.
      Returns:
      Query for all joinable events for user.
    • getAllJoinableEventsQuery

      public static com.google.firebase.firestore.Query getAllJoinableEventsQuery(User user)
      Method to obtain query for all joinable public events for given user. This is meant for a one time fetch use case.
      Parameters:
      user - User to get query for.
      Returns:
      Query for all joinable events for user.
    • getAllJoinableEvents

      public static void getAllJoinableEvents(User user, EventDB.LoadEventsCallback callback)
      Fetch all events that the current user is able to join. Registration is open and is not the organizer for event
      Parameters:
      user - User to find joinable events fr
      callback - Callback method to run after firebase transaction.
    • getAllEventsOrganizedByUserQuery

      public static com.google.firebase.firestore.Query getAllEventsOrganizedByUserQuery(User user)
      Method to obtain all events that the user is any kind of organizer for.
      Parameters:
      user - User that is an organizer.
      Returns:
      Query for all events that is organized by the user.
    • getAllEventsOrganizedByUser

      public static void getAllEventsOrganizedByUser(User user, EventDB.LoadEventsCallback callback)
      Fetch all events that the user is organizing (any kind of organizer)
      Parameters:
      user - User to check the id of organizers.
      callback - Callback method to run after firebase transaction.
    • getAllEventsOrganizedByOrganizerQuery

      public static com.google.firebase.firestore.Query getAllEventsOrganizedByOrganizerQuery(User user)
      Method to obtain query for all events that the user is the original organizer for.
      Parameters:
      user - User that is the original organizer.
      Returns:
      Query for all events that is originally organized by the user.
    • getAllEventsOrganizedByOrganizer

      public static void getAllEventsOrganizedByOrganizer(User user, EventDB.LoadEventsCallback callback)
      Fetch all events that the user is organizing (the original organizer)
      Parameters:
      user - User to check the id of organizers.
      callback - Callback method to run after firebase transaction.
    • getAllEventsOrganizedByCoOrganizerQuery

      public static com.google.firebase.firestore.Query getAllEventsOrganizedByCoOrganizerQuery(User user)
      Method to obtain query for all events that the user is a co-organizer for.
      Parameters:
      user - User that is the co-organizer.
      Returns:
      Query for all events that is being co-organized by user.
    • getAllEventsOrganizedByCoOrganizer

      public static void getAllEventsOrganizedByCoOrganizer(User user, EventDB.LoadEventsCallback callback)
      Fetch all events that the user is co-organizing.
      Parameters:
      user - User to check the id of organizers.
      callback - Callback method to run after firebase transaction.