code-corps / code-corps/code-corps-ember

Add route to fulfill invites

Aberta
#1,679 0 comentários 0 reações 0 responsáveis Ver no GitHub
needs clarification Time: 4 hours
Linguagem predominante
JavaScript
Estrelas
120
Forks
75
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

# Problem

We need a route (at a path to be decided on here) which will be used to claim a user invite

## Subtasks
- [ ] Decide on path for the route through discussion in this issue
- [ ] Add route to app
- [ ] Loads invite, has a 404/not_found substate
- [ ] Displays different informational UI depending on the invite being for a project or just a plain invite
- [ ] Displays form UI for user account creation - mostly the same as the signup form
- [ ] When creating the user, add invite ID to the new user payload
- [ ] Write acceptance test for success case for a plain invite
- [ ] Write acceptance test for success case for a project invite
- [ ] Write fail case for an invite not found
- [ ] Write any integration tests for components added as part of the solution

## Notes

### How to specify an invite id

- We could add the invite id as a virtual attribute and push it as part of the payload. Would require a virtual attribute API side as well

- We could ad a `hasMany('claimed-invites')` to the user model, since the API already has it, then push the loaded invite into the association and save that way. Should end as `claimed_invite_ids` on the API, but would require rewriting our API approach slightly
- My prefered approach
- save a plain user, but when calling save, specify `user.save({ inviteId: userInvite.id })`
- modify user adapter by overriding

```Javascript
urlForCreateRecord(modelName, snapshot) {
if (snapshot.inviteId) {
return this._super(...arguments) + `?invite_id=${snapshot.inviteId}`
} else {
return this._super(...arguments);
}
}
```

This way, we keep the create "switch" separate from the create attributes, since it becomes a query param. At the same time, the API should keep working.

## References

Requires code-corps/code-corps-api#1351 merged, but can be worked on using mirage in the interim.

Guia de contribuição

Abrir o guia de contribuição

Direção de pesquisa

Comece resolvendo o caminho da rota neste issue e, em seguida, inspecione o formulário de signup existente, o roteamento da aplicação e o adaptador de usuário. Use Mirage enquanto a dependência da API estiver pendente. Considera-se concluído quando a rota lida com convites ausentes, simples e de projeto, cria o usuário com o ID do convite e tem cobertura de acceptance e integração para os casos listados.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
javascript
Domínio
authentication, frontend
Tipo de issue
Funcionalidade
Dificuldade
5/5
Tempo estimado
Mais de uma semana
Status de atividade
Estagnada
Clareza
Precisa de esclarecimento
Facilidade para iniciantes
25/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.