0
0
Fork 0

Refactoring Grape API methods into normal controllers & other things

This commit is contained in:
Eugen Rochko 2016-02-29 19:42:08 +01:00
parent 11ff92c9d7
commit 0e8f59c16f
63 changed files with 336 additions and 406 deletions

View file

@ -0,0 +1,16 @@
class AccountsController < ApplicationController
before_action :set_account
def show
respond_to do |format|
format.html
format.atom
end
end
private
def set_account
@account = Account.find_by!(username: params[:username], domain: nil)
end
end

View file

@ -0,0 +1,14 @@
class Api::SalmonController < ApplicationController
before_action :set_account
def update
ProcessInteractionService.new.(request.body.read, @account)
render nothing: true, status: 201
end
private
def set_account
@account = Account.find(params[:id])
end
end

View file

@ -0,0 +1,28 @@
class Api::SubscriptionsController < ApplicationController
before_action :set_account
def show
if @account.subscription(api_subscription_url(@account.id)).valid?(params['hub.topic'], params['hub.verify_token'])
render text: params['hub.challenge'], status: 200
else
render nothing: true, status: 404
end
end
def update
body = request.body.read
if @account.subscription(api_subscription_url(@account.id)).verify(body, env['HTTP_X_HUB_SIGNATURE'])
ProcessFeedService.new.(body, @account)
render nothing: true, status: 201
else
render nothing: true, status: 202
end
end
private
def set_account
@account = Account.find(params[:id])
end
end

View file

@ -1,18 +0,0 @@
class AtomController < ApplicationController
before_filter :set_format
def user_stream
@account = Account.find_by!(id: params[:id], domain: nil)
end
def entry
@entry = StreamEntry.find(params[:id])
end
private
def set_format
request.format = 'xml'
response.headers['Content-Type'] = 'application/atom+xml'
end
end

View file

@ -1,17 +0,0 @@
class ProfileController < ApplicationController
before_action :set_account
def show
end
def entry
@entry = @account.stream_entries.find(params[:id])
@type = @entry.activity_type.downcase
end
private
def set_account
@account = Account.find_by!(username: params[:name], domain: nil)
end
end

View file

@ -0,0 +1,23 @@
class StreamEntriesController < ApplicationController
before_action :set_account
before_action :set_stream_entry
def show
@type = @stream_entry.activity_type.downcase
respond_to do |format|
format.html
format.atom
end
end
private
def set_account
@account = Account.find_by!(username: params[:account_username], domain: nil)
end
def set_stream_entry
@stream_entry = @account.stream_entries.find(params[:id])
end
end

View file

@ -9,6 +9,8 @@ class XrdController < ApplicationController
@account = Account.find_by!(username: username_from_resource, domain: nil)
@canonical_account_uri = "acct:#{@account.username}@#{LOCAL_DOMAIN}"
@magic_key = pem_to_magic_key(@account.keypair.public_key)
rescue ActiveRecord::RecordNotFound
render nothing: true, status: 404
end
private