diff --git a/app/controllers/api/v1/site_controller.rb b/app/controllers/api/v1/site_controller.rb new file mode 100644 index 000000000..64ca2dec1 --- /dev/null +++ b/app/controllers/api/v1/site_controller.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +class Api::V1::SiteController < ApiController + respond_to :json + + def index + end +end diff --git a/app/views/api/v1/site/index.rabl b/app/views/api/v1/site/index.rabl new file mode 100644 index 000000000..09f78560b --- /dev/null +++ b/app/views/api/v1/site/index.rabl @@ -0,0 +1,14 @@ +object false + +node(:title) {Setting.site_title} + +node(:max_chars) {500} + +node(:links) do + { + t('about.learn_more') => url_for(about_more_url), + t('about.terms') => url_for(terms_url), + t('about.source_code') => "https://github.com/tootsuite/mastodon", + t('about.other_instances') => "https://github.com/tootsuite/mastodon/blob/master/docs/Using-Mastodon/List-of-Mastodon-instances.md", + } +end diff --git a/config/routes.rb b/config/routes.rb index a0c76f829..1a2e3c19d 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -130,6 +130,7 @@ Rails.application.routes.draw do resources :mutes, only: [:index] resources :favourites, only: [:index] resources :reports, only: [:index, :create] + resources :site, only: [:index] resources :follow_requests, only: [:index] do member do diff --git a/docs/Using-the-API/API.md b/docs/Using-the-API/API.md index af7858286..2c323d559 100644 --- a/docs/Using-the-API/API.md +++ b/docs/Using-the-API/API.md @@ -19,6 +19,7 @@ API overview - Who reblogged/favourited a status - Following/unfollowing accounts - Blocking/unblocking accounts + - Getting site information - Creating OAuth apps - [Entities](#entities) - Status @@ -226,6 +227,13 @@ Returns the updated relationship to the user. Returns the updated relationship to the user. +### Getting site information + +**GET /api/v1/site** + +Returns an object containing the `title`, character limit (`max_chars`), and an object of `links` for the site. +Does not require authentication. + # Muting and unmuting users **POST /api/v1/accounts/:id/mute**