diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2016-08-26 19:12:19 +0200 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2016-08-26 19:12:19 +0200 |
commit | 92afd296509de82e7550f67064b032db916b1f63 (patch) | |
tree | 6d723210f723d0a74317805352e7912b70c54240 /app/controllers | |
parent | 44e57f64dd8b00900c31d7fd56fda94f4e69e986 (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.rb | 8 | ||||
-rw-r--r-- | app/controllers/home_controller.rb | 7 |
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 |