Klasse DavRepository

java.lang.Object
de.svws_nrw.davapi.data.repos.dav.DavRepository
Alle implementierten Schnittstellen:
IDavRepository

public final class DavRepository extends Object implements IDavRepository
Dieses Repository implementiert das IDavRepository und kapselt die Datenbankverbindung für Ressourcensammlungen, Berechtigungen auf Ressourcensammlungen und Ressourcen
  • Konstruktordetails

  • Methodendetails

    • getDavRessourceCollections

      public Collection<DavRessourceCollection> getDavRessourceCollections(DavRessourceCollectionTyp... typen)
      Beschreibung aus Schnittstelle kopiert: IDavRepository
      Gibt die Ressourcensammlungen anhand der angegebenen Typen zurück, auf die der Nutzer Leserecht hat.
      Angegeben von:
      getDavRessourceCollections in Schnittstelle IDavRepository
      Parameter:
      typen - die DavRessourceCollectionTyp die aus der Datenbank gesucht werden.
      Gibt zurück:
      die gesuchten Ressourcensammlungen
    • getDavRessourceCollections

      public Collection<DavRessourceCollection> getDavRessourceCollections(Collection<Long> ressourceCollectionIds)
      Beschreibung aus Schnittstelle kopiert: IDavRepository
      gibt die Ressourcensammlungen anhand der gegebenen IDs zurück, auf die der Nutzer Leserecht hat.
      Angegeben von:
      getDavRessourceCollections in Schnittstelle IDavRepository
      Parameter:
      ressourceCollectionIds - die IDs der gesuchten Ressourcensammlungen
      Gibt zurück:
      die gesuchten Ressourcensammlungen
    • getDavRessources

      public Collection<DavRessource> getDavRessources(Collection<Long> ressourceCollectionIds, CollectionRessourceQueryParameters parameters)
      Beschreibung aus Schnittstelle kopiert: IDavRepository
      Gibt die Ressourcen der gesuchten Ressourcensammlungen zurück. Anhand der CollectionRessourceQueryParameters wird entschieden, ob ggf. nur die ID und UID des Objekts oder auch der Inhalt zurückgegeben werden. Hat der Nutzer nicht das nötige Leserecht auf eine gegebene Ressourcensammlung, werden keine Ressourcen für diese Sammlung zurückgegeben.
      Angegeben von:
      getDavRessources in Schnittstelle IDavRepository
      Parameter:
      ressourceCollectionIds - die IDs der Ressourcensammlungen, für die die Ressourcen gesucht werden sollen
      parameters - Filterkriterium, um beispielsweise auf Payload zu verzichten.
      Gibt zurück:
      die gesuchten Ressourcen
    • upsertDavRessourceCollection

      public Optional<DavRessourceCollection> upsertDavRessourceCollection(DavRessourceCollection davRessourceCollection) throws DavException
      Beschreibung aus Schnittstelle kopiert: IDavRepository
      Fügt eine neue Ressourcensammlung hinzu oder updated eine vorhandene, sofern die ID und Lese- und Schreibrecht gegeben ist.
      Angegeben von:
      upsertDavRessourceCollection in Schnittstelle IDavRepository
      Parameter:
      davRessourceCollection - die Ressourcensammlung, welche hinzugefügt oder aktualisiert werden soll.
      Gibt zurück:
      die Ressourcensammlung, sofern die Aktualisierung erfolgreich war.
      Löst aus:
      DavException - Ausnahme bei fehlenden Rechten oder Fehlern beim Schreiben in der Datenbank
    • getNewSyncTokenTimestampAsString

      public static String getNewSyncTokenTimestampAsString()
      Erstellt ein neues Synctoken für den aktuellen Zeitpunkt als SQL-Timestamp-String
      Gibt zurück:
      das aktuelle Synctoken
    • upsertDavRessource

      public Optional<DavRessource> upsertDavRessource(DavRessource davRessource) throws DavException
      Beschreibung aus Schnittstelle kopiert: IDavRepository
      Fügt eine neue Ressource hinzu oder aktualisiert eine vorhandene auf Basis der UID, sofern Lese- und Schreibrecht auf der Ressourcensammlung vorhanden ist.
      Angegeben von:
      upsertDavRessource in Schnittstelle IDavRepository
      Parameter:
      davRessource - die Davressource die hinzugefügt oder aktualisiert werden soll.
      Gibt zurück:
      die aktualisierte DavRessource mit gesetzer ID bei Erfolg
      Löst aus:
      DavException - Ausnahme bei fehlenden Rechten oder Fehlern beim Schreiben in der Datenbank
    • upsertDavRessourceCollectionACLPermissions

      public Optional<DavRessourceCollectionACLPermissions> upsertDavRessourceCollectionACLPermissions(DavRessourceCollectionACLPermissions davRessourceCollectionACLPermissions) throws DavException
      Beschreibung aus Schnittstelle kopiert: IDavRepository
      Fügt einen neuen ACL-Eintrag für eine Ressourcensammlung und einen Nutzer hinzu oder aktualisiert einen vorhandenen, sofern der Nutzer Besitzer der Ressource oder Admin ist.
      Angegeben von:
      upsertDavRessourceCollectionACLPermissions in Schnittstelle IDavRepository
      Parameter:
      davRessourceCollectionACLPermissions - der zuzufügende oder zu aktualisierende ACL-Eintrag
      Gibt zurück:
      der aktualisierte ACL-Eintrag
      Löst aus:
      DavException - bei fehlenden Rechten oder Fehlern beim Schreiben in der Datenbank
    • deleteRessourceCollectionIfUpToDate

      public boolean deleteRessourceCollectionIfUpToDate(long id, long syncToken) throws DavException
      Beschreibung aus Schnittstelle kopiert: IDavRepository
      Löscht eine Ressourcensammlung sofern das gegebene Synctoken dem Synctoken in der Datenbank entspricht.
      Angegeben von:
      deleteRessourceCollectionIfUpToDate in Schnittstelle IDavRepository
      Parameter:
      id - die ID der Ressourcensammlung
      syncToken - das Synctoken, auf das verglichen werden soll.
      Gibt zurück:
      ob das Löschen erfolgreich war
      Löst aus:
      DavException - Ausnahme bei fehlenden Rechten, nicht-vorhandensein der Ressourcensammlung oder nicht-aktuellem Synctoken
    • deleteRessourceIfUpToDate

      public boolean deleteRessourceIfUpToDate(long collectionId, String ressourceUID, Long ifMatchToken) throws DavException
      Beschreibung aus Schnittstelle kopiert: IDavRepository
      Löscht eine DavRessource anhand der RessourcenUID und der Ressourcensammlung, sofern das gespeicherte Synctoken mit dem gegebenen übereinstimmt, der Aufrufer also über die aktuelle Version der Ressource verfügt
      Angegeben von:
      deleteRessourceIfUpToDate in Schnittstelle IDavRepository
      Parameter:
      collectionId - die ID der Ressourcensammlung
      ressourceUID - die UID der Ressource
      ifMatchToken - das SyncToken, welches dem Aufrufer zuletzt bekannt war
      Gibt zurück:
      ob das Löschen erfolgreich war
      Löst aus:
      DavException - bei fehlenden Rechten auf der Ressourcensammlung, nicht-vorhandensein der Ressource, nichtaktuellem Synctoken oder Fehlern beim Schreiben in die Datenbank
    • deleteRessourceCollectionACL

      public boolean deleteRessourceCollectionACL(long collectionId, long benutzerId) throws DavException
      Beschreibung aus Schnittstelle kopiert: IDavRepository
      Löscht einen ACL-Eintrag auf Basis der Nutzer-ID und der ID der Ressourcensammlung
      Angegeben von:
      deleteRessourceCollectionACL in Schnittstelle IDavRepository
      Parameter:
      collectionId - die ID der Ressourcensammlung
      benutzerId - die ID des Benutzers
      Gibt zurück:
      ob der Löschvorgang erfolgreich war
      Löst aus:
      DavException - bei fehlenden Rechten, nicht-vorhandensein der Ressource oder des Nutzers oder Fehlern beim Schreiben in der Datenbank
    • tryCreateOwnedCollectionIfNotExists

      public void tryCreateOwnedCollectionIfNotExists(DavRessourceCollectionTyp typ)
      Beschreibung aus Schnittstelle kopiert: IDavRepository
      Erstellt eine neue Ressourcensammlung mit dem angemeldeten Nutzer als Besitzer, sofern eine Ressourcensammlung vom gegebenen Typ noch nicht existiert. Nutzbar um einen eigenen Kalender oder ein eigenes Adressbuch anzulegen.
      Angegeben von:
      tryCreateOwnedCollectionIfNotExists in Schnittstelle IDavRepository
      Parameter:
      typ - der Typ der Ressourcensammlung
    • getDeletedResourceUIDsSince

      public List<String> getDeletedResourceUIDsSince(Long collectionId, Long syncTokenMillis)
      Beschreibung aus Schnittstelle kopiert: IDavRepository
      Gibt eine Liste aller Ressourcen-UIDs einer Sammlung zurück, welche seit dem gegebenen Synctoken gelöscht wurden.
      Angegeben von:
      getDeletedResourceUIDsSince in Schnittstelle IDavRepository
      Parameter:
      collectionId - die Sammlung auf der nach gelöschten Ressourcen gesucht werden soll.
      syncTokenMillis - das Synctoken, seit dem nach Löschvorgängen gesucht werden soll
      Gibt zurück:
      eine Liste aller UIDs, welche gelöscht wurden.