wahyd4/ocelots

View on GitHub
app/controllers/membership_controller.rb

Summary

Maintainability
A
0 mins
Test Coverage
require 'soundcloudvalidate'

class MembershipController < ApplicationController
  include Soundcloudvalidate

  def accept_invitation
    membership = Membership.find_by_pending_approval_token params[:token]
    if membership and membership.person == current_person
      membership.approve
      redirect_to "/teams/#{membership.team_slug}"
    end
  end

  def update
    with_membership do |membership|
      membership.update_attributes params[:membership]
      process_sc_embed_code membership, membership.person
      redirect_to "/teams/#{membership.team_slug}"
    end
  end

  def approve
    with_membership do |membership|
      membership.approve if membership.person == current_person
      redirect_to "/teams/#{membership.team_slug}"
    end
  end

  def leave
    with_membership do |membership|
      membership.destroy if membership.person == current_person
      redirect_to '/'
    end
  end
private
  def with_membership
    if membership = Membership.find(params[:id])
      yield membership
    else
      redirect_to '/'
    end
  end
end