+5
-35
app/models/user.rb
+5
-35
app/models/user.rb
···
7
7
require_relative 'pin'
8
8
require_relative 'post'
9
9
require_relative 'repost'
10
+
require_relative 'user_importable'
10
11
11
12
class User < ActiveRecord::Base
12
13
validates_presence_of :did
···
19
20
20
21
before_destroy :delete_posts_cascading
21
22
22
-
has_many :likes, foreign_key: 'actor_id', dependent: :delete_all do
23
-
def import_from_record(like_uri, record, **args)
24
-
like = self.new_from_record(like_uri, record)
25
-
return nil if like.nil? || self.where(rkey: like.rkey).exists?
26
-
27
-
like.import_item!(args)
28
-
end
29
-
end
30
-
31
-
has_many :reposts, foreign_key: 'actor_id', dependent: :delete_all do
32
-
def import_from_record(repost_uri, record, **args)
33
-
repost = self.new_from_record(repost_uri, record)
34
-
return nil if repost.nil? || self.where(rkey: repost.rkey).exists?
35
-
36
-
repost.import_item!(args)
37
-
end
38
-
end
39
-
40
-
has_many :quotes, foreign_key: 'actor_id', dependent: :delete_all do
41
-
def import_from_record(post_uri, record, **args)
42
-
quote = self.new_from_record(post_uri, record)
43
-
return nil if quote.nil? || self.where(rkey: quote.rkey).exists?
44
-
45
-
quote.import_item!(args)
46
-
end
47
-
end
48
-
49
-
has_many :pins, foreign_key: 'actor_id', dependent: :delete_all do
50
-
def import_from_record(post_uri, record, **args)
51
-
pin = self.new_from_record(post_uri, record)
52
-
return nil if pin.nil? || self.where(rkey: pin.rkey).exists?
53
-
54
-
pin.import_item!(args)
55
-
end
56
-
end
23
+
has_many :likes, foreign_key: 'actor_id', dependent: :delete_all, extend: UserImportable
24
+
has_many :reposts, foreign_key: 'actor_id', dependent: :delete_all, extend: UserImportable
25
+
has_many :quotes, foreign_key: 'actor_id', dependent: :delete_all, extend: UserImportable
26
+
has_many :pins, foreign_key: 'actor_id', dependent: :delete_all, extend: UserImportable
57
27
58
28
def self.active
59
29
self.joins(:imports).distinct
+12
app/models/user_importable.rb
+12
app/models/user_importable.rb
···
1
+
module UserImportable
2
+
def import_from_record(item_uri, record, **args)
3
+
item = self.new_from_record(item_uri, record)
4
+
return nil if item.nil? || already_imported?(item)
5
+
6
+
item.import_item!(args)
7
+
end
8
+
9
+
def already_imported?(item)
10
+
self.where(rkey: item.rkey).exists?
11
+
end
12
+
end