-module(slack_webhook_client@schema). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/slack_webhook_client/schema.gleam"). -export([text_object_decoder/0, text_object_encode/1, accessory_decoder/0, block_decoder/0, slack_message_decoder/0, accessory_encode/1, block_encode/1, slack_message_encode/1]). -export_type([accessory/0, block/0, slack_message/0, text_object/0]). -type accessory() :: {accessory, gleam@option:option(binary()), gleam@option:option(binary()), gleam@option:option(binary())}. -type block() :: {block, gleam@option:option(accessory()), gleam@option:option(binary()), gleam@option:option(list(text_object())), gleam@option:option(text_object()), binary()}. -type slack_message() :: {slack_message, gleam@option:option(list(block())), gleam@option:option(binary())}. -type text_object() :: {text_object, gleam@option:option(binary()), gleam@option:option(binary())}. -file("src/slack_webhook_client/schema.gleam", 32). -spec text_object_decoder() -> gleam@dynamic@decode:decoder(text_object()). text_object_decoder() -> gleam@dynamic@decode:optional_field( <<"text"/utf8>>, none, gleam@dynamic@decode:optional( {decoder, fun gleam@dynamic@decode:decode_string/1} ), fun(Text) -> gleam@dynamic@decode:optional_field( <<"type"/utf8>>, none, gleam@dynamic@decode:optional( {decoder, fun gleam@dynamic@decode:decode_string/1} ), fun(Type_) -> gleam@dynamic@decode:success({text_object, Text, Type_}) end ) end ). -file("src/slack_webhook_client/schema.gleam", 46). -spec text_object_encode(text_object()) -> gleam@json:json(). text_object_encode(Data) -> oas@generator@utils:object( [{<<"text"/utf8>>, gleam@json:nullable( erlang:element(2, Data), fun gleam@json:string/1 )}, {<<"type"/utf8>>, gleam@json:nullable( erlang:element(3, Data), fun gleam@json:string/1 )}] ). -file("src/slack_webhook_client/schema.gleam", 115). -spec accessory_decoder() -> gleam@dynamic@decode:decoder(accessory()). accessory_decoder() -> gleam@dynamic@decode:optional_field( <<"alt_text"/utf8>>, none, gleam@dynamic@decode:optional( {decoder, fun gleam@dynamic@decode:decode_string/1} ), fun(Alt_text) -> gleam@dynamic@decode:optional_field( <<"image_url"/utf8>>, none, gleam@dynamic@decode:optional( {decoder, fun gleam@dynamic@decode:decode_string/1} ), fun(Image_url) -> gleam@dynamic@decode:optional_field( <<"type"/utf8>>, none, gleam@dynamic@decode:optional( {decoder, fun gleam@dynamic@decode:decode_string/1} ), fun(Type_) -> gleam@dynamic@decode:success( {accessory, Alt_text, Image_url, Type_} ) end ) end ) end ). -file("src/slack_webhook_client/schema.gleam", 74). -spec block_decoder() -> gleam@dynamic@decode:decoder(block()). block_decoder() -> gleam@dynamic@decode:optional_field( <<"accessory"/utf8>>, none, gleam@dynamic@decode:optional(accessory_decoder()), fun(Accessory) -> gleam@dynamic@decode:optional_field( <<"block_id"/utf8>>, none, gleam@dynamic@decode:optional( {decoder, fun gleam@dynamic@decode:decode_string/1} ), fun(Block_id) -> gleam@dynamic@decode:optional_field( <<"fields"/utf8>>, none, gleam@dynamic@decode:optional( gleam@dynamic@decode:list(text_object_decoder()) ), fun(Fields) -> gleam@dynamic@decode:optional_field( <<"text"/utf8>>, none, gleam@dynamic@decode:optional( text_object_decoder() ), fun(Text) -> gleam@dynamic@decode:field( <<"type"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_string/1}, fun(Type_) -> gleam@dynamic@decode:success( {block, Accessory, Block_id, Fields, Text, Type_} ) end ) end ) end ) end ) end ). -file("src/slack_webhook_client/schema.gleam", 53). -spec slack_message_decoder() -> gleam@dynamic@decode:decoder(slack_message()). slack_message_decoder() -> gleam@dynamic@decode:optional_field( <<"blocks"/utf8>>, none, gleam@dynamic@decode:optional( gleam@dynamic@decode:list(block_decoder()) ), fun(Blocks) -> gleam@dynamic@decode:optional_field( <<"text"/utf8>>, none, gleam@dynamic@decode:optional( {decoder, fun gleam@dynamic@decode:decode_string/1} ), fun(Text) -> gleam@dynamic@decode:success({slack_message, Blocks, Text}) end ) end ). -file("src/slack_webhook_client/schema.gleam", 138). -spec accessory_encode(accessory()) -> gleam@json:json(). accessory_encode(Data) -> oas@generator@utils:object( [{<<"alt_text"/utf8>>, gleam@json:nullable( erlang:element(2, Data), fun gleam@json:string/1 )}, {<<"image_url"/utf8>>, gleam@json:nullable( erlang:element(3, Data), fun gleam@json:string/1 )}, {<<"type"/utf8>>, gleam@json:nullable( erlang:element(4, Data), fun gleam@json:string/1 )}] ). -file("src/slack_webhook_client/schema.gleam", 105). -spec block_encode(block()) -> gleam@json:json(). block_encode(Data) -> oas@generator@utils:object( [{<<"accessory"/utf8>>, gleam@json:nullable( erlang:element(2, Data), fun accessory_encode/1 )}, {<<"block_id"/utf8>>, gleam@json:nullable( erlang:element(3, Data), fun gleam@json:string/1 )}, {<<"fields"/utf8>>, gleam@json:nullable( erlang:element(4, Data), fun(_capture) -> gleam@json:array(_capture, fun text_object_encode/1) end )}, {<<"text"/utf8>>, gleam@json:nullable( erlang:element(5, Data), fun text_object_encode/1 )}, {<<"type"/utf8>>, gleam@json:string(erlang:element(6, Data))}] ). -file("src/slack_webhook_client/schema.gleam", 67). -spec slack_message_encode(slack_message()) -> gleam@json:json(). slack_message_encode(Data) -> oas@generator@utils:object( [{<<"blocks"/utf8>>, gleam@json:nullable( erlang:element(2, Data), fun(_capture) -> gleam@json:array(_capture, fun block_encode/1) end )}, {<<"text"/utf8>>, gleam@json:nullable( erlang:element(3, Data), fun gleam@json:string/1 )}] ).