Bonfire.API.MastoCompat.Schemas.Status (Bonfire v1.0.1-social-alpha.28)

View Source

Mastodon Status entity schema definition.

Based on the Mastodon API OpenAPI spec (mastodon-openapi.yaml line 2047+). This module provides a single source of truth for Status field structure and defaults.

All fields match the current implementation in graphql_masto_adapter.ex

Summary

Functions

Returns the default values for all Status fields.

Returns a new Status map with default values. Can optionally merge custom values via the overrides parameter.

List of required fields per the Mastodon OpenAPI specification.

Validates that all required fields are present and non-nil. Returns {:ok, status} or {:error, missing_fields}.

Functions

defaults()

Returns the default values for all Status fields.

These defaults match the exact values currently used in:

  • build_minimal_status/6
  • prepare_reblog/1
  • prepare_fallback_status/2
  • prepare_notification_post/2

Required fields (per Mastodon OpenAPI spec):

  • id, uri, created_at, account, content
  • visibility, sensitive, spoiler_text
  • media_attachments (note: spec has typo "media_attachements")
  • mentions, tags, emojis
  • reblogs_count, favourites_count, replies_count

Optional fields:

  • url, text, reblog, application, language
  • muted, bookmarked, pinned, favourited, reblogged
  • card, poll, in_reply_to_id, in_reply_to_account_id
  • filtered

new(overrides \\ %{})

Returns a new Status map with default values. Can optionally merge custom values via the overrides parameter.

Examples

iex> Status.new(%{"id" => "123", "content" => "Hello"})
%{"id" => "123", "content" => "Hello", "visibility" => "public", ...}

required_fields()

List of required fields per the Mastodon OpenAPI specification.

validate(status)

Validates that all required fields are present and non-nil. Returns {:ok, status} or {:error, missing_fields}.