From e31ed2748597c9f31afba87dcdf47082949f0f23 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 16 Feb 2021 15:28:32 +0100 Subject: [PATCH] Add `GET /api/v1/accounts/lookup` REST API (#15740) --- .../api/v1/accounts/lookup_controller.rb | 16 ++++++++++++++++ config/routes.rb | 1 + 2 files changed, 17 insertions(+) create mode 100644 app/controllers/api/v1/accounts/lookup_controller.rb diff --git a/app/controllers/api/v1/accounts/lookup_controller.rb b/app/controllers/api/v1/accounts/lookup_controller.rb new file mode 100644 index 000000000..aee6be18a --- /dev/null +++ b/app/controllers/api/v1/accounts/lookup_controller.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +class Api::V1::Accounts::LookupController < Api::BaseController + before_action -> { authorize_if_got_token! :read, :'read:accounts' } + before_action :set_account + + def show + render json: @account, serializer: REST::AccountSerializer + end + + private + + def set_account + @account = ResolveAccountService.new.call(params[:acct], skip_webfinger: true) || raise(ActiveRecord::RecordNotFound) + end +end diff --git a/config/routes.rb b/config/routes.rb index a534b433e..fd118f1d6 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -431,6 +431,7 @@ Rails.application.routes.draw do get :verify_credentials, to: 'credentials#show' patch :update_credentials, to: 'credentials#update' resource :search, only: :show, controller: :search + resource :lookup, only: :show, controller: :lookup resources :relationships, only: :index end