From 1ac688f82cb4672081248322f89fe6d4fda04219 Mon Sep 17 00:00:00 2001
From: maxwell <maxwell@joindiaspora.com>
Date: Wed, 9 Mar 2011 17:33:47 -0800
Subject: [PATCH] moved an ostatus builder query out to the controller, where
 it belongs, and corrected the order

---
 app/controllers/users_controller.rb  | 3 ++-
 lib/diaspora/ostatus_builder.rb      | 4 ++--
 spec/lib/diaspora/ostatus_builder.rb | 3 +--
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index a50b4b2eef..fb3a568d11 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -68,8 +68,9 @@ class UsersController < ApplicationController
     user = User.find_by_username(params[:username])
 
     if user
+      posts = Post.where(:author_id => user.person.id, :public => true).order('created_at DESC')
       director = Diaspora::Director.new
-      ostatus_builder = Diaspora::OstatusBuilder.new(user)
+      ostatus_builder = Diaspora::OstatusBuilder.new(user, posts)
 
       render :xml => director.build(ostatus_builder), :content_type => 'application/atom+xml'
     else
diff --git a/lib/diaspora/ostatus_builder.rb b/lib/diaspora/ostatus_builder.rb
index ba8cbd7fa8..9fd8d733de 100644
--- a/lib/diaspora/ostatus_builder.rb
+++ b/lib/diaspora/ostatus_builder.rb
@@ -21,9 +21,9 @@ module Diaspora
   class OstatusBuilder
     include Diaspora::Webhooks
 
-    def initialize(user)
+    def initialize(user, posts)
       @user = user
-      @posts = Post.where(:author_id => @user.person.id, :public => true)
+      @posts = posts
     end
 
     def create_headers
diff --git a/spec/lib/diaspora/ostatus_builder.rb b/spec/lib/diaspora/ostatus_builder.rb
index 687443104b..d9b437ec86 100644
--- a/spec/lib/diaspora/ostatus_builder.rb
+++ b/spec/lib/diaspora/ostatus_builder.rb
@@ -22,11 +22,10 @@ describe Diaspora::OstatusBuilder do
       arr << s
     end
   }
-  let!(:atom) { director = Diaspora::Director.new; director.build(Diaspora::OstatusBuilder.new(user)) }
+  let!(:atom) { director = Diaspora::Director.new; director.build(Diaspora::OstatusBuilder.new(user, public_status_messages)) }
 
   it 'should include a users posts' do
     public_status_messages.each{ |status| atom.should include status.message }
-    private_status_messages.each{ |status| atom.should_not include status.message }
   end
 
 end
-- 
GitLab