Skip to content
Extraits de code Groupes Projets
status_messages_controller.rb 2 ko
Newer Older
  • Learn to ignore specific revisions
  • Raphael's avatar
    Raphael a validé
    #   Copyright (c) 2010, 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.
    
    maxwell's avatar
    maxwell a validé
    class StatusMessagesController < ApplicationController
    
      before_filter :authenticate_user!
    
      respond_to :html
      respond_to :json, :only => :show
    
    
    maxwell's avatar
    maxwell a validé
      def create
    
        public_flag = params[:status_message][:public]
    
    maxwell's avatar
    maxwell a validé
        public_flag.to_s.match(/(true)/) ? public_flag = true : public_flag = false
    
        params[:status_message][:public] = public_flag 
    
    
        status_message = current_user.build_post(:status_message, params[:status_message])
        if status_message.save(:safe => true)
          raise 'MongoMapper failed to catch a failed save' unless status_message.id
          current_user.dispatch_post(status_message, :to => params[:status_message][:to])
        end
    
        render :nothing => true
    
    maxwell's avatar
    maxwell a validé
      end
    
    
      def index
        @aspect = :profile
        @post_type = :status_message
    
        @person = Person.find(params[:person_id].to_id)
    
        if @person
          @profile = @person.profile
          @contact = current_user.contact_for(@person)
          @is_contact = @person != current_user.person && @contact
    
          if @contact
            @aspects_with_person = @contact.aspects
          else
            @pending_request = current_user.pending_requests.find_by_person_id(@person.id)
          end
    
          @posts = current_user.visible_posts(:_type => 'StatusMessage', :person_id => @person.id).paginate :page => params[:page], :order => 'created_at DESC'
          render 'people/show'
    
        else
          flash[:error] = I18n.t 'people.show.does_not_exist'
          redirect_to people_path
        end
      end
    
    
    maxwell's avatar
    maxwell a validé
      def destroy
    
        @status_message = current_user.my_posts.where(:_id =>  params[:id]).first
        if @status_message
          @status_message.destroy
    
        else
          Rails.logger.info "#{current_user.inspect} is trying to delete a post they don't own with id: #{params[:id]}"
        end
    
    
    maxwell's avatar
    maxwell a validé
      end
    
    maxwell's avatar
    maxwell a validé
      def show
    
        @status_message = current_user.find_visible_post_by_id params[:id]
    
        respond_with @status_message
    
    maxwell's avatar
    maxwell a validé
      end
    end