diff --git a/app/controllers/invitations_controller.rb b/app/controllers/invitations_controller.rb
index 46bd2b1..c0affd8 100644
--- a/app/controllers/invitations_controller.rb
+++ b/app/controllers/invitations_controller.rb
@@ -6,7 +6,8 @@ class InvitationsController < ApplicationController
# GET /invitations
def index
- @invitations = current_user.invitations
+ @invitations_unused = current_user.invitations.unused
+ @invitations_used = current_user.invitations.used
end
# GET /invitations/a-random-invitation-token
diff --git a/app/models/invitation.rb b/app/models/invitation.rb
index 6400e35..e4910a5 100644
--- a/app/models/invitation.rb
+++ b/app/models/invitation.rb
@@ -2,10 +2,13 @@ class Invitation < ApplicationRecord
# Relations
belongs_to :user
+ # Validations
validates_presence_of :user
+ # Hooks
before_create :generate_token
+ # Scopes
scope :unused, -> { where(used_at: nil) }
scope :used, -> { where.not(used_at: nil) }
diff --git a/app/views/invitations/index.html.erb b/app/views/invitations/index.html.erb
index 4e081ec..5b461ce 100644
--- a/app/views/invitations/index.html.erb
+++ b/app/views/invitations/index.html.erb
@@ -1,23 +1,46 @@
Invitations
+ <% if @invitations_unused.any? %>
+
+
+
+ URL |
+
+
+
+ <% @invitations_unused.each do |invitation| %>
+
+ <%= invitation_url(invitation.token) %> |
+
+ <% end %>
+
+
+ <% else %>
+
+ You do not have any invitations to give away yet. All good
+ things come in time.
+
+ <% end %>
+
+<% if @invitations_used.any? %>
+
Accepted Invitations
- Token |
- Created at |
- |
+ URL |
+ Used at |
+ Invited user |
-
- <% @invitations.each do |invitation| %>
+ <% @invitations_used.each do |invitation| %>
- <%= invitation.token %> |
- <%= invitation.created_at %> |
- <%= link_to 'Delete', invitation, method: :delete, data: { confirm: 'Are you sure?' } %> |
+ <%= invitation_url(invitation.token) %> |
+ <%= invitation.used_at %> |
+ <%= User.find(invitation.invited_user_id).address %> |
<% end %>
-
+<% end %>
diff --git a/spec/factories/invitations.rb b/spec/factories/invitations.rb
index 621ac80..5ca1ad3 100644
--- a/spec/factories/invitations.rb
+++ b/spec/factories/invitations.rb
@@ -1,6 +1,5 @@
FactoryBot.define do
factory :invitation do
- id { 1 }
token { "abcdef123456" }
user
end