Nutzer synchronisieren

Ein zentraler Anwendungsfall für die Appack-API, der von vielen Kunden häufig angefragt wurde, ist die Anbindung einer eigenen Nutzerverwaltung. Diese kann z.B. eine selbst entwickelte Lösung, eine cloudbasierte Vereinsverwaltungssoftware oder ein bestehendes CRM-System sein. Mit den bereitgestellten Mutationen und Queries können Sie Benutzerprofile anlegen, suchen, aktualisieren und löschen.

Benutzerprofil anlegen

Um ein Benutzerprofil anzulegen, nutzen wir die Mutation createUserProfile. In diesem Beispiel wird ein neues Profil für "Marta Musterfrau" angelegt, die der Abteilung "Billard" zugeordnet wird:

mutation CreateUserProfile {
    createUserProfile(
        userProfile: {
            departments: [
                {
                    enumId: "00_Appack_TEMPLATE-department"
                    value: "Billard"
                    enumKey: "dezernat"
                }
            ]
            name: "Musterfrau"
            firstname: "Marta"
            email: "marta@musterfrau.de"
        }
    ) {
        id
        name
        firstname
        email
        departments {
            enumId
            enumKey
            value
        }
    }
}

Die folgende Response zeigt das erstellte Benutzerprofil:

{
    "data": {
        "createUserProfile": {
            "id": "66e41ca2eb07c6643266248c",
            "name": "Musterfrau",
            "firstname": "Marta",
            "email": "marta@musterfrau.de",
            "departments": [
                {
                    "enumId": "00_Appack_TEMPLATE-department",
                    "enumKey": "dezernat",
                    "value": "billard"
                }
            ]
        }
    }
}

Benutzerprofil suchen

Um nach bestehenden Benutzern zu suchen, verwenden wir die Query findUserProfile. Hier suchen wir nach dem Namen "Marta" und erhalten eine paginierte Liste von Benutzerprofilen:

query FindUserProfile {
    findUserProfile(
        search: "Marta"
        page: {size: 25, page: 0, sort: { direction: ASC, property: "name" } }
    ) {
        totalcount
        content {
            id
            name
            firstname
        }
    }
}

Die folgende Response zeigt das gefundene Benutzerprofil:

{
    "data": {
        "findUserProfile": {
            "totalcount": 1,
            "content": [
                {
                    "id": "66e41ca2eb07c6643266248c",
                    "name": "Musterfrau",
                    "firstname": "Marta"
                }
            ]
        }
    }
}

Als Suchwert (search) kann jedes Attribut aus dem UserProfile verwendet werden, wie z.B. der Name, die E-Mail-Adresse oder andere Identifikationsinformationen. So lassen sich gezielt Benutzerprofile anhand bestimmter Kriterien finden.

Benutzerprofil aktualisieren

Um die Informationen eines Benutzerprofils zu aktualisieren, z.B. die Rolle, verwenden wir die Mutation updateUserProfile. Hier wird die Rolle von Marta auf "Mitglied" gesetzt:

mutation UpdateUserProfile {
    updateUserProfile(id: "66e41ca2eb07c6643266248c",
        userProfile: { roles: [
            {enumId:"00_Appack_TEMPLATE-roles", enumKey:"M", value:"Mitglied"}
        ] }
    ) {
        id
        email
        name
        firstname
        roles {
            enumId
            enumKey
            value
        }
    }
}

Die Response zeigt das aktualisierte Profil:

{
    "data": {
        "updateUserProfile": {
            "id": "66e41ca2eb07c6643266248c",
            "email": "marta@musterfrau.de",
            "name": "Musterfrau",
            "firstname": "Marta",
            "roles": [
                {
                    "enumId": "00_Appack_TEMPLATE-roles",
                    "enumKey": "M",
                    "value": "Mitglied"
                }
            ]
        }
    }
}

Weitere nützliche Queries:

Weitere nützliche Mutationen: