about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2016-03-07 13:25:26 +0100
committerEugen Rochko <eugen@zeonfederated.com>2016-03-07 13:25:26 +0100
commitfe57f6330f089d023f0fa4db7f7c8a51551d2ee9 (patch)
tree876f5ce296897d08baa98fe57007108bc97d79dc
parentf099bc6091b55c598a55f252041cb3af6043caf4 (diff)
API methods for retrieving home and mentions timelines
-rw-r--r--app/controllers/api/accounts_controller.rb2
-rw-r--r--app/controllers/api/statuses_controller.rb8
-rw-r--r--app/views/api/statuses/home.rabl2
-rw-r--r--app/views/api/statuses/mentions.rabl2
-rw-r--r--config/routes.rb5
5 files changed, 18 insertions, 1 deletions
diff --git a/app/controllers/api/accounts_controller.rb b/app/controllers/api/accounts_controller.rb
index 927fd86b7..fc4c9d681 100644
--- a/app/controllers/api/accounts_controller.rb
+++ b/app/controllers/api/accounts_controller.rb
@@ -15,7 +15,7 @@ class Api::AccountsController < ApiController
   end
 
   def statuses
-    @statuses = @account.statuses
+    @statuses = @account.statuses.order('created_at desc')
   end
 
   def follow
diff --git a/app/controllers/api/statuses_controller.rb b/app/controllers/api/statuses_controller.rb
index b1633ab6c..82334a32f 100644
--- a/app/controllers/api/statuses_controller.rb
+++ b/app/controllers/api/statuses_controller.rb
@@ -20,4 +20,12 @@ class Api::StatusesController < ApiController
     @status = FavouriteService.new.(current_user.account, Status.find(params[:id])).status
     render action: :show
   end
+
+  def home
+    @statuses = Status.where(account: [current_user.account] + current_user.account.following).order('created_at desc')
+  end
+
+  def mentions
+    @statuses = Status.where(id: Mention.where(account: current_user.account).pluck(:status_id)).order('created_at desc')
+  end
 end
diff --git a/app/views/api/statuses/home.rabl b/app/views/api/statuses/home.rabl
new file mode 100644
index 000000000..12f00dd21
--- /dev/null
+++ b/app/views/api/statuses/home.rabl
@@ -0,0 +1,2 @@
+collection @statuses
+extends('api/statuses/show')
diff --git a/app/views/api/statuses/mentions.rabl b/app/views/api/statuses/mentions.rabl
new file mode 100644
index 000000000..12f00dd21
--- /dev/null
+++ b/app/views/api/statuses/mentions.rabl
@@ -0,0 +1,2 @@
+collection @statuses
+extends('api/statuses/show')
diff --git a/config/routes.rb b/config/routes.rb
index 98d892fd5..d63bdf981 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -24,6 +24,11 @@ Rails.application.routes.draw do
 
     # JSON / REST API
     resources :statuses, only: [:create, :show] do
+      collection do
+        get :home
+        get :mentions
+      end
+
       member do
         post :reblog
         post :favourite