Как использовать Hasura / postgres uuid с apollo-ios и swift
У меня есть таблица, определенная в Hasura (Postgres) с использованием собственного uuid
как тип данных поля. Моя цель - создать мутацию обновления из Swift, но тип uuid не отображается неявно из Postgres через Hasura и Apollo в Swift. В документации Hasura указано, что тип uuid поддерживает использованиеString
но когда я определяю переменные в мутации обновления как String!
,
mutation RedeemMagicLinkCode($code: String!, $iosIdentifierForVendor: String!) {
__typename
update_entityname(where: {code: {_eq: $code}, iosIdentifierForVendor: {_is_null: true}}, _set: {iosIdentifierForVendor: $iosIdentifierForVendor}) {
returning {
id
}
}
}
Я получаю сообщение об ошибке на этапе сборки кода Apollo, которое Variable "$code" of type "String!" used in position expecting type "uuid".
. Когда я изменю это наuuid!
,
mutation RedeemMagicLinkCode($code: uuid!, $iosIdentifierForVendor: uuid!) {
__typename
update_en...
Шаг генерации кода завершается, создавая API.swift, но несколько экземпляров ошибки компиляции Use of undeclared type 'uuid'
Raise и теперь возникают из-за сбоя во время компиляции API.swift, созданного Apollo.
/// API.swift
...
public let operationName = "RedeemMagicLinkCode"
public var code: uuid
public var iosIdentifierForVendor: uuid
...
Может ли кто-нибудь указать мне правильное направление, чтобы сообщить Swift, что такое uuid, или определить мой запрос, чтобы я мог передать String в качестве параметра через управляемую мутацию Apollo? Спасибо!
1 ответ
ОМ (Боже мой), возможно, мне придется покраснеть от того, насколько простым было это решение.
Я считал ошибку Use of undeclared type 'uuid'
плюс документация о том, что Хасура примет String
для этого специального скаляра...
/// API+typealias.swift
public typealias uuid = String
Я поместил указанный выше код псевдонима в файл сам по себе в папке, где находятся мои файлы GraphQL, и вуаля, он отлично сработал!
Я не в восторге от этого псевдонима общедоступного типа, который сейчас находится в глобальной области видимости, но я в восторге от работающей службы данных