class

FeedsController

Inherits Ktistec::ViewHelper < Utils::Paths < Ktistec::Controller < Reference < Object

The FeedsController manages the lifecycle of feeds and their associated content windows (previews).

                       ┌───────┐──┐ preview:

┌─── preview: ────────▶ │ draft │◀─┘ update feed; │ create feed; └───────┘ recompute window │ recompute window │ ▲ │ │ │ │ publish: │ │ preview [1]: │ adopt window; │ │ create a draft feed; [NEW] register feed; │ │ recompute window; │ unregister and │ │ keep the original │ destroy original │ │ │ │ │ │ ▼ │ │ ┌───────────┐──┐ publish [2]: └─ publish: ──────▶ │ published │◀─┘ create a draft feed; create feed; └───────────┘ seed it with content; register feed publish and register it; unregister and destroy the original

[1] A published feed is never demoted to a draft feed. Instead, a new draft feed is created (recording the original in copy_of) and the original published feed is left unchanged until the draft feed is published. [2] A published feed is never mutated. Instead, a new published feed is created and the original published feed is unregistered and destroyed.

Publishing is not atomic: it saves, seeds, publishes, registers, and destroys the original as separate steps.

Deleting a feed in any state unregisters and destroys it.

Constants

MAX_REQUEST_BYTES = 16384