Class: Forem::RequestRedirect

Inherits:
APIResource show all
Extended by:
APIOperations::Create, APIOperations::List, APIOperations::Retrieve, APIOperations::Update
Includes:
APIOperations::Delete, APIOperations::Save
Defined in:
lib/forem/resources/request_redirect.rb

Overview

Represents a request redirect used to map legacy or custom-domain paths to a destination URL.

Request redirects power organization custom domains: when a request comes in for request_domain at path original_url, Forem redirects the visitor to destination_url. Managing request redirects is an admin-only operation and requires an admin API key.

Available operations (via mixins):

- +List+     — GET /api/admin/request_redirects
- +Create+   — POST /api/admin/request_redirects
- +Retrieve+ — GET /api/admin/request_redirects/:id
- +Update+   — PUT /api/admin/request_redirects/:id
- +Delete+   — instance-level delete (DELETE /api/admin/request_redirects/:id)
- +Save+     — instance-level save (create or update)

RequestRedirect Fields

  • original_url (String, required) — the incoming request path; must start with / and is unique per request_domain
  • destination_url (String, required) — the fully-qualified HTTP/HTTPS URL to redirect to
  • request_domain (String, required) — the domain the redirect applies to; normalized to lowercase by the server

The create/update endpoints require request bodies wrapped in a request_redirect: key (the API uses strong parameters with params.require(:request_redirect)), so callers of the class methods here must supply that wrapper explicitly. Services::RequestRedirectService handles the wrapping automatically for the friendlier, flat-params service interface.

Examples:

List all request redirects

redirects = client.request_redirects.list
redirects.each { |r| puts "#{r.request_domain}#{r.original_url} -> #{r.destination_url}" }

Create a request redirect (params must be wrapped in request_redirect:)

redirect = Forem::RequestRedirect.create(
  { request_redirect: { original_url: "/old", destination_url: "https://example.com/new", request_domain: "example.com" } },
  requestor: client.requestor
)

Retrieve a request redirect by ID

redirect = client.request_redirects.retrieve(7)
puts redirect.destination_url

See Also:

Constant Summary collapse

OBJECT_NAME =
"request_redirect"
RESOURCE_PATH =
"/api/admin/request_redirects"

Instance Attribute Summary

Attributes inherited from ForemObject

#requestor

Method Summary

Methods included from APIOperations::Create

create

Methods included from APIOperations::List

list

Methods included from APIOperations::Retrieve

retrieve

Methods included from APIOperations::Update

update

Methods included from APIOperations::Save

#save

Methods included from APIOperations::Delete

#delete, included

Methods inherited from APIResource

#refresh, resource_path, #resource_url

Methods inherited from ForemObject

#==, #[], #[]=, construct_from, cursor_list, #initialize, #inspect, #method_missing, paginated_list, #respond_to_missing?, #to_hash

Methods included from APIOperations::Request

included, #request

Constructor Details

This class inherits a constructor from Forem::ForemObject

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Forem::ForemObject