From f9279f9bbc2acbfeb63fdc43942049fb281878f1 Mon Sep 17 00:00:00 2001 From: maxwell Date: Wed, 9 Mar 2011 17:07:28 -0800 Subject: [PATCH] fixed public route not fetching posts, also an error in status_message activity markup --- app/controllers/status_messages_controller.rb | 1 + app/controllers/users_controller.rb | 3 +-- app/models/status_message.rb | 2 +- config/routes.rb | 2 +- lib/diaspora/ostatus_builder.rb | 5 +++-- spec/controllers/users_controller_spec.rb | 8 ++++++++ spec/models/status_message_spec.rb | 7 +++++++ 7 files changed, 22 insertions(+), 6 deletions(-) diff --git a/app/controllers/status_messages_controller.rb b/app/controllers/status_messages_controller.rb index 33bc0d975..0d1890a72 100644 --- a/app/controllers/status_messages_controller.rb +++ b/app/controllers/status_messages_controller.rb @@ -17,6 +17,7 @@ class StatusMessagesController < ApplicationController public_flag = params[:status_message][:public] public_flag.to_s.match(/(true)|(on)/) ? public_flag = true : public_flag = false params[:status_message][:public] = public_flag + puts public_flag @status_message = current_user.build_post(:status_message, params[:status_message]) aspects = current_user.aspects_from_ids(params[:aspect_ids]) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index bc219c51e..a50b4b2ee 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -73,8 +73,7 @@ class UsersController < ApplicationController render :xml => director.build(ostatus_builder), :content_type => 'application/atom+xml' else - flash[:error] = I18n.t 'users.public.does_not_exist', :username => params[:username] - redirect_to root_url + redirect_to root_url, :error => I18n.t('users.public.does_not_exist', :username => params[:username]) end end diff --git a/app/models/status_message.rb b/app/models/status_message.rb index 1e4d3dea0..d72125b5e 100644 --- a/app/models/status_message.rb +++ b/app/models/status_message.rb @@ -89,7 +89,7 @@ class StatusMessage < Post #{x(self.formatted_message(:plain_text => true))} - #{person.url}posts/#{self.id} + #{self.author.url}posts/#{self.id} #{self.created_at.xmlschema} #{self.updated_at.xmlschema} http://activitystrea.ms/schema/1.0/post diff --git a/config/routes.rb b/config/routes.rb index 7e7542046..199f93d82 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -51,7 +51,7 @@ Diaspora::Application.routes.draw do # added public route to user - match 'public/:username', :to => 'users#public' + match 'public/:username', :to => 'users#public', :as => 'users_public' match 'getting_started', :to => 'users#getting_started', :as => 'getting_started' match 'getting_started_completed', :to => 'users#getting_started_completed' match 'users/export', :to => 'users#export' diff --git a/lib/diaspora/ostatus_builder.rb b/lib/diaspora/ostatus_builder.rb index fad33df44..ba8cbd7fa 100644 --- a/lib/diaspora/ostatus_builder.rb +++ b/lib/diaspora/ostatus_builder.rb @@ -23,13 +23,14 @@ module Diaspora def initialize(user) @user = user + @posts = Post.where(:author_id => @user.person.id, :public => true) end def create_headers <<-XML -Diaspora +Diaspora #{@user.public_url}.atom #{x(@user.name)}'s Public Feed Posts from Diaspora @@ -61,7 +62,7 @@ module Diaspora end def create_body - @user.visible_posts(:author_id => @user.person.id, :public=>true).inject("") do |xml,curr| + @posts.inject("") do |xml,curr| if curr.respond_to?(:to_activity) unless xml curr.to_activity diff --git a/spec/controllers/users_controller_spec.rb b/spec/controllers/users_controller_spec.rb index ef055270d..587376a35 100644 --- a/spec/controllers/users_controller_spec.rb +++ b/spec/controllers/users_controller_spec.rb @@ -21,6 +21,14 @@ describe UsersController do end end + describe '#public' do + it 'renders xml' do + sm = Factory(:status_message, :public => true, :author => @user.person) + get :public, :username => @user.username + response.body.should include(sm.message) + end + end + describe '#update' do before do @params = { :id => @user.id, diff --git a/spec/models/status_message_spec.rb b/spec/models/status_message_spec.rb index 697bef70b..193e0f48d 100644 --- a/spec/models/status_message_spec.rb +++ b/spec/models/status_message_spec.rb @@ -199,6 +199,13 @@ STR @marshalled.diaspora_handle.should == @message.diaspora_handle end end + + + describe '#to_activity' do + it 'should render a string' do + @message.to_activity.should_not be_blank + end + end end describe 'youtube' do