Sha256: 614bdf520746619ef7c10891371012f971c39522d58d557e2baef1bef92948e6

Contents?: true

Size: 937 Bytes

Versions: 1

Compression:

Stored size: 937 Bytes

Contents

class LikesController < ApplicationController
  # Ensure the suitable tie exists
  before_filter :tie!, :only => :create

  # POST /activities/1/like.js
  def create
    @like = activity!.children.new :verb => "like",
                                   :_tie => tie!
		
    respond_to do |format|
      if @like.save
        format.js
      else
        format.js
      end
    end
  end

  def destroy
    if (@like = activity!.liked_by(current_user).first)
      @like.destroy
    end

    respond_to do |format|
      format.js
    end
  end

  private

  def activity
    @activity ||= Activity.find(params[:activity_id])
  end

  def activity!
    activity || raise(ActiveRecord::RecordNotFound)
  end

  def tie
    @tie ||= current_user.sent_ties(:receiver => activity!.receiver,
                                    :relation => activity!.relation).first
  end

  def tie!
    tie || raise(ActiveRecord::RecordNotFound)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
social_stream-0.2.3 app/controllers/likes_controller.rb