Skip to content
Extraits de code Groupes Projets
Valider 4350e176 rédigé par Raphael's avatar Raphael
Parcourir les fichiers

RS, IZ; removed lots of putses, fixed up request, parser, retractions

parent f2e327d9
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -18,7 +18,7 @@ class PublicsController < ApplicationController ...@@ -18,7 +18,7 @@ class PublicsController < ApplicationController
end end
def receive def receive
puts "SOMEONE JUST SENT ME: #{params[:xml]}" Rails.logger.info "PublicsController has received: #{params[:xml]}"
store_objects_from_xml params[:xml] store_objects_from_xml params[:xml]
render :nothing => true render :nothing => true
end end
......
...@@ -13,9 +13,8 @@ module SocketsHelper ...@@ -13,9 +13,8 @@ module SocketsHelper
begin begin
v = render_to_string(:partial => type_partial(object), :locals => {:post => object}) unless object.is_a? Retraction v = render_to_string(:partial => type_partial(object), :locals => {:post => object}) unless object.is_a? Retraction
rescue Exception => e rescue Exception => e
puts "web socket view rendering failed for some reason." + v.inspect Rails.logger.error ("web socket view rendering failed for some reason." + v.inspect)
puts object.inspect Rails.logger.error("Socketed object was #{object.inspect}")
puts e.message
raise e raise e
end end
action_hash = {:class =>object.class.to_s.underscore.pluralize, :html => v, :post_id => obj_id(object)} action_hash = {:class =>object.class.to_s.underscore.pluralize, :html => v, :post_id => obj_id(object)}
......
...@@ -26,12 +26,10 @@ class Comment ...@@ -26,12 +26,10 @@ class Comment
end end
def push_upstream def push_upstream
puts "Comment going upstream"
push_to([post.person]) push_to([post.person])
end end
def push_downstream def push_downstream
puts "Comment going downstream"
push_to(post.people_with_permissions) push_to(post.people_with_permissions)
end end
...@@ -63,7 +61,6 @@ class Comment ...@@ -63,7 +61,6 @@ class Comment
def verify_post_creator_signature def verify_post_creator_signature
unless person == User.owner unless person == User.owner
puts "verifying post creator sig from #{post.person.real_name}"
verify_signature(post_creator_signature, post.person) verify_signature(post_creator_signature, post.person)
else else
true true
......
...@@ -93,7 +93,6 @@ class Person ...@@ -93,7 +93,6 @@ class Person
##profile ##profile
def update_profile(params) def update_profile(params)
if self.update_attributes(params) if self.update_attributes(params)
puts self.profile.class
self.profile.notify_people! self.profile.notify_people!
true true
else else
......
...@@ -32,17 +32,20 @@ class Request ...@@ -32,17 +32,20 @@ class Request
person = options[:from] person = options[:from]
self.new(:destination_url => options[:to], :callback_url => person.url, :person => person, :exported_key => person.export_key) self.new(:destination_url => options[:to], :callback_url => person.url, :person => person, :exported_key => person.export_key)
end end
def activate_friend def activate_friend
from_user = Person.first(:url => self.callback_url).owner from_user = Person.first(:url => self.callback_url).owner
puts from_user.inspect from_user.pending_friends.delete(person)
from_user.friends << from_user.pending_friends.delete(person)
from_user.friends << person
from_user.save
end end
def set_pending_friend def set_pending_friend
p = Person.first(:id => self.person.id) p = Person.first(:id => self.person.id)
puts p.inspect
self.person.save #save pending friend self.person.save #save pending friend
end end
......
...@@ -5,11 +5,15 @@ class Retraction ...@@ -5,11 +5,15 @@ class Retraction
def self.for(object) def self.for(object)
retraction = self.new retraction = self.new
retraction.post_id= object.id if object.is_a? User
retraction.post_id = object.person.id
retraction.type = object.person.class.to_s
else
retraction.post_id= object.id
retraction.type = object.class.to_s
end
retraction.person_id = person_id_from(object) retraction.person_id = person_id_from(object)
retraction.type = object.class.to_s
retraction retraction
end end
xml_accessor :post_id xml_accessor :post_id
...@@ -23,6 +27,7 @@ class Retraction ...@@ -23,6 +27,7 @@ class Retraction
def perform def perform
begin begin
return unless signature_valid? return unless signature_valid?
Rails.logger.info("Retracting #{self.type} id: #{self.post_id}")
self.type.constantize.destroy(self.post_id) self.type.constantize.destroy(self.post_id)
rescue NameError rescue NameError
Rails.logger.info("Retraction for unknown type recieved.") Rails.logger.info("Retraction for unknown type recieved.")
......
...@@ -8,7 +8,9 @@ class User ...@@ -8,7 +8,9 @@ class User
key :pending_friend_ids, Array key :pending_friend_ids, Array
one :person, :class_name => 'Person', :foreign_key => :owner_id one :person, :class_name => 'Person', :foreign_key => :owner_id
many :friends, :in => :friend_ids, :class_name => 'Person' many :friends, :in => :friend_ids, :class_name => 'Person'
many :pending_friends, :in => :pending_friend_ids, :class_name => 'Person'
before_validation_on_create :assign_key before_validation_on_create :assign_key
before_validation :do_bad_things before_validation :do_bad_things
...@@ -20,10 +22,6 @@ class User ...@@ -20,10 +22,6 @@ class User
self.person.send(method, *args) self.person.send(method, *args)
end end
def pending_friends
Person.all(:id => self.pending_friend_ids)
end
def real_name def real_name
"#{person.profile.first_name.to_s} #{person.profile.last_name.to_s}" "#{person.profile.first_name.to_s} #{person.profile.last_name.to_s}"
...@@ -38,13 +36,15 @@ class User ...@@ -38,13 +36,15 @@ class User
if p.save if p.save
p.push_to_url friend_url p.push_to_url friend_url
end end
p p
end end
end end
def accept_friend_request(friend_request_id) def accept_friend_request(friend_request_id)
request = Request.where(:id => friend_request_id).first request = Request.where(:id => friend_request_id).first
request.activate_friend pending_friends.delete(request.person)
friends << request.person
request.person = self request.person = self
request.exported_key = self.export_key request.exported_key = self.export_key
request.destination_url = request.callback_url request.destination_url = request.callback_url
...@@ -55,7 +55,8 @@ class User ...@@ -55,7 +55,8 @@ class User
def ignore_friend_request(friend_request_id) def ignore_friend_request(friend_request_id)
request = Request.first(:id => friend_request_id) request = Request.first(:id => friend_request_id)
person = request.person person = request.person
person.destroy unless self.friends.include? person pending_friends.delete(request.person)
person.destroy unless person.user_refs > 0
request.destroy request.destroy
end end
...@@ -65,12 +66,12 @@ class User ...@@ -65,12 +66,12 @@ class User
friend_request.person.serialized_key = friend_request.exported_key friend_request.person.serialized_key = friend_request.exported_key
if Request.where(:callback_url => friend_request.callback_url).first if Request.where(:callback_url => friend_request.callback_url).first
friend_request.activate_friend friend_request.activate_friend
Rails.logger.info("#{self.real_name}'s friend request has been accepted")
friend_request.destroy friend_request.destroy
else else
friend_request.person.save friend_request.person.save
pending_friends << friend_request.person
friend_request.create_pending_friend Rails.logger.info("#{self.real_name} has received a friend request")
friend_request.save friend_request.save
end end
end end
......
...@@ -23,13 +23,12 @@ module Diaspora ...@@ -23,13 +23,12 @@ module Diaspora
begin begin
object = post.name.camelize.constantize.from_xml post.to_s object = post.name.camelize.constantize.from_xml post.to_s
if object.is_a? Retraction if object.is_a? Retraction
elsif object.respond_to? :person
object.person = parse_owner_from_xml post.to_s
elsif object.is_a? Profile elsif object.is_a? Profile
puts "got into parse objects from xml PROFILE"
person = parse_owner_id_from_xml post person = parse_owner_id_from_xml post
person.profile = object person.profile = object
person.save person.save
elsif object.respond_to? :person
object.person = parse_owner_from_xml post.to_s
end end
objects << object objects << object
rescue NameError => e rescue NameError => e
...@@ -48,7 +47,7 @@ module Diaspora ...@@ -48,7 +47,7 @@ module Diaspora
objects.each do |p| objects.each do |p|
Rails.logger.info("Receiving object:\n#{p.inspect}") Rails.logger.info("Receiving object:\n#{p.inspect}")
if p.is_a? Retraction if p.is_a? Retraction
puts "Got a retraction for #{p.post_id}" Rails.logger.info "Got a retraction for #{p.post_id}"
p.perform p.perform
elsif p.is_a? Request elsif p.is_a? Request
User.owner.receive_friend_request(p) User.owner.receive_friend_request(p)
......
...@@ -13,7 +13,6 @@ class MessageHandler ...@@ -13,7 +13,6 @@ class MessageHandler
end end
def add_post_request(destinations, body) def add_post_request(destinations, body)
puts "sending to: #{destinations.inspect}"
b = CGI::escape( body ) b = CGI::escape( body )
[*destinations].each{|dest| @queue.push(Message.new(:post, dest, :body => b))} [*destinations].each{|dest| @queue.push(Message.new(:post, dest, :body => b))}
end end
......
...@@ -105,7 +105,6 @@ describe Diaspora::Parser do ...@@ -105,7 +105,6 @@ describe Diaspora::Parser do
message = Factory.create(:status_message, :person => person) message = Factory.create(:status_message, :person => person)
retraction = Retraction.for(message) retraction = Retraction.for(message)
request = Post.build_xml_for( [retraction] ) request = Post.build_xml_for( [retraction] )
puts request
StatusMessage.count.should == 1 StatusMessage.count.should == 1
store_objects_from_xml( request ) store_objects_from_xml( request )
...@@ -141,11 +140,14 @@ describe Diaspora::Parser do ...@@ -141,11 +140,14 @@ describe Diaspora::Parser do
@person.destroy @person.destroy
request_remote.destroy request_remote.destroy
store_objects_from_xml(xml) store_objects_from_xml(xml)
Person.first(:url => @person.url).active.should be true new_person = Person.first(:url => @person.url)
new_person.nil?.should be false
@user.reload
@user.friends.include?(new_person).should be true
end end
it 'should marshal a retraction for a person' do it 'should process retraction for a person' do
retraction = Retraction.for(@user) retraction = Retraction.for(@user)
request = Retraction.build_xml_for( [retraction] ) request = Retraction.build_xml_for( [retraction] )
...@@ -169,7 +171,7 @@ describe Diaspora::Parser do ...@@ -169,7 +171,7 @@ describe Diaspora::Parser do
xml = Post.build_xml_for(person.profile) xml = Post.build_xml_for(person.profile)
reloaded_person = Person.first(:id => id) reloaded_person = Person.first(:id => id)
reloaded_person.profile = nil reloaded_person.profile = nil
reloaded_person.profile.save reloaded_person.save(:validate => false)
#Make sure profile is cleared #Make sure profile is cleared
Person.first(:id => id).profile.should be nil Person.first(:id => id).profile.should be nil
......
...@@ -138,7 +138,6 @@ class FakeHttpRequest ...@@ -138,7 +138,6 @@ class FakeHttpRequest
@callback = callback_wanted @callback = callback_wanted
end end
def response def response
"NOTE YOU ARE IN FAKE HTTP"
end end
def post; end def post; end
......
...@@ -46,7 +46,6 @@ describe Comment do ...@@ -46,7 +46,6 @@ describe Comment do
it 'should send a user comment on his own post to lots of people' do it 'should send a user comment on his own post to lots of people' do
allowed_urls = @user_status.people_with_permissions.map!{|x| x = x.url + "receive/"} allowed_urls = @user_status.people_with_permissions.map!{|x| x = x.url + "receive/"}
puts allowed_urls
message_queue.should_receive(:add_post_request).with(allowed_urls, anything) message_queue.should_receive(:add_post_request).with(allowed_urls, anything)
@user.comment "yo", :on => @user_status @user.comment "yo", :on => @user_status
end end
......
...@@ -59,7 +59,6 @@ describe Photo do ...@@ -59,7 +59,6 @@ describe Photo do
it 'should not use the imported filename as the url' do it 'should not use the imported filename as the url' do
@photo.image.store! File.open(@fixture_name) @photo.image.store! File.open(@fixture_name)
puts @photo.image.url(:thumb_medium)
@photo.image.url.include?(@fixture_filename).should be false @photo.image.url.include?(@fixture_filename).should be false
@photo.image.url(:thumb_medium).include?("/" + @fixture_filename).should be false @photo.image.url(:thumb_medium).include?("/" + @fixture_filename).should be false
end end
......
require File.dirname(__FILE__) + '/../spec_helper' require File.dirname(__FILE__) + '/../spec_helper'
describe User do describe User do
before do
@user = Factory.create(:user)
end
it "should be a person" do it "should be a person" do
n = Person.count n = Person.count
Factory.create(:user) Factory.create(:user)
Person.count.should == n+1 Person.count.should == n+1
end end
describe 'friend requesting' do describe 'friend requesting' do
before do it "should be able to accept a pending friend request" do
@user = Factory.create(:user)
end
it "should be able to accept a pending friend request" do
friend = Factory.create(:person) friend = Factory.create(:person)
r = Request.instantiate(:to => @user.url, :from => friend) r = Request.instantiate(:to => @user.url, :from => friend)
r.save r.save
...@@ -50,6 +49,35 @@ describe User do ...@@ -50,6 +49,35 @@ describe User do
@user.terse_url.should == 'example.com' @user.terse_url.should == 'example.com'
end end
it 'should get the pending friends' do
person_one = Factory.create :person
person_two = Factory.create :person
@user.pending_friends.empty?.should be true
@user.friends.empty?.should be true
request = Request.instantiate(:to => @user.url, :from => person_one)
person_one.destroy
@user.receive_friend_request request
@user.pending_friends.size.should be 1
@user.friends.size.should be 0
request_two = Request.instantiate(:to => @user.url, :from => person_two)
person_two.destroy
@user.receive_friend_request request_two
@user.pending_friends.size.should be 2
@user.friends.size.should be 0
@user.accept_friend_request request.id
@user.pending_friends.size.should be 1
@user.friends.size.should be 1
@user.ignore_friend_request request_two.id
@user.pending_friends.size.should be 0
@user.friends.size.should be 1
end
end
describe 'profiles' do
it 'should be able to update their profile and send it to their friends' do it 'should be able to update their profile and send it to their friends' do
Factory.create(:person) Factory.create(:person)
...@@ -61,5 +89,4 @@ describe User do ...@@ -61,5 +89,4 @@ describe User do
@user.profile.image_url.should == "http://clown.com" @user.profile.image_url.should == "http://clown.com"
end end
end end
end end
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter