Реализовать graphql апи по спеке schema.graphql с применением следующих библиотек:
Требования:
- postgres база данных поднимается в докере
- схема базы создается через миграции (любой инструмент вроде https://github.com/amacneil/dbmate)
- проект должен запускаться парой команд вроде
docker-compose up -d # любая команда прогона миграций на ваш выбор dbmate up # любая команда заливки тестовых данных на ваш выбор cat seed.sql | psql postgres://staging:staging@localhost:7232 go run .
- простой каталог из списка продуктов
- возможность входа через смс код (сайт предлагает ввести номер телефона и отправляет код через смс, после ввода кода просходит авторизация или регистрация, если пользователь не существовал в базе)
- получить данные пользователя, если есть токен после signInByCode
Получить список продуктов
query {
products {
id
name
}
}
Отправить смс с кодом на указанный номер (для теста просто писать код в терминале). Запрос вернет null (все ок) или ошибку.
mutation {
requestSignInCode(input: { phone: "799999999" }) {
message
}
}
Авторизация с номер+код, результатом является токен или ошибка
mutation {
signInByCode(input: { phone: "799999999", code: "0000" }) {
... on SignInPayload {
token
viewer {
user {
phone
}
}
}
... on ErrorPayload {
message
}
}
}
С токеном можно получить данные пользователя. Токен передавать через куки или Authorization заголовок (лучше заголовок тк это поддерживает GraphqlIDE встроенная)
query {
viewer {
user {
phone
}
}
}