Skip to content

GraphQL

a1unade edited this page Jul 21, 2025 · 1 revision

Queries

Users

  • Получение списка всех пользователей

    Пример запроса:

    query {
        users {
            name
            id
        }
    }

    Пример ответа:

    "data": {
        "users": [
            {
                "name": "Иван Иванов",
                "id": "e8e60a2c-46f4-41e4-8e56-ecb97df34de2"
            },
            {
                "name": "Иван Иванов",
                "id": "ba3d2ce7-54ff-4d3b-a0ec-7bca83f21939"
            },
            {
                "name": "Иван Иванов",
                "id": "d8f05f57-c42b-4c4c-a849-f5f7d80843d8"
            },
            {
                "name": "Иван Иванов",
                "id": "b0634b92-47e2-4720-bfeb-888f336279bb"
            }
        ]
    }
  • Получение пользователя по ID:

    Пример запроса:

    query {
        users (where: { id: { eq: "d8dc0566-7ad0-47b3-83cd-9bff6c10ab16" } }) {
            name
            id
        }
    }

    Пример ответа:

    "data": {
        "users": [
            {
                "name": "Иван Иванов",
                "id": "d8dc0566-7ad0-47b3-83cd-9bff6c10ab16"
            }
        ]
    }

Notifications

  • Получение списка всех уведомлений

    Пример запроса:

    query {
        notifications {
            id
            type
            frequency
            scheduledAt
            title
            description
        }
    }

    Пример ответа:

    "data": {
        "notifications": [
            {
                "id": "956e5542-59b2-4dc4-8de4-733528a2a72e",
                "type": "ONE_TIME",
                "frequency": null,
                "scheduledAt": "2025-08-01T09:00:00.000Z",
                "title": "notification",
                "description": "description"
            },
            {
                "id": "222e8b6a-2ba7-470b-a747-f96489649683",
                "type": "ONE_TIME",
                "frequency": null,
                "scheduledAt": "2025-08-01T09:00:00.000Z",
                "title": "notification",
                "description": "description"
            },
            {
                "id": "bae79eb1-d436-4d8d-be0a-acf210629562",
                "type": "ONE_TIME",
                "frequency": null,
                "scheduledAt": "2025-08-01T09:00:00.000Z",
                "title": "notification",
                "description": "description"
            },
            {
                "id": "06add0b3-37f7-47fb-a8fa-26395c9ec333",
                "type": "ONE_TIME",
                "frequency": null,
                "scheduledAt": "2025-08-01T09:00:00.000Z",
                "title": "notification",
                "description": "description"
            }
        ]
    }
  • Получение уведомления по ID

    Пример запроса:

    query {
        notifications (where: { id: { eq: "06add0b3-37f7-47fb-a8fa-26395c9ec333" } }) {
            id
            title
            description
        }
    }
    "data": {
        "notifications": [
            {
                "id": "06add0b3-37f7-47fb-a8fa-26395c9ec333",
                "title": "notification",
                "description": "description"
            }
        ]
    }

Mutations

Users

  • Создание пользователя

    Пример запроса:

    mutation {
        createUser(
            request: {
            name: "Иван Иванов"
            telegramTag: "@ivan"
            }
        )
    }

    Пример ответа:

    "data": {
        "createUser": "d8dc0566-7ad0-47b3-83cd-9bff6c10ab16"
    }
  • Обновление пользователя

    Пример запроса:

    mutation {
        updateUser(request: {
            id: "892a8419-5d0f-49c9-9257-12b558d7b194",
            name: "Новое имя",
            email: "new.email@example.com"
        }) {
            id
            name
            email
            telegramTag
        }
    }

    Пример ответа:

    "data": {
        "updateUser": {
            "id": "892a8419-5d0f-49c9-9257-12b558d7b194",
            "name": "Новое имя",
            "email": "new.email@example.com",
            "telegramTag": "@ivan"
        }
    }
  • Удаление пользователя

    Пример запроса:

    mutation {
        deleteUser (id: "892a8419-5d0f-49c9-9257-12b558d7b194")
    }

    Пример ответа:

    "data": {
        "deleteUser": true
    }

Notifications

  • Создание уведомления

    Пример запроса:

    mutation CreateNotification {
        createNotification(
            request: {
            userId: "d8dc0566-7ad0-47b3-83cd-9bff6c10ab16"
            title: "notification"
            description: "description"
            type: ONE_TIME
            scheduledAt: "2025-08-01T09:00:00Z"
            }
        ) {
            id
            title
            description
            type
            frequency
            scheduledAt
            email
            telegramTag
        }
    }

    Пример ответа:

    "data": {
        "createNotification": {
            "id": "06add0b3-37f7-47fb-a8fa-26395c9ec333",
            "title": "notification",
            "description": "description",
            "type": "ONE_TIME",
            "frequency": null,
            "scheduledAt": "2025-08-01T09:00:00.000Z",
            "email": "ivan@example.com",
            "telegramTag": "@ivan"
        }
    }
  • Обновление уведомления по ID

    Пример запроса:

    mutation {
        updateNotification(
            request: {
            id: "8f99832e-b15e-4be7-8a19-156881dbe4a2"
            title: "Новое название уведомления"
        }) {
            id
            title
            description
            type
            scheduledAt
        }
    }

    Пример ответа:

    "data": {
        "updateNotification": {
        "id": "8f99832e-b15e-4be7-8a19-156881dbe4a2",
        "title": "Новое название уведомления",
        "description": "description",
        "type": "ONE_TIME",
        "scheduledAt": "2025-08-01T09:00:00.000Z"
        }
    }
  • Удаление уведомления по ID

    Пример запроса:

    mutation {
        deleteNotification (id: "8f99832e-b15e-4be7-8a19-156881dbe4a2")
    }

    Пример ответа:

    "data": {
        "deleteNotification": true
    }

Clone this wiki locally