闭社主体 forked from https://github.com/tootsuite/mastodon
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

29 lines
662 B

  1. # frozen_string_literal: true
  2. class Api::V1::AppsController < Api::BaseController
  3. respond_to :json
  4. def create
  5. @app = Doorkeeper::Application.create!(application_options)
  6. render json: @app, serializer: REST::ApplicationSerializer
  7. end
  8. private
  9. def application_options
  10. {
  11. name: app_params[:client_name],
  12. redirect_uri: app_params[:redirect_uris],
  13. scopes: app_scopes_or_default,
  14. website: app_params[:website],
  15. }
  16. end
  17. def app_scopes_or_default
  18. app_params[:scopes] || Doorkeeper.configuration.default_scopes
  19. end
  20. def app_params
  21. params.permit(:client_name, :redirect_uris, :scopes, :website)
  22. end
  23. end