From 92afd296509de82e7550f67064b032db916b1f63 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 26 Aug 2016 19:12:19 +0200 Subject: 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 --- app/controllers/api_controller.rb | 8 ++++++++ app/controllers/home_controller.rb | 7 +++++++ 2 files changed, 15 insertions(+) (limited to 'app/controllers') 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 -- cgit