<commit_before>DRAFT

# PEX API
Partnermanagement Extern API.

## Anlegen eines neuen Partners

Partner können per HTTP JSON angelegt werden.

Für alle Requests gilt:

- Leere Felder bei String ("") sind blank und werden wie null behandelt.
- Dem Server unbekannte Felder werden ignoriert
- Es wird ein (Partner-) Historieneintrag geschrieben im Namen des ApiKeys

Validierungen:

- PartnerId in URL muss durch X-ApiKey administrierbar sein.
- externePartnerId muss "unterhalb" des ApiKey unique sein.
- Validierung der Eindeutigkeit der externenPartnerId beim Create / POST => Fehler Status + Link auf die bestehende resource + Fehlertext
- Rechte dürfen nur vergeben werden, wenn sie beim Vergebenden vorhanden sind (wenn sie am ApiKey vorhanden sind)


```
POST https://www.europace2.de/partnermanagement/partner/4711/untergeordnetePartner
X-ApiKey: ABC987
X-PartnerId: 4710                              // FF Organisation
X-TraceId: ff-request-2014-10-01-07-55 // UID zur Identifikation des requests für support
Accept: application/json
Content-Type: application/json;charset=utf-8

{
  "anrede" : "HERR",                 // alternativ "FRAU"
  "anschrift" : {
    "strasse" : "...",
    "hausnummer" : "71a",
    "plz" : "...",
    "ort" : "..."
  },
  "bankverbindung" : {
     "iban" : "...",
     "bic" : "....",
     "kontoinhaber": "...",
     "referenzFeld" : "...."
  },
  "email" : "",  
  "externePartnerId" : "MAK004712",
  "faxnummer" : "",
  "firmenname" : null,
  "firmennameZusatz" : "",
  "fusszeileFuerAussenauftritt" : "", //  mit \n  als Zeilentrenner, siehe Kommentar
  "geburtsdatum" : "1970-04-23",  // ISO-8601 Calender Date basic(YYYYMMDD) oder extended(YYYY-MM-DD) format.
  "gesperrt", false, // default: false
  "mobilnummer" : "",
  "nachname" : "Fiore",
  "newsletterErhalten" : true,
  "rechtDarfEinstellungenOeffnen" : false, // default false
  "rechtDarfOrgaEinheitenAnlegen" : false, // default false
  "rechtEchtgeschaeftErlaubt" : true, // default false
  "titelFunktion" : "Makler",
  "telefonnummer" : "",
  "vorname" : "Marcel",
  "webseiteUrl" : ""
}
```

```
201 CREATED
Location: https://www.europace2.de/partnermanagement/partner/4712
X-TraceId : ff-request-2014-10-01-07-55

{
  "_links" : {
    "self" : "https://www.europace2.de/partnermanagement/partner/4712"
  }
  "id" : "4712"
}
```

```
400 BAD REQUEST
X-TraceId : ff-request-2014-10-01-07-55<commit_msg>"newsletterErhalten" aus den Partner Daten entfernt.<commit_after>DRAFT

# PEX API
Partnermanagement Extern API.

## Anlegen eines neuen Partners

Partner können per HTTP JSON angelegt werden.

Für alle Requests gilt:

- Leere Felder bei String ("") sind blank und werden wie null behandelt.
- Dem Server unbekannte Felder werden ignoriert
- Es wird ein (Partner-) Historieneintrag geschrieben im Namen des ApiKeys

Validierungen:

- PartnerId in URL muss durch X-ApiKey administrierbar sein.
- externePartnerId muss "unterhalb" des ApiKey unique sein.
- Validierung der Eindeutigkeit der externenPartnerId beim Create / POST => Fehler Status + Link auf die bestehende resource + Fehlertext
- Rechte dürfen nur vergeben werden, wenn sie beim Vergebenden vorhanden sind (wenn sie am ApiKey vorhanden sind)


```
POST https://www.europace2.de/partnermanagement/partner/4711/untergeordnetePartner
X-ApiKey: ABC987
X-PartnerId: 4710                              // FF Organisation
X-TraceId: ff-request-2014-10-01-07-55 // UID zur Identifikation des requests für support
Accept: application/json
Content-Type: application/json;charset=utf-8

{
  "anrede" : "HERR",                 // alternativ "FRAU"
  "anschrift" : {
    "strasse" : "...",
    "hausnummer" : "71a",
    "plz" : "...",
    "ort" : "..."
  },
  "bankverbindung" : {
     "iban" : "...",
     "bic" : "....",
     "kontoinhaber": "...",
     "referenzFeld" : "...."
  },
  "email" : "",  
  "externePartnerId" : "MAK004712",
  "faxnummer" : "",
  "firmenname" : null,
  "firmennameZusatz" : "",
  "fusszeileFuerAussenauftritt" : "", //  mit \n  als Zeilentrenner, siehe Kommentar
  "geburtsdatum" : "1970-04-23",  // ISO-8601 Calender Date basic(YYYYMMDD) oder extended(YYYY-MM-DD) format.
  "gesperrt", false, // default: false
  "mobilnummer" : "",
  "nachname" : "Fiore",
  "rechtDarfEinstellungenOeffnen" : false, // default false
  "rechtDarfOrgaEinheitenAnlegen" : false, // default false
  "rechtEchtgeschaeftErlaubt" : true, // default false
  "titelFunktion" : "Makler",
  "telefonnummer" : "",
  "vorname" : "Marcel",
  "webseiteUrl" : ""
}
```

```
201 CREATED
Location: https://www.europace2.de/partnermanagement/partner/4712
X-TraceId : ff-request-2014-10-01-07-55

{
  "_links" : {
    "self" : "https://www.europace2.de/partnermanagement/partner/4712"
  }
  "id" : "4712"
}
```

```
400 BAD REQUEST
X-TraceId : ff-request-2014-10-01-07-55
{'fraction_non_alphanumeric': 0.14448590381426202, 'fraction_numerical': 0.036898839137645106, 'mean_word_length': 3.3863636363636362, 'pattern_counts': {'":': 2, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 6, 'lorem ipsum': 0, 'www.': 6, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2813452', 'n_tokens_mistral': 1932, 'n_tokens_neox': 1819, 'n_words': 400}