Skip to content

Commit 53100f3

Browse files
committed
add status to contributions
1 parent d273272 commit 53100f3

File tree

3 files changed

+15
-1
lines changed

3 files changed

+15
-1
lines changed

lib/algora/workspace/schemas/user_contribution.ex

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ defmodule Algora.Workspace.UserContribution do
1111
typed_schema "user_contributions" do
1212
field :contribution_count, :integer, null: false, default: 0
1313
field :last_fetched_at, :utc_datetime_usec, null: false
14+
field :status, Ecto.Enum, values: [:initial, :highlighted, :hidden], default: :initial
1415

1516
belongs_to :user, User, null: false
1617
belongs_to :repository, Repository, null: false
@@ -23,8 +24,9 @@ defmodule Algora.Workspace.UserContribution do
2324
"""
2425
def changeset(%UserContribution{} = contribution, attrs) do
2526
contribution
26-
|> cast(attrs, [:user_id, :repository_id, :contribution_count, :last_fetched_at])
27+
|> cast(attrs, [:user_id, :repository_id, :contribution_count, :last_fetched_at, :status])
2728
|> validate_required([:user_id, :repository_id, :contribution_count, :last_fetched_at])
29+
|> validate_inclusion(:status, [:initial, :highlighted, :hidden])
2830
|> generate_id()
2931
|> foreign_key_constraint(:user_id)
3032
|> foreign_key_constraint(:repository_id)

lib/algora/workspace/workspace.ex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -683,6 +683,7 @@ defmodule Algora.Workspace do
683683
select: %UserContribution{
684684
contribution_count: uc.contribution_count,
685685
user: map(u, [:id, :provider_login]),
686+
status: uc.status,
686687
repository: %{
687688
id: r.id,
688689
name: r.name,
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
defmodule Algora.Repo.Migrations.AddStatusToUserContributions do
2+
use Ecto.Migration
3+
4+
def change do
5+
alter table(:user_contributions) do
6+
add :status, :string, null: false, default: "initial"
7+
end
8+
9+
create constraint(:user_contributions, :valid_status, check: "status IN ('initial', 'highlighted', 'hidden')")
10+
end
11+
end

0 commit comments

Comments
 (0)