From 0c67e271df5730f145675e7174bc95653f1d03d3 Mon Sep 17 00:00:00 2001 From: Raphael Date: Sun, 19 Dec 2010 13:11:41 -0800 Subject: [PATCH] Services are in mysql, contact_for and add_contact_to_aspect work again --- app/models/service.rb | 12 ++---------- app/models/user.rb | 6 +++--- db/migrate/0000_create_schema.rb | 12 ++++++++++++ db/schema.rb | 14 ++++++++++++++ lib/diaspora/user/querying.rb | 6 ++---- spec/models/user/posting_spec.rb | 2 ++ 6 files changed, 35 insertions(+), 17 deletions(-) diff --git a/app/models/service.rb b/app/models/service.rb index 779adc1e8..9cd0979e9 100644 --- a/app/models/service.rb +++ b/app/models/service.rb @@ -2,18 +2,10 @@ # licensed under the Affero General Public License version 3 or later. See # the COPYRIGHT file. -class Service - include MongoMapper::Document +class Service < ActiveRecord::Base include ActionView::Helpers::TextHelper - - belongs_to :user - key :provider, String - key :uid, String - key :access_token, String - key :access_secret, String - key :nickname, String - timestamps! + belongs_to :user def public_message(post, length, url = "") url = "" if post.respond_to?(:photos) && post.photos.count == 0 diff --git a/app/models/user.rb b/app/models/user.rb index 1c399fed8..afd1cec3b 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -38,6 +38,7 @@ class User < ActiveRecord::Base has_many :aspect_memberships, :through => :aspects has_many :contacts has_many :contact_people, :through => :contacts + has_many :services # many :visible_people, :in => :visible_person_ids, :class => Person # One of these needs to go # many :raw_visible_posts, :in => :visible_post_ids, :class => Post @@ -88,9 +89,8 @@ class User < ActiveRecord::Base end def add_contact_to_aspect(contact, aspect) - return true if contact.aspect_ids.include?(aspect.id) - contact.aspects << aspect - contact.save! + return true if contact.aspect_memberships.where(:aspect_id => aspect.id).count > 0 + contact.aspect_memberships.create!(:aspect => aspect) end def delete_person_from_aspect(person_id, aspect_id, opts = {}) diff --git a/db/migrate/0000_create_schema.rb b/db/migrate/0000_create_schema.rb index 6246a4699..54ff786ae 100644 --- a/db/migrate/0000_create_schema.rb +++ b/db/migrate/0000_create_schema.rb @@ -123,6 +123,18 @@ class CreateSchema < ActiveRecord::Migration add_index :requests, :recipient_id add_index :requests, [:sender_id, :recipient_id], :unique => true + create_table :services do |t| + t.string :_type + t.integer :user_id + t.string :provider + t.string :uid + t.string :access_token + t.string :access_secret + t.string :nickname + t.timestamps + end + add_index :services, :user_id + create_table :users do |t| t.string :username t.text :serialized_private_key diff --git a/db/schema.rb b/db/schema.rb index 52e4d3efc..e21925e8c 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -157,6 +157,20 @@ ActiveRecord::Schema.define(:version => 0) do add_index "requests", ["sender_id", "recipient_id"], :name => "index_requests_on_sender_id_and_recipient_id", :unique => true add_index "requests", ["sender_id"], :name => "index_requests_on_sender_id" + create_table "services", :force => true do |t| + t.string "_type" + t.integer "user_id" + t.string "provider" + t.string "uid" + t.string "access_token" + t.string "access_secret" + t.string "nickname" + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "services", ["user_id"], :name => "index_services_on_user_id" + create_table "users", :force => true do |t| t.string "username" t.text "serialized_private_key" diff --git a/lib/diaspora/user/querying.rb b/lib/diaspora/user/querying.rb index 555795187..237df9cd9 100644 --- a/lib/diaspora/user/querying.rb +++ b/lib/diaspora/user/querying.rb @@ -42,13 +42,11 @@ module Diaspora end def contact_for(person) - id = person.id - contact_for_person_id(id) + contact_for_person_id(person.id) end def contact_for_person_id(person_id) - contacts.first(:person_id => person_id) if person_id - + Contact.where(:user_id => self.id, :person_id => person_id).first if person_id end def contacts_not_in_aspect( aspect ) diff --git a/spec/models/user/posting_spec.rb b/spec/models/user/posting_spec.rb index 2ccbf1a98..6481b568c 100644 --- a/spec/models/user/posting_spec.rb +++ b/spec/models/user/posting_spec.rb @@ -25,8 +25,10 @@ describe User do end it 'saves post into visible post ids' do + pp user.raw_visible_posts proc { user.add_to_streams(@post, @aspect_ids) + pp user.raw_visible_posts }.should change(user.raw_visible_posts, :count).by(1) user.reload.raw_visible_posts.should include @post end