Skip to content
Extraits de code Groupes Projets
comments_controller.rb 2,46 ko
Newer Older
  • Learn to ignore specific revisions
  • danielgrippi's avatar
    danielgrippi a validé
    #   Copyright (c) 2010-2011, Diaspora Inc.  This file is
    
    Raphael's avatar
    Raphael a validé
    #   licensed under the Affero General Public License version 3 or later.  See
    
    Raphael's avatar
    Raphael a validé
    #   the COPYRIGHT file.
    
    class CommentsController < ApplicationController
    
      before_filter :authenticate_user!, :except => [:index]
    
    danielgrippi's avatar
    danielgrippi a validé
      respond_to :html,
                 :mobile,
                 :json
    
      rescue_from ActiveRecord::RecordNotFound do
        render :nothing => true, :status => 404
      end
    
    
        target = current_user.find_visible_shareable_by_id(Post, params[:post_id])
    
        text = params[:text]
    
          @comment = current_user.build_comment(:text => text, :post => target)
    
    Maxwell Salzberg's avatar
    Maxwell Salzberg a validé
            Rails.logger.info("event => :create, :type => :comment, :user => #{current_user.diaspora_handle},
                              :status => :success, :comment => #{@comment.id}, :chars => #{params[:text].length}")
    
            current_user.dispatch_post(@comment)
    
    danielgrippi's avatar
    danielgrippi a validé
              format.json{ render :json => @comment.as_api_response(:backbone), :status => 201 }
    
              format.html{ render :nothing => true, :status => 201 }
    
              format.mobile{ render :partial => 'comment', :locals => {:post => @comment.post, :comment => @comment} }
    
            render :nothing => true, :status => 422
    
    Raphael's avatar
    Raphael a validé
        else
    
          render :nothing => true, :status => 422
    
    Raphael's avatar
    Raphael a validé
        end
    
        @comment = Comment.find(params[:id])
        if current_user.owns?(@comment) || current_user.owns?(@comment.parent)
          current_user.retract(@comment)
          respond_to do |format|
    
            format.js { render :nothing => true, :status => 204 }
    
            format.json { render :nothing => true, :status => 204 }
    
            format.mobile{ redirect_to @comment.post }
    
          respond_to do |format|
            format.mobile {redirect_to :back}
    
            format.any(:js, :json) {render :nothing => true, :status => 403}
    
      def new
        render :layout => false
      end
    
    
          @post = current_user.find_visible_shareable_by_id(Post, params[:post_id])
    
    Maxwell Salzberg's avatar
    Maxwell Salzberg a validé
          @post = Post.find_by_id_and_public(params[:post_id], true)
    
    Maxwell Salzberg's avatar
    Maxwell Salzberg a validé
          @comments = @post.comments.for_a_stream
    
    danielgrippi's avatar
    danielgrippi a validé
          respond_with do |format|
    
            format.json  { render :json => @comments.as_api_response(:backbone), :status => 200 }
    
            format.mobile{render :layout => false}
    
    danielgrippi's avatar
    danielgrippi a validé
          end