Sha256: c13a593765e17fc25d7ce136d8ab97a1799a9378ec04a1b9976abd5fdb25941a

Contents?: true

Size: 943 Bytes

Versions: 7

Compression:

Stored size: 943 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_subject).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_subject.sent_ties(:receiver => activity!.receiver,
                                    :relation => activity!.relation).first
  end

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

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
social_stream-0.3.6 app/controllers/likes_controller.rb
social_stream-0.3.5 app/controllers/likes_controller.rb
social_stream-0.3.4 app/controllers/likes_controller.rb
social_stream-0.3.3 app/controllers/likes_controller.rb
social_stream-0.3.2 app/controllers/likes_controller.rb
social_stream-0.3.1 app/controllers/likes_controller.rb
social_stream-0.3.0 app/controllers/likes_controller.rb