normal
Zum Hauptinhalt springen

# Kontakte

Nutzer können in Stud.IP sich andere Nutzer als Kontakte merken. Dafür ist kein neuer Ressourcentyp nötig.

## Alle Kontakte​

    curl --request GET \
        --url https://example.com/users/<ID>/contacts \
        --header "Authorization: Basic `echo -ne "test_autor:testing" | base64`"

Mit dieser Route können alle Kontakte eines Nutzers ausgelesen werden.

### HTTP Request​

`GET /users/{id}/contacts`

Parameter | Beschreibung
--- | ---
id | die ID des Nutzers

### URL-Parameter​

keine URL-Parameter

### Autorisierung​

Jeder Nutzer kann seine eigenen Kontakte sehen.

## Alle Kontakt-IDs eines Nutzer​

    curl --request GET \
        --url https://example.com/users/<ID>/relationships/contacts \
        --header "Authorization: Basic `echo -ne "test_autor:testing" | base64`"

Mit dieser Route können alle IDs der Kontakte eines Nutzers ausgelesen werden.

(siehe http://jsonapi.org/format/#fetching-relationships)

### HTTP Request​

`GET /users/{id}/relationships/contacts`

Parameter | Beschreibung
--- | ---
id | die ID des Nutzers

### URL-Parameter​

keine URL-Parameter

### Autorisierung​

Jeder Nutzer kann seine eigenen Kontakte sehen.

## Kontakte eines Nutzers setzen​

    curl --request PATCH \
        --url https://example.com/users/<ID>/relationships/contacts \
        --header "Authorization: Basic `echo -ne "test_autor:testing" | base64`" \
        --header "Content-Type: application/vnd.api+json" \
        --data '{"data": [ \
            {"type": "users","id":"<id1>"}, \
            {"type": "users","id":"<id2>"}, \
            {"type": "users","id":"<id3>"} \
            ]}'

Mit dieser Route kann man die alle Kontakte eines Nutzers setzen.

(siehe http://jsonapi.org/format/#crud-updating-to-many-relationships)

### HTTP Request​

`PATCH /users/{id}/relationships/contacts`

Parameter | Beschreibung
--- | ---
id | die ID des Nutzers

### URL-Parameter​

keine URL-Parameter

### Autorisierung​

Jeder Nutzer kann seine eigenen Kontakte setzen.

## Kontakte eines Nutzers hinzufügen​

    curl --request POST \
        --url https://example.com/users/<ID>/relationships/contacts \
        --header "Authorization: Basic `echo -ne "test_autor:testing" | base64`" \
        --header "Content-Type: application/vnd.api+json" \
        --data '{"data": [ \
            {"type": "users","id":"<id4>"} \
            ]}'

Mit dieser Route kann man Kontakte eines Nutzers hinzufügen.

(siehe http://jsonapi.org/format/#crud-updating-to-many-relationships)

### HTTP Request​

`POST /users/{id}/relationships/contacts`

Parameter | Beschreibung
--- | ---
id | die ID des Nutzers

### URL-Parameter​

keine URL-Parameter

### Autorisierung​

Jeder Nutzer kann seine eigenen Kontakte setzen.

## Kontakte eines Nutzers löschen​

    curl --request DELETE \
        --url https://example.com/users/<ID>/relationships/contacts \
        --header "Authorization: Basic `echo -ne "test_autor:testing" | base64`" \
        --header "Content-Type: application/vnd.api+json" \
        --data '{"data": [ \
            {"type": "users","id":"<id1>"}, \
            {"type": "users","id":"<id4>"} \
            ]}'

Mit dieser Route kann man Kontakte eines Nutzers löschen.

(siehe http://jsonapi.org/format/#crud-updating-to-many-relationships)

### HTTP Request​

`DELETE /users/{id}/relationships/contacts`

Parameter | Beschreibung
--- | ---
id | die ID des Nutzers

### URL-Parameter​

keine URL-Parameter

### Autorisierung​

Jeder Nutzer kann seine eigenen Kontakte löschen.