about summary refs log tree commit diff
diff options
context:
space:
mode:
authorKibigo <marrus-sh@users.noreply.github.com>2017-02-27 04:06:25 -0800
committerKibigo <marrus-sh@users.noreply.github.com>2017-02-27 04:06:25 -0800
commit620f70e42c16c324459ca2da52c68f1def8683de (patch)
treedf563e2aac96f44e65d204146ec6246ae5ed8472
parentaf5cb0f853d523fe577da83c54040a05151ac90d (diff)
Adds site metadata access to the API
-rw-r--r--app/controllers/api/v1/site_controller.rb8
-rw-r--r--app/views/api/v1/site/index.rabl14
-rw-r--r--config/routes.rb1
-rw-r--r--docs/Using-the-API/API.md8
4 files changed, 31 insertions, 0 deletions
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 870d8afd4..4595b4ba3 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -129,6 +129,7 @@ Rails.application.routes.draw do
       resources :blocks,     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 07c1b25a9..8dcf2a842 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
@@ -207,6 +208,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.
+
 ### OAuth apps
 
 **POST /api/v1/apps**