Skip to content

Funktionen_CollectionResource

Florian Fehring edited this page May 7, 2024 · 1 revision

Funktion 1: Anlegen einer Collection

  1. Es wird ein Storage angelegt
    • testCreateCollection()
    • Die Collection wird angelegt, es wird automatisch eine identity-Spalte mit dem Namen id hinzugefügt
    • Es wird mit Status 201 CREATED geantwortet

Ausnahmen:

  1. Es soll eine Collection angelegt werden, die bereits existiert
    • testCreateCollectionAllreadyExists()
    • Es wird mit Status NOT_MODIFIED geantwortet
  2. In den Eigenschaften der Collection wird eine identity-Spalte mit autoinkrement angegeben
    • testCreateCollectionGivingAutoId()
    • Es wird die Collection mit der identity-Spalte und autoinkrement angelegt
  3. In den Eigenschaften der Collection wird eine identity-Spalte ohne autoinkrement angegeben
    • testCreateCollectionGivingId()
    • Es wird die Collection mit der identity-Spalte angelegt

Funktion 2: Abfragen der Attribute einer Collection

  1. Es wird eine Liste der verfügbaren Attribute mit ihren Eigenschaften ausgegeben
    • testGetAttributes()

Ausnahmen:

  1. Es gibt keine Attribute in der Collection
    • Es wird mit Status OK und einer leeren Liste geantwortet
  2. Es gibt die angegebene Collection / den Storage nicht
    • testGetAttributesNoExSchema()
    • Es wird mit Status 404 NOT FOUND und einer entsprechenden Meldung geantwortet

Beispiel: http://localhost:8080/SmartDataTest/smartdata/collection/tbl_card?storage=smartmonitoring

Funktion 3: Abfragen der Geo-Attribute einer Collection

  1. Es wird eine Liste der verfügbaren Geo-Attribute mit ihren Eigenschaften ausgegeben
    • testGetGeoAttributes()

Ausnahmen:

  1. Es gibt keine Attribute in der Collection
    • Es wird mit Status OK und einer leeren Liste geantwortet

Funktion 4: Ein neues Attribut hinzufügen

  1. Es werden neue Attribute zur Collection hinzugefügt
    • testAddAttributes()

Ausnahmen:

  1. Das Attribut kann nicht angelegt werden wegen ungültiger Eigenschaften
    • Es wird mit Status PRECONDITION_FAILED geantwortet

Funktion 5: Ein neues Geo-Attribut hinzufügen

  1. Es werden neue Geo-Attribute zur Collection hinzugefügt
    • testAddGeoAttributes()

Ausnahmen:

  1. Das Attribut kann nicht angelegt werden wegen ungültiger Eigenschaften
    • Es wird mit Status PRECONDITION_FAILED geantwortet

Funktion 6: Bei einem Geo-Attribut die SRID ändern

  1. Es werden neue Geo-Attribute zur Collection hinzugefügt
    • testChangeSRID()

Ausnahmen:

  1. Das Attribut kann nicht angelegt werden wegen ungültiger Eigenschaften
    • Es wird mit Status PRECONDITION_FAILED geantwortet

Funktion 7: Definition einer Collection kopieren

  1. Es wird über die CollectionRessource.getAttributes() die Definition einer Collection abgerufen. Diese wird dann an ein anderen Storage / Collection geschickt, um die Collection dort ebenfalls zu erzeugen.
    • testGetAttributesAndCreateTable()
    • Die Collection wird mit den entsprechenden Eigenschaften im neuen Storage unter dem neuen Collection-Namen angelegt
    • Es wird mit Status 201 CREATED geantwortet

Funktion 8: Attribute löschen

  1. Es wird über die CollectionResource.delAttributes() eine Liste von Attributen übergeben, die gelöscht werden sollen.
    • Die Attribute werden aus der Collection gelöscht
    • Es wird mit Status 200 OK geantwortet

Funktion 9: Abfragen der Fremdschlüssel einer Collection

  1. Es sollen die Fremdschlüssel einer Collection aufgelistet werden
    • Es muss eine Collection, die Fremdschlüssel kennt abgefragt werden
    • In der Auflistung der Attribute werden mit refName, refStorage, refAttribute, refOnUpdate, refOnDelete die Eigenschaften des Fremdschlüssels ausgegeben

Ausnahmen: Es werden dieselben Ausnahmen angewendet, wie beim Abfragen von Collections ohne Fremdschlüssel

Beispiel Antwort: { "name": "tbl_file_join_oo", "attributes": [ { "isAutoIncrement": false, "refCollection": "tbl_observedobject", "refOnDelete": "CASCADE", "isNullable": true, "name": "oo_id", "isIdentity": false, "refAttribute": "id", "type": "int8", "refName": "tbl_file_join_oo_fk", "refStorage": "smartmonitoring", "refOnUpdate": "CASCADE" },

Funktion 10: Eine Collection mit Fremdschlüsseln anlegen

  1. Es soll eine neue Collection inkl. Fremdschlüsseln angelegt werden
    • Das Definitions-JSON muss die Angaben refCollection und refAttribute enthalten. Mit refName, refStorage, refOnDelete und refOnUpdate können weitere Eigenschaften gesetzt werden

Ausnahmen:

  1. Existiert die zu referenzierende Collection nicht, wird mit Status 500 geantwortet