Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Add route to fulfill invites

オープン
#1,679 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
25/100
issue の種類
機能追加
明瞭さ
説明が足りない
活発さ
停滞
技術スタック
javascript

調査の方向性

まずこの issue の route path を解決し、既存の signup フォーム、アプリの routing、user adapter を確認します。API 依存関係が保留中の間は Mirage を使用します。完了の条件は、route が存在しない招待、通常の招待、プロジェクト招待を処理し、invite ID を使って user を作成し、記載されたケースに対する acceptance と integration の coverage があることです。

索引モデルが issue の本文から書いたものです。

説明

needs clarification Time: 4 hours

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
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.

主要言語
JavaScript
スター
120
フォーク
75
PR マージ指標
30日以内にマージされた PR はありません

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

code-corps/code-corps-ember のほかの issue

code-corps/code-corps-ember の issue をすべて見る

似ている issue

JavaScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。