Merge branch 'master' of github.com:diaspora/diaspora_rails into socket-foo

This commit is contained in:
maxwell 2010-07-08 10:18:03 -07:00
commit d04093f456
11 changed files with 33 additions and 94 deletions

View file

@ -1,39 +0,0 @@
class FriendsController < ApplicationController
before_filter :authenticate_user!
def index
@friends = Friend.paginate :page => params[:page], :order => 'created_at DESC'
end
def show
@friend = Friend.where(:id => params[:id]).first
@friend_profile = @friend.profile
@friend_posts = Post.where(:person_id => @friend.id).sort(:created_at.desc)
end
def destroy
@friend = Friend.where(:id => params[:id]).first
@friend.destroy
flash[:notice] = "Successfully destroyed friend."
redirect_to friends_url
end
def new
@friend = Friend.new
@profile = Profile.new
end
def create
puts params.inspect
@friend = Friend.new(params[:friend])
if @friend.save
flash[:notice] = "Successfully created friend."
redirect_to @friend
else
render :action => 'new'
end
end
end

View file

@ -1,8 +1,11 @@
class PersonRequest
require 'lib/common'
include ApplicationHelper
include MongoMapper::Document
include Diaspora::Webhooks
include ROXML
include Diaspora::Webhooks
xml_name :person_request
xml_accessor :_id
@ -16,11 +19,9 @@ class PersonRequest
before_save :check_for_person_requests
def self.for(url)
request = PersonRequest.new(:url => url)
request.person = User.first
request = PersonRequest.new(:url => url, :person => User.first)
request.save
request.push_to([request])
request.push_to_url(url)
end
def check_for_person_requests

View file

@ -1,5 +0,0 @@
= form_for @friend_request do |f|
= f.error_messages
%p
f.submit

View file

@ -1,3 +0,0 @@
%li.message{:id => friend_request.id}
= friend_request.inspect

View file

@ -1,4 +0,0 @@
= form_for @friend_request, :remote => true do |f|
= f.error_messages
%p
= f.submit

View file

@ -1,8 +0,0 @@
- title "Edit Bookmark"
= render 'form'
%p
= link_to "Show", bookmark_path(@bookmark)
|
= link_to "View All", bookmarks_path

View file

@ -1,7 +0,0 @@
%h1 friend requests
= render "friend_requests/new_friend_request", :friend_request => @friend_request
%ul#stream
- for friend_request in @friend_requests
= render "friend_request", :friend_request => friend_request
#pagination
= will_paginate @friend_requests

View file

@ -1,5 +0,0 @@
- title "New Friend Request"
= render 'form'
%p= link_to "Back to List", friend_requests_path

View file

@ -1,11 +0,0 @@
- title "Friend Request"
%p
= friend_request.inspect
%p
= link_to "Edit", edit_friend_request_path(@bookmark)
|
= link_to "Destroy", @friend_request, :confirm => 'Are you sure?', :method => :delete
|
= link_to "View All", friend_requests_path

View file

@ -29,16 +29,21 @@ module Diaspora
def store_objects_from_xml(xml)
objects = parse_objects_from_xml(xml)
puts xml
objects.each do |p|
if p.is_a? Retraction
p.perform
elsif p.is_a? PersonRequest
if PersonRequest.where(:url => p.url).first
p.active = true
if PersonRequest.where(:_id => p._id).first
p.person.active = true
end
p.url = p.person.url
p.save
p.person.save
#This line checks if the sender was in the database, among other things?
elsif p.respond_to?(:person) && !(p.person.nil?) && !(p.person.is_a? User) #WTF
p.save
@ -69,6 +74,16 @@ module Diaspora
end
end
def push_to_url(url)
if url
puts "AHHHHHH, sending"
xml = self.class.build_xml_for([self])
puts xml
@@queue.add_post_request( [url], xml )
@@queue.process
end
end
def prep_webhook
"<post>#{self.to_xml.to_s}</post>"
end

View file

@ -114,22 +114,27 @@ describe "parser in application helper" do
request = PersonRequest.new(:url => "http://www.googles.com/")
request.person = @person
xml = Post.build_xml_for [request]
xml = PersonRequest.build_xml_for [request]
@person.destroy
@user.destroy
Person.count.should be 0
store_objects_from_xml(xml)
Person.count.should be 1
puts Person.first.inspect
end
it "should activate the Person if I initiated a request to that url" do
request = PersonRequest.create(:url => @person.url, :person => @user)
request_remote = PersonRequest.new(:url => "http://www.yahoo.com/")
request_remote = PersonRequest.new(:_id => request.id, :url => "http://www.yahoo.com/")
request_remote.person = @person.clone
xml = Post.build_xml_for [request_remote]
xml = PersonRequest.build_xml_for [request_remote]
@person.destroy
@user.destroy
request_remote.destroy
store_objects_from_xml(xml)
Person.where(:url => @person.url).first.active.should be true
end