libertree-model 0.9.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +7 -0
  2. data/lib/libertree/compat.rb +29 -0
  3. data/lib/libertree/console.rb +17 -0
  4. data/lib/libertree/db.rb +37 -0
  5. data/lib/libertree/embedder.rb +69 -0
  6. data/lib/libertree/embedding/custom-providers.rb +148 -0
  7. data/lib/libertree/model/account-settings.rb +14 -0
  8. data/lib/libertree/model/account.rb +487 -0
  9. data/lib/libertree/model/chat-message.rb +75 -0
  10. data/lib/libertree/model/comment-like.rb +68 -0
  11. data/lib/libertree/model/comment.rb +164 -0
  12. data/lib/libertree/model/contact-list.rb +81 -0
  13. data/lib/libertree/model/embed-cache.rb +6 -0
  14. data/lib/libertree/model/file.rb +6 -0
  15. data/lib/libertree/model/forest.rb +82 -0
  16. data/lib/libertree/model/group-member.rb +13 -0
  17. data/lib/libertree/model/group.rb +47 -0
  18. data/lib/libertree/model/has-display-text.rb +34 -0
  19. data/lib/libertree/model/has-searchable-text.rb +19 -0
  20. data/lib/libertree/model/ignored-member.rb +13 -0
  21. data/lib/libertree/model/invitation.rb +6 -0
  22. data/lib/libertree/model/is-remote-or-local.rb +30 -0
  23. data/lib/libertree/model/job.rb +93 -0
  24. data/lib/libertree/model/member.rb +222 -0
  25. data/lib/libertree/model/message.rb +154 -0
  26. data/lib/libertree/model/node.rb +22 -0
  27. data/lib/libertree/model/node_affiliation.rb +14 -0
  28. data/lib/libertree/model/node_subscription.rb +23 -0
  29. data/lib/libertree/model/notification.rb +71 -0
  30. data/lib/libertree/model/pool-post.rb +17 -0
  31. data/lib/libertree/model/pool.rb +172 -0
  32. data/lib/libertree/model/post-hidden.rb +21 -0
  33. data/lib/libertree/model/post-like.rb +72 -0
  34. data/lib/libertree/model/post-revision.rb +9 -0
  35. data/lib/libertree/model/post.rb +735 -0
  36. data/lib/libertree/model/profile.rb +25 -0
  37. data/lib/libertree/model/remote-storage-connection.rb +6 -0
  38. data/lib/libertree/model/river.rb +249 -0
  39. data/lib/libertree/model/server.rb +35 -0
  40. data/lib/libertree/model/session-account.rb +10 -0
  41. data/lib/libertree/model/url-expansion.rb +6 -0
  42. data/lib/libertree/model.rb +48 -0
  43. data/lib/libertree/query.rb +167 -0
  44. data/lib/libertree/render.rb +28 -0
  45. metadata +198 -0
@@ -0,0 +1,21 @@
1
+ module Libertree
2
+ module Model
3
+ class PostHidden < Sequel::Model(:posts_hidden)
4
+ def account
5
+ @account ||= Account[self.account_id]
6
+ end
7
+
8
+ def post
9
+ @post ||= Post[self.post_id]
10
+ end
11
+
12
+ def forests
13
+ if self.post.remote?
14
+ self.post.server.forests
15
+ else
16
+ Libertree::Model::Forest.all_local_is_member
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,72 @@
1
+ module Libertree
2
+ module Model
3
+ class PostLike < Sequel::Model(:post_likes)
4
+ def after_create
5
+ super
6
+ if self.local? && self.post.distribute?
7
+ Libertree::Model::Job.create_for_forests(
8
+ {
9
+ task: 'request:POST-LIKE',
10
+ params: { 'post_like_id' => self.id, }
11
+ },
12
+ *self.forests
13
+ )
14
+ end
15
+ end
16
+
17
+ def local?
18
+ self.remote_id.nil?
19
+ end
20
+
21
+ def member
22
+ @member ||= Member[self.member_id]
23
+ end
24
+
25
+ def post
26
+ @post ||= Post[self.post_id]
27
+ end
28
+
29
+ def before_destroy
30
+ if self.local? && self.post.distribute?
31
+ Libertree::Model::Job.create_for_forests(
32
+ {
33
+ task: 'request:POST-LIKE-DELETE',
34
+ params: { 'post_like_id' => self.id, }
35
+ },
36
+ *self.forests
37
+ )
38
+ end
39
+ super
40
+ end
41
+
42
+ # TODO: the correct method to call is "destroy"
43
+ def delete
44
+ self.before_destroy
45
+ super
46
+ end
47
+
48
+ def delete_cascade
49
+ self.before_destroy
50
+ DB.dbh[ "SELECT delete_cascade_post_like(?)", self.id ].get
51
+ end
52
+
53
+ def self.create(*args)
54
+ like = super
55
+ like.post.notify_about_like like
56
+ account = like.member.account
57
+ if account
58
+ like.post.mark_as_read_by account
59
+ end
60
+ like
61
+ end
62
+
63
+ def forests
64
+ if self.post.remote?
65
+ self.post.server.forests
66
+ else
67
+ Libertree::Model::Forest.all_local_is_member
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,9 @@
1
+ module Libertree
2
+ module Model
3
+ class PostRevision < Sequel::Model(:post_revisions)
4
+ def post
5
+ @post ||= Post[self.post_id]
6
+ end
7
+ end
8
+ end
9
+ end