about summary refs log tree commit diff
path: root/app/controllers
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2016-08-26 19:12:19 +0200
committerEugen Rochko <eugen@zeonfederated.com>2016-08-26 19:12:19 +0200
commit92afd296509de82e7550f67064b032db916b1f63 (patch)
tree6d723210f723d0a74317805352e7912b70c54240 /app/controllers
parent44e57f64dd8b00900c31d7fd56fda94f4e69e986 (diff)
The frontend will now be an OAuth app, auto-authorized. The frontend will use an access token for API requests
Adding better errors for the API controllers, posting a simple status works from the frontend now
Diffstat (limited to 'app/controllers')
-rw-r--r--app/controllers/api_controller.rb8
-rw-r--r--app/controllers/home_controller.rb7
2 files changed, 15 insertions, 0 deletions
diff --git a/app/controllers/api_controller.rb b/app/controllers/api_controller.rb
index 8a2712476..bacdd997b 100644
--- a/app/controllers/api_controller.rb
+++ b/app/controllers/api_controller.rb
@@ -2,6 +2,14 @@ class ApiController < ApplicationController
   protect_from_forgery with: :null_session
   skip_before_action :verify_authenticity_token
 
+  rescue_from ActiveRecord::RecordInvalid do
+    render json: { error: 'Record invalid' }, status: 422
+  end
+
+  rescue_from ActiveRecord::RecordNotFound do
+    render json: { error: 'Record not found' }, status: 404
+  end
+
   protected
 
   def current_resource_owner
diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb
index 57973ba49..f159c3df8 100644
--- a/app/controllers/home_controller.rb
+++ b/app/controllers/home_controller.rb
@@ -5,5 +5,12 @@ class HomeController < ApplicationController
     @body_classes = 'app-body'
     @home         = Feed.new(:home, current_user.account).get(20)
     @mentions     = Feed.new(:mentions, current_user.account).get(20)
+    @token        = find_or_create_access_token.token
+  end
+
+  private
+
+  def find_or_create_access_token
+    Doorkeeper::AccessToken.find_or_create_for(Doorkeeper::Application.where(superapp: true).first, current_user.id, nil, Doorkeeper.configuration.access_token_expires_in, Doorkeeper.configuration.refresh_token_enabled?)
   end
 end