Packages

A Gleam library for building Discord webhook payloads safely.

Current section

Files

Jump to
kitazith src kitazith@component@media_gallery.erl
Raw

src/kitazith@component@media_gallery.erl

-module(kitazith@component@media_gallery).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/kitazith/component/media_gallery.gleam").
-export([new/1, with_id/2, new_item/1, with_item_description/2, with_item_spoiler/2, to_json/1]).
-export_type([media_gallery/0, media_gallery_item/0]).
-type media_gallery() :: {media_gallery,
gleam@option:option(integer()),
list(media_gallery_item())}.
-type media_gallery_item() :: {media_gallery_item,
kitazith@component@media:unfurled_media_item(),
gleam@option:option(binary()),
gleam@option:option(boolean())}.
-file("src/kitazith/component/media_gallery.gleam", 28).
-spec new(list(media_gallery_item())) -> media_gallery().
new(Items) ->
{media_gallery, none, Items}.
-file("src/kitazith/component/media_gallery.gleam", 32).
-spec with_id(media_gallery(), integer()) -> media_gallery().
with_id(Media_gallery, Id) ->
{media_gallery, {some, Id}, erlang:element(3, Media_gallery)}.
-file("src/kitazith/component/media_gallery.gleam", 36).
-spec new_item(kitazith@component@media:unfurled_media_item()) -> media_gallery_item().
new_item(Media) ->
{media_gallery_item, Media, none, none}.
-file("src/kitazith/component/media_gallery.gleam", 40).
-spec with_item_description(media_gallery_item(), binary()) -> media_gallery_item().
with_item_description(Item, Description) ->
{media_gallery_item,
erlang:element(2, Item),
{some, Description},
erlang:element(4, Item)}.
-file("src/kitazith/component/media_gallery.gleam", 47).
-spec with_item_spoiler(media_gallery_item(), boolean()) -> media_gallery_item().
with_item_spoiler(Item, Spoiler) ->
{media_gallery_item,
erlang:element(2, Item),
erlang:element(3, Item),
{some, Spoiler}}.
-file("src/kitazith/component/media_gallery.gleam", 62).
-spec item_to_json(media_gallery_item()) -> gleam@json:json().
item_to_json(Item) ->
kitazith@internal@json_helper:object_omit_none(
[{some,
{<<"media"/utf8>>,
kitazith@component@media:to_json(erlang:element(2, Item))}},
kitazith@internal@json_helper:optional(
<<"description"/utf8>>,
erlang:element(3, Item),
fun gleam@json:string/1
),
kitazith@internal@json_helper:optional(
<<"spoiler"/utf8>>,
erlang:element(4, Item),
fun gleam@json:bool/1
)]
).
-file("src/kitazith/component/media_gallery.gleam", 54).
-spec to_json(media_gallery()) -> gleam@json:json().
to_json(Media_gallery) ->
kitazith@internal@json_helper:object_omit_none(
[{some, {<<"type"/utf8>>, gleam@json:int(12)}},
kitazith@internal@json_helper:optional(
<<"id"/utf8>>,
erlang:element(2, Media_gallery),
fun gleam@json:int/1
),
{some,
{<<"items"/utf8>>,
gleam@json:array(
erlang:element(3, Media_gallery),
fun item_to_json/1
)}}]
).