about summary refs log tree commit diff
path: root/app/models
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2016-03-07 12:42:33 +0100
committerEugen Rochko <eugen@zeonfederated.com>2016-03-07 12:42:33 +0100
commitab6696e855b58cdb2b6264c9acb0397dd7384e25 (patch)
tree516e8c8f3a574e669d9f5b192655c54a7bcda38b /app/models
parent3824c588533f481011d2be19ff9476c001ffbee9 (diff)
Adding doorkeeper, adding a REST API
POST /api/statuses                  Params: status (text contents), in_reply_to_id (optional)
GET  /api/statuses/:id
POST /api/statuses/:id/reblog

GET  /api/accounts/:id
GET  /api/accounts/:id/following
GET  /api/accounts/:id/followers
POST /api/accounts/:id/follow
POST /api/accounts/:id/unfollow

POST /api/follows                  Params: uri (e.g. user@domain)

OAuth authentication is currently disabled, but the API can be used with HTTP Auth.
Diffstat (limited to 'app/models')
-rw-r--r--app/models/account.rb10
1 files changed, 9 insertions, 1 deletions
diff --git a/app/models/account.rb b/app/models/account.rb
index 47e43f0ac..9e6dea4aa 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -24,7 +24,7 @@ class Account < ActiveRecord::Base
   MENTION_RE = /(?:^|\W)@([a-z0-9_]+(?:@[a-z0-9\.\-]+)?)/i
 
   def follow!(other_account)
-    self.active_relationships.first_or_create!(target_account: other_account)
+    self.active_relationships.where(target_account: other_account).first_or_create!(target_account: other_account)
   end
 
   def unfollow!(other_account)
@@ -59,6 +59,14 @@ class Account < ActiveRecord::Base
     !(self.secret.blank? || self.verify_token.blank?)
   end
 
+  def favourited?(status)
+    (status.reblog? ? status.reblog : status).favourites.where(account: self).count == 1
+  end
+
+  def reblogged?(status)
+    (status.reblog? ? status.reblog : status).reblogs.where(account: self).count == 1
+  end
+
   def keypair
     self.private_key.nil? ? OpenSSL::PKey::RSA.new(self.public_key) : OpenSSL::PKey::RSA.new(self.private_key)
   end