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? %> + + + + + + + + <% @invitations_unused.each do |invitation| %> + + + + <% end %> + +
URL
<%= invitation_url(invitation.token) %>
+ <% else %> +

+ You do not have any invitations to give away yet. All good + things come in time. +

+ <% end %> +
+<% if @invitations_used.any? %> +

Accepted Invitations

- - - + + + - - <% @invitations.each do |invitation| %> + <% @invitations_used.each do |invitation| %> - - - + + + <% end %>
TokenCreated atURLUsed atInvited user
<%= 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 %> 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