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:3000/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": 3000,
      "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":3000,"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:3000/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:3000/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:3000/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