Webservices

Veranstaltungen ermitteln

Die Liste der Veranstaltungen ermitteln

curl http://hostname/webservice/events \
  -u webservice:apikey \
  -G \
  -d filter[include_closed]=true|false

Als Ergebnis wird ein XML-Dokument geliefert, das im Element events alle Veranstaltungen enthält, auf die die (optionalen) Filterkriterien zutreffen. Jede Veranstaltung ist in einem event-Element enthalten.

Mit dem Filter filter[include_closed], dessen Wert true oder false(Voreinstellung) sein kann, können auch abgeschlossene Veranstaltungen in das Suchergebnis aufgenommen werden.

<?xml version="1.0" encoding="UTF-8"?>
<events type="array">
  <event>
    <closed type="boolean">false</closed>
    <closed_at nil="true"></closed_at>
    <details>wine, snacks, arrival, car, rockets</details>
    <ends_at type="datetime">2010-10-03T00:00:00+02:00</ends_at>
    <id type="integer">1</id>
    <name>back2010</name>
    <starts_at type="datetime">2010-10-01T00:00:00+02:00</starts_at>
    <title>Back 2010</title>
  </event>
  <event>
   ...
  </event>
</events>

Eine einzelne Veranstaltung auslesen

Eine einzelne Veranstaltung kann über ihre ID oder ihren Namen ermittelt werden:

curl http://hostname/webservice/events/id \
  -u webservice:apikey

curl http://hostname/webservice/events \
  -u webservice:apikey \
  -G \
  -d filter[name]="event_name"

Das Ergebnis ist die einzelne Veranstaltung mit ihren Feldern im Element event.

<?xml version="1.0" encoding="UTF-8"?>
<event>
  <closed>false</closed>
  <closed_at type="datetime">2010-07-13T16:00:36+02:00</closed_at>
  <details>wine, snacks, arrival, car, rockets</details>
  <ends_at type="datetime">2010-07-03T00:00:00+02:00</ends_at>
  <id type="integer">1</id>
  <name>Sommer Event</name>
  <starts_at type="datetime">2010-07-01T00:00:00+02:00</starts_at>
  <title>sommer_event</title>
</event>

Veranstaltungen anlegen und ändern

Eine Veranstaltung anlegen

Eine Veranstaltung kann über einen POST-Request angelegt werden. Es muss mindestens der Name der Veranstaltung als der Parameter event[name] angegeben werden.

curl http://hostname/webservice/events \
  -u webservice:apikey \
  -X POST \
  --form-string event[name]='new_event_name' \
  --form-string event[title]='New Event Title' \
  --form-string event[starts_at]='2008-12-31T00:00:00+01:00' \
  --form-string event[ends_at]='2009-01-01T01:00:00+01:00' \
  --form-string event[details]='day1, day2'

Als Ergebnis wird die neue Veranstaltung zurückgegeben:

<?xml version="1.0" encoding="UTF-8"?>
<event>
  <closed type="boolean">false</closed>
  <closed_at nil="true"></closed_at>
  <details>day1, day2</details>
  <ends_at type="datetime">2009-01-01T01:00:00+01:00</ends_at>
  <id type="integer">3</id>
  <name>new_event_name</name>
  <starts_at type="datetime">2008-12-31T00:00:00+01:00</starts_at>
  <title>New Event Title</title>
</event>

Eine Veranstaltung ändern

Um die Daten einer Veranstaltung zu ändern, verwenden Sie einen PUT-Request unter Angabe der Veranstaltungs-ID in der URL sowie der zu ändernden Felder im Body des Requests:

curl curl http://hostname/webservice/events/id \
  -u webservice:apikey \
  -X PUT \
  --form-string event[title]="Invitation to next summer's product show"

Wie beim Anlegen gibt das OMC die Veranstaltungsdaten zurück.

Teilnehmerdaten ermitteln und ändern

Teilnehmerliste einer Veranstaltung ermitteln

curl http://hostname/webservice/events/id/contacts \
  -u webservice:apikey

Das Ergebnis ist die Liste der Teilnehmer im Element event_contacts. Jeder Teilnehmer ist darin in einem event_contact-Element enthalten. Das Element details eines Teilnehmers enthält dessen Teilnehmerfelder mit deren Werten als Unterelemente.

<?xml version="1.0" encoding="UTF-8"?>
<event_contacts type="array">
  <event_contact>
    <contact_id type="integer">1</contact_id>
    <details>
      <car>true</car>
      <snacks>popcorn, chocolate</snacks>
    </details>
    <event_id type="integer">1</event_id>
    <id>1</id>
    <state>reg</state>
  </event_contact>
  <event_contact>
    <contact_id type="integer">2</contact_id>
    <event_id type="integer">1</event_id>
    <details>
      <car>true</car>
      <snacks>popcorn, chocolate</snacks>
    </details>
    <id>2</id>
    <state>reg</state>
  </event_contact>
</event_contacts>

Einen einzelnen Veranstaltungsteilnehmer ermitteln

curl http://hostname/webservice/events/id/contacts/contact_id \
  -u webservice:apikey

Das Ergebnis ist der über die contact_id referenzierte Teilnehmer im event_contact-Element:

<?xml version="1.0" encoding="UTF-8"?>
<event_contact>
  <contact_id type="integer">2</contact_id>
  <details>
    <car>true</car>
    <snacks>popcorn, chocolate</snacks>
  </details>
  <event_id type="integer">1</event_id>
  <id>2</id>
  <state>reg</state>
</event_contact>

Die Daten eines Veranstaltungsteilnehmers ändern

Verwenden Sie einen PUT-Request nach dem folgenden Schema, um die Daten eines Veranstaltungsteilnehmers zu ändern. Geben Sie die zu ändernden Felder als Parameter an:

curl http://hostname/webservice/events/id/contacts/contact_id \
  -u webservice:apikey \
  -X PUT \
  --form-string event_contact[details][car]="false" \
  --form-string event_contact[state]="att"

Das Ergebnis ist wie bei der Ermittlung des Teilnehmers der über die contact_id referenzierte Teilnehmer im event_contact-Element.