Closed Amiditin closed 1 year ago
@Nelfimov Что можно с CORS сделать?
Access to fetch at 'https://stage.garnet.pet-project.habr.com/api/sandbox' from origin 'http://localhost:3020' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
@picolino посмотришь пожалуйста настройки cors?
@picolino посмотришь пожалуйста настройки cors?
Готово. На stage можно обращаться с localhost
@Amiditin fyi
@picolino посмотришь пожалуйста настройки cors?
Готово. На stage можно обращаться с localhost
@Amiditin fyi
@picolino теперь такая ошибка падает:
Access to fetch at 'https://stage.garnet.pet-project.habr.com/api/sandbox' from origin 'http://localhost:3020' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.
@Amiditin проверь еще разок
@picolino собираем бинго из ошибок, на этот раз:
Access to fetch at 'https://stage.garnet.pet-project.habr.com/api/sandbox' from origin 'http://localhost:3020' has been blocked by CORS policy: Cannot parse Access-Control-Allow-Methods response header field in preflight response.
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://stage.garnet.pet-project.habr.com/api/sandbox. (Reason: invalid token ‘["POST"’ in CORS header ‘Access-Control-Allow-Methods’). Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://stage.garnet.pet-project.habr.com/api/sandbox. (Reason: CORS request did not succeed). Status code: (null).
@picolino @Demorey @gfg7
При загрузке аватарок падает 404, запрос:
mutation UserUploadAvatar($file: Upload!) {
userUploadAvatar(input: { file: $file }) {
id
avatarUrl
}
}
teamsListByUser
, но для проектов аналогичного не нашел, т.е. projectsListByUser
, как можно их получить? И такой же вопрос по командам projectsListByTeam
.teamsListByUser
не хватает информации о количестве участников и проектов команды, которая необходима для этого ховер эффекта.Чтобы получить все команды пользователя у нас есть запрос teamsListByUser, но для проектов аналогичного не нашел, т.е. projectsListByUser, как можно их получить? И такой же вопрос по командам projectsListByTeam.
query ProjectTeamParticipantsFilter - в инпуте айди проекта по которому надо отобрать команды-участников, в списке полученных объектов есть список из объектов пользователей-участников команды с их аватарками
Чтобы получить все команды пользователя у нас есть запрос teamsListByUser, но для проектов аналогичного не нашел, т.е. projectsListByUser, как можно их получить? И такой же вопрос по командам projectsListByTeam.
query ProjectTeamParticipantsFilter - в инпуте айди проекта по которому надо отобрать команды-участников, в списке полученных объектов есть список из объектов пользователей-участников команды с их аватарками
Этот вопрос про кейс, когда мы на странице пользователя/команды и нам нужно получить список проектов figma. А ProjectTeamParticipantsFilter
возвращает информацию о командах для конкретного проекта, верно?
@Amiditin
При загрузке аватарок падает 404, запрос:
Добавь в запрос header:
GraphQL-preflight: 1
Он нужен по соображениям безопасности, поэтому отдает 404.
Но имей в виду, эндпоинты для взаимодействия с пользователем на редактирование должны выполняться под текущим пользователем. Сейчас у нас кратос не развернут на стейдже, нет нормальной регистрации и авторизации, к бекенду функционал "текущего пользователя" не подключен. Все запросы исполняются от системы. До момента развернутого и работоспособного кратоса с полным функционалом по регистрации и авторизации мы не сможем зафести фукнционал редактирования текущего пользователя.
Этот вопрос про кейс, когда мы на странице пользователя/команды и нам нужно получить список проектов figma.
Понял о чем ты, этих запросов действительно нет, добавлю
А
ProjectTeamParticipantsFilter
возвращает информацию о командах для конкретного проекта, верно?
Верно
@picolino
Добавь в запрос header:
GraphQL-preflight: 1 Он нужен по соображениям безопасности, поэтому отдает 404.
В первый раз запрос прошел успешно, а при следующих выкидывает такую ошибку:
{
"errors": [
{
"message": "Unexpected Execution Error",
"locations": [
{
"line": 2,
"column": 3
}
],
"path": [
"userUploadAvatar"
]
}
]
}
Кейс редактирования аватара.
Кейс редактирования аватара.
@Amiditin фикс на stage
- Чтобы получить все команды пользователя у нас есть запрос
teamsListByUser
, но для проектов аналогичного не нашел, т.е.projectsListByUser
, как можно их получить? И такой же вопрос по командамprojectsListByTeam
.
@Amiditin добавил запросы ProjectFilterByTeamParticipantId
и ProjectFilterByUserParticipantId
@Demorey запрос teamsListByUser
на получение команд пользователя начал выдавать ошибку 500:
@Demorey запрос
teamsListByUser
на получение команд пользователя начал выдавать ошибку 500:
если тестили в стейдж, какой userId был
@Demorey запрос
teamsListByUser
на получение команд пользователя начал выдавать ошибку 500:если тестили в стейдж, какой userId был
system
@Demorey запрос
teamsListByUser
на получение команд пользователя начал выдавать ошибку 500:если тестили в стейдж, какой userId был
system
почистила бд, теперь проходит
2. В payload
teamsListByUser
не хватает информации о количестве участников и проектов команды, которая необходима для этого ховер эффекта.
судя по дизайну, нужны еще сразу аватарки участников?
- В payload
teamsListByUser
не хватает информации о количестве участников и проектов команды, которая необходима для этого ховер эффекта.судя по дизайну, нужны еще сразу аватарки участников?
Да, нужны, хотя бы первые 3
@Demorey запрос
teamsListByUser
на получение команд пользователя начал выдавать ошибку 500:
Аналогичная ситуация с projectsFilter
@Demorey запрос
teamsListByUser
на получение команд пользователя начал выдавать ошибку 500:Аналогичная ситуация с
projectsFilter
Тоже подчистил бд, сейчас вроде проходит запрос
@Amiditin добавил запросы ProjectFilterByTeamParticipantId и ProjectFilterByUserParticipantId
При запросе ProjectFilters
возвращается один проект с "ownerUserId": "system"
:
query ProjectFilters($search: String, $skip: Int!, $tags: [String!], $take: Int!) {
projectsFilter(input: {search: $search, skip: $skip, tags: $tags, take: $take}) {
projects {
id
projectName
avatarUrl
ownerUserId
}
}
}
variables
{
"search": "",
"skip": 0,
"tags": [],
"take": 0
}
При этом запрос projectFilterByUserParticipantId
с "id": "system"
возвращает пустой массив:
query UserGetProjects($id: String!) {
projectFilterByUserParticipantId(userId: $id) {
projects {
id
projectName
avatarUrl
}
}
}
variables
{
"id": "system"
}
Как я и говорил, у нас не будет адекватно работать функционал, связанный с пользователями, пока мы не настроим корректную регистрацию и авторизацию через kratos.
Предлагаю пока что жить на моках. В процессе сейчас добавление регистрации пользователей на бекенде, как закончим - полностью почистим базу (чтобы все было консистентным) и можно будет норм пользоваться и тестить.
@Demorey @gfg7
Для запросов teamParticipantFilter
, teamUserJoinRequestsShow
, teamJoinInvitationsShow
можно в респонс добавить полностью информацию о пользователе? (имя, аватар, теги)
@Amiditin
Для запросов
teamParticipantFilter
можно в респонс добавить полностью информацию о пользователе? (имя, аватар, теги)
не вижу в дизайне показа тегов для списка участников, будут правки?
имя, аватар
добавлено в рамках https://github.com/habralab/garnet-team/issues/223
teamUserJoinRequestsShow
,teamJoinInvitationsShow
добавлю
не вижу в дизайне показа тегов для списка участников, будут правки?
Да, для списка участников теги не нужны.
@Nelfimov Зарегался на stage, запросы c /api/sandbox проходят, но с локалхоста нет 401, куки добавлены и идентичны stage. Что-то ещё нужно сделать?
@Nelfimov Зарегался на stage, запросы c /api/sandbox проходят, но с локалхоста нет 401, куки добавлены и идентичны stage. Что-то ещё нужно сделать?
Попробуй порт поменять на 3000 у приложения для локальной разработки. Иначе призываем бэк.
Проблема в том, что куки в браузере указываются для текущей страницы (localhost). И при запросах на стейдж автоматически не передаются, так как другой домен. Секьюрити.
Если выполнять запросы напрямую с куками из curl или postman - все будет ок. Нужно курить доку\конфиги чтобы все заработало. Если вообще так можно
@picolino @Nelfimov Как можно получить id авторизованного пользователя?
@Amiditin id можешь получить из kratos: https://www.ory.sh/docs/kratos/reference/api#tag/frontend/operation/toSession
@Amiditin возможно с нашего бэка можно вытащить - они же делают у себя дубликат id пользователя.
Эндпоинта на получение текущего юзера мы не делали, вся нужная инфа по текущему пользаку есть в кратосе, эндпоинт указали выше
@Amiditin id можешь получить из kratos: https://www.ory.sh/docs/kratos/reference/api#tag/frontend/operation/toSession
@Nelfimov Откуда мне взять flow.id
? в useFlow
ничего не лежит
@Amiditin А зачем тебе flow.id? Там обычный запрос на эндпоинт с текущими куками кратоса
teamUserJoinRequestsShow
,teamJoinInvitationsShow
можно в респонс добавить полностью информацию о пользователе? (имя, аватар, теги)
С чем связан запрос на фичу?
Необходимо добавить для всех страниц graphql запросы
Расскажите как вы это себе видите
Добавить query и mutation запросы на страницы:
DoD (критерий готовности)
На всех страницах проходят quiery и mutation запросы
Приложите пример реализаций
No response
Приложите материалы задачи
https://stage.garnet.pet-project.habr.com/api/sandbox/