Main Avalanche Network server application. Built with Ruby on Rails.

invites_controller.rb 2.3KB

    class InvitesController < ApplicationController def invite @invite = Invite.new @sent_invites = Invite.where(user_id: current_user.id) end def send_invite_message @to = invites_params[:email] @message = invites_params[:message] @invite = Invite.where(email: @to).where(user_id: current_user.id).first if @invite == nil original_invite = Invite.where(email: @to).first @invite = Invite.create!(email: @to, user_id: current_user.id, invitations_sent: 1, last_invitation_sent_date: Time.now) if original_invite == nil # Devise Invitable @user = User.invite!({email: @to}, current_user) do |u| u.skip_invitation = true end token = @user.raw_invitation_token token_url = accept_invitation_url(@user, :invitation_token => token) @invite.update(token: token_url, new_user_id: @user.id) else @invite.update(token: original_invite.token, new_user_id: original_invite.new_user_id) end else @invite.update(invitations_sent: (@invite.invitations_sent.to_i + 1), last_invitation_sent_date: Time.now) end @user = User.find(@invite.new_user_id) if UserMailer.invite_message(@user, current_user, @message, @invite.token).deliver @user.update(invitation_sent_at: Time.now.utc) @analytics.track('Invite sent') flash[:notice] = "successfully sent invite to #{@user.email}" redirect_to invite_path else redirect_to invite_path, alert: (t 'invite.error_invitation_not_sent') end end def resend_invite_message @invite = Invite.find(params[:id]) @invite.update(invitations_sent: (@invite.invitations_sent.to_i + 1), last_invitation_sent_date: Time.now) @user = User.where(email: @invite.email).first UserMailer.invite_message(@user, current_user, @message, @invite.token).deliver if @user.errors.empty? && @user.update(invitation_sent_at: Time.now.utc) @analytics.track('Invite sent') flash[:notice] = "successfully sent invite to #{@user.email}" redirect_to invite_path else redirect_to invite_path, alert: (t 'invite.error_invitation_not_sent') end end private def invites_params params.require(:invite).permit(:email, :message) end end