Standardlisten

In Alvine gibt es viele Schlüssel-/Werte-Listen für unterschieldiche Einsatzzwecke. Diese Listen können alle über die List-Api abgerufen werden.

Listen

Listname Beschreibung
account_address_country_specialfields
account_address_type
account_calendar_color Farben für die Kalenderdarstellung
account_calendar_events_alarm_action
account_calendar_events_alarm_period

Werte einer Liste holen

Die Schlüssel-/Wertpaare einer Liste können über einen GET-Request über die URL /api/util/list/<name_der_liste> geladen werden. Das Ergebnis wird als Dataset zurückgeliefert.

{
    "dataset": {
        "1": "value 1",
        "2": "value 2",
        "3": "value 3",
    },
    "sys": {
        "pagination": {
            "total": 3
        },
        "message": "200 OK",
        "code": 200
    }
}

Konfiguration der Route

Über die Pfade werden die Speicherorte der Listen für die Defaultliste und für evtl. projektbezogene Listen definiert. Über die Blacklist-Tags, werden Listen, die über die API nicht ausgeliefert werden dürfen konfiguriert.

<route id="ALVINE-API-UTIL-LIST-GET">
    <presenter>\Alvine\Application\Platform\Presenter\Api\Util\StandardList</presenter>
    <method>GET</method>
    <pattern><![CDATA[^/api/util/list/(?<name>[0-9a-zA-z]+)$]]></pattern>
    <template><![CDATA[/api/util/list/${name}]]></template>
    <parameters>
        <parameter name="name" type='string'></parameter>
    </parameters>
    <configuration>
        <source>
            <standard>${legacy-basepath}alvine/plugin/lists/standard/${parameter-name}.inc.php</standard>
            <project>${legacy-basepath}alvine/plugin/lists/project/${parameter-name}.inc.php</project>
        </source>
        <blacklist>
            <name>content_shorturl_name</name>
            <name>content_rte_table_class</name>
        </blacklist>
    </configuration>
</route> 

Projektliste schreiben

Standardlisten können für ein Projekt mit eigenen Werten überschrieben werden. Hierzu muss ein PUT-Request mit der neuen Liste an die URL /api/util/list/<name_der_liste> gesendet werden.

Wichtig

Überschriebene Listen können Ihr System unbrauchbar machen.

Der Aufbau der Liste ist ein einfaches JSON-Objekt mit Schlüssel-/Wert-Paaren.

{
    "1": "my value 1",
    "2": "my value 2",
    "3": "my value 3",
    "4": "my value 4"
}

Konfiguration der Route

Über die Pfade werden die Speicherorte der Listen für die Defaultliste und für evtl. projektbezogene Listen definiert. Über die Blacklist-Tags, werden Listen, die nicht überschrieben werden dürfen konfiguriert.

<route id="ALVINE-API-UTIL-LIST-PUT">
    <presenter>\Alvine\Application\Platform\Presenter\Api\Util\StandardList</presenter>
    <method>PUT</method>
    <pattern><![CDATA[^/api/util/list/(?<name>[0-9a-zA-z]+)$]]></pattern>
    <template><![CDATA[/api/util/list/${name}]]></template>
    <parameters>
        <parameter name="name" type='string'></parameter>
    </parameters>
    <configuration>
        <source>
            <standard>${legacy-basepath}alvine/plugin/lists/standard/${parameter-name}.inc.php</standard>
            <project>${legacy-basepath}alvine/plugin/lists/project/${parameter-name}.inc.php</project>
        </source>
        <blacklist>
            <name>content_shorturl_name</name>
            <name>content_rte_table_class</name>
        </blacklist>
    </configuration>
</route> 

Projektliste löschen

Soll wieder die Standardliste verwendet werden, so kann die Projektliste über einen DELETE-Request mit der URL /api/util/list/<name_der_liste> gelöscht werden.

Wichtig

Das Löschen einer Projekliste kann bestehende Datensätze unbrauchbar machen.

Konfiguration der Route

Über die Pfade werden die Speicherorte der Listen für die Defaultliste und für evtl. projektbezogene Listen definiert.

<route id="ALVINE-API-UTIL-LIST-DELTE">
    <presenter>\Alvine\Application\Platform\Presenter\Api\Util\StandardList</presenter>
    <method>DELETE</method>
    <pattern><![CDATA[^/api/util/list/(?<name>[0-9a-zA-z]+)$]]></pattern>
    <template><![CDATA[/api/util/list/${name}]]></template>
    <parameters>
        <parameter name="name" type='string'></parameter>
    </parameters>
    <configuration>
        <source>
            <standard>${legacy-basepath}alvine/plugin/lists/standard/${parameter-name}.inc.php</standard>
            <project>${legacy-basepath}alvine/plugin/lists/project/${parameter-name}.inc.php</project>
        </source>
    </configuration>
</route> 

Kommentare