Module settings

Source
Expand description

API context: settings.

This API context is responsible for handling the application settings.

§Endpoints

§Get all settings

GET /v1/settings

Returns all settings.

Example request

curl \
  --header "Content-Type: application/json" \
  --header "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyIjp7InVzZXJfaWQiOjEsInVzZXJuYW1lIjoiaW5kZXhhZG1pbiIsImFkbWluaXN0cmF0b3IiOnRydWV9LCJleHAiOjE2ODYyMTU3ODh9.4k8ty27DiWwOk4WVcYEhIrAndhpXMRWnLZ3i_HlJnvI" \
  --request GET \
  "http://127.0.0.1:3001/v1/settings"

Example response 200

{
  "data": {
    "website": {
      "name": "Torrust"
    },
    "tracker": {
      "url": "udp://localhost:6969",
      "mode": "Public",
      "api_url": "http://localhost:1212",
      "token": "MyAccessToken",
      "token_valid_seconds": 7257600
    },
    "net": {
      "port": 3001,
      "base_url": null
    },
    "auth": {
      "email_on_signup": "Optional",
      "min_password_length": 6,
      "max_password_length": 64,
      "secret_key": "MaxVerstappenWC2021"
    },
    "database": {
      "connect_url": "sqlite://./storage/database/data.db?mode=rwc"
    },
    "mail": {
      "email_verification_enabled": false,
      "from": "example@email.com",
      "reply_to": "noreply@email.com",
      "username": "",
      "password": "",
      "server": "",
      "port": 25
    },
    "image_cache": {
      "max_request_timeout_ms": 1000,
      "capacity": 128000000,
      "entry_size_limit": 4000000,
      "user_quota_period_seconds": 3600,
      "user_quota_bytes": 64000000
    },
    "api": {
      "default_torrent_page_size": 10,
      "max_torrent_page_size": 30
    },
    "tracker_statistics_importer": {
      "torrent_info_update_interval": 3600
    }
  }
}

Resource

Refer to the TorrustBackend struct for more information about the response attributes.

§Update all settings

NOTICE: This endpoint to update the settings does not work when you use environment variables to configure the application. You need to use a configuration file instead. Because settings are persisted in that file. Refer to the issue #144 for more information.

POST /v1/settings

Example request

curl \
  --header "Content-Type: application/json" \
  --header "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyIjp7InVzZXJfaWQiOjEsInVzZXJuYW1lIjoiaW5kZXhhZG1pbiIsImFkbWluaXN0cmF0b3IiOnRydWV9LCJleHAiOjE2ODYyMTU3ODh9.4k8ty27DiWwOk4WVcYEhIrAndhpXMRWnLZ3i_HlJnvI" \
  --request POST \
  --data '{"website":{"name":"Torrust"},"tracker":{"url":"udp://localhost:6969","mode":"Public","api_url":"http://localhost:1212","token":"MyAccessToken","token_valid_seconds":7257600},"net":{"port":3001,"base_url":null},"auth":{"email_on_signup":"Optional","min_password_length":6,"max_password_length":64,"secret_key":"MaxVerstappenWC2021"},"database":{"connect_url":"sqlite://./storage/database/data.db?mode=rwc"},"mail":{"email_verification_enabled":false,"from":"example@email.com","reply_to":"noreply@email.com","username":"","password":"","server":"","port":25},"image_cache":{"max_request_timeout_ms":1000,"capacity":128000000,"entry_size_limit":4000000,"user_quota_period_seconds":3600,"user_quota_bytes":64000000},"api":{"default_torrent_page_size":10,"max_torrent_page_size":30},"tracker_statistics_importer":{"torrent_info_update_interval":3600}}' \
  "http://127.0.0.1:3001/v1/settings"

The response contains the settings that were updated.

Resource

Refer to the TorrustBackend struct for more information about the response attributes.

§Get site name

GET /v1/settings/name

It returns the name of the site.

Example request

curl \
  --header "Content-Type: application/json" \
  --request GET \
  "http://127.0.0.1:3001/v1/settings/name"

Example response 200

{
  "data":"Torrust"
}

§Get public settings

GET /v1/settings/public

It returns all the public settings.

Example request

curl \
  --header "Content-Type: application/json" \
  --request GET \
  "http://127.0.0.1:3001/v1/settings/public"

Example response 200

{
  "data": {
    "website_name": "Torrust",
    "tracker_url": "udp://localhost:6969",
    "tracker_mode": "Public",
    "email_on_signup": "Optional"
  }
}

Resource

Refer to the ConfigurationPublic struct for more information about the response attributes.

Modules§

handlers
API handlers for the the category API context.
routes
API routes for the settings API context.