Anträge

Auch Anträge können via REST API bedient werden. Die Erstellung eines Antrags erfolgt wie bei anderen Inhalten (siehe Kapitel Operationen) via POST request. Man muss entweder proposal_template oder proposal_document und "proposal_document_type": "existing" spezifizieren (proposal_template und proposal_document als UUID):

Beispiel-Request mit `proposal_template`:

POST /(container) HTTP/1.1
Accept: application/json
Content-Type: application/json

{
  "@type": "opengever.meeting.proposal",
  "title": "Antrag für Kreiselbau",
  "committee_oguid": "fd:1722088772",
  "issuer": "john.doe",
  "proposal_template": "c6df8eb485a448ef861caf97198e1dae"
}

Beispiel-Request mit `proposal_document`:

POST /(container) HTTP/1.1
Accept: application/json
Content-Type: application/json

{
  "@type": "opengever.meeting.proposal",
  "title": "Antrag für Kreiselbau",
  "committee_oguid": "fd:1722088772",
  "issuer": "john.doe",
  "proposal_document":"a7f51d19d31141ac84bd368d44d17f05",
  "proposal_document_type": "existing"
}

Beispiel-Response:

HTTP/1.1 201 Created
Accept: application/json

{
  "@id": "http://example.org/ordnungssystem/fuehrung/dossier-1/proposal-5",
  "@type": "opengever.meeting.proposal",
  "committee_oguid": {
    "title": "Kommission für Rechtsfragen",
    "token": "fd:1722088772"
  },
  "committee": {
    "@id": "http://example.org/sitzungen/committee-1",
    "title": "Kommission für Rechtsfragen"
  },
  "issuer": {
    "title": "Boss Hugo (hugo.boss)",
    "token": "hugo.boss"
  },
  "...": "..."
}

Antragverlauf

Der Verlauf eines Antrags ist in der GET Repräsentation eines Antrags unter dem Attribut responses enthalten.

Beispiel-Respones auf ein GET Request:

HTTP/1.1 200 OK
Accept: application/json

{
  "@id": "http://example.org/ordnungssystem/fuehrung/dossier-1/proposal-5",
  "@type": "opengever.meeting.proposal",
  "UID": "3a551f6e3b62421da029dfceb71656e6",
  "oguid": "fd:12345",
  "items": [],
  "responses": [
    {
      "@id": "http://example.org/ordnungssystem/fuehrung/dossier-1/proposal-5/@responses/1569394746972113",
      "response_id": 1569394746972113,
      "response_type": "successor_created",
      "additional_data": {
          "successor_oguid": "fd:593382572"
      },
      "changes": [],
      "creator": {
          "title": "hugo.boss",
          "token": "hugo.boss"
      },
      "created": "2019-05-21T13:57:42",
      "text": "",
    },
    {
      "@id": "http://example.org/ordnungssystem/fuehrung/dossier-1/proposal-5/@responses/1573486804000000",
      "response_id": 1573486804000000
      "response_type": "commented"
      "additional_data": [],
      "changes": [],
      "creator": {
          "title": "hugo.boss",
          "token": "hugo.boss"
      },
      "created": "2019-11-11T16:40:04",
      "text": "Suspendisse faucibus, nunc et pellentesque egestas.",
    },
  ]
  "review_state": "proposal-state-submitted",
  "...": "...",
}

Zusätzliche Beilagen einreichen

Nach dem einreichen eines Antrags können mit dem @submit-additional-documents zusätzliche Beilagen oder eine neue Version von einer existierender Beilage eingereicht werden. Als Body wird eine Liste von Dokumente (UID) im Attribut documents erwartet.

Beispiel-Request:

POST dossier-1/proposal-1/@submit-additional-documents HTTP/1.1
Accept: application/json

{
 "documents": ["00040acaba70487a98d15b832cc1f99a", "001dbd36feec4df1a106047d3fa884b4"]
}

Die Response ist eine Liste die für jede Beilage die folgenden Informationen zurückliefert: source: URL der Beilage action: “copied” wenn es sich um eine neu Beilage die in den eingereichten Antrag kopiert wurde, “udapted” wenn eine neue Version der Beilage erstellt wurde oder “null” wenn diese Beilage bereits in dieser Version eingereicht wurde.

Beispiel-Response:

HTTP/1.1 200 OK
Content-Type: application/json

[
    {
        "action": "copied",
        "source": "dossier-1/proposal-1/document-75"
    },
    {
        "action": null,
        "source": "dossier-1/proposal-1/document-76"
    }
]