Current section
Files
Jump to
Current section
Files
src/gleetube@decoder@channel_section_decoder.erl
-module(gleetube@decoder@channel_section_decoder).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/gleetube/decoder/channel_section_decoder.gleam").
-export([channel_section_decoder/0, channel_section_list_response_decoder/0]).
-file("src/gleetube/decoder/channel_section_decoder.gleam", 75).
-spec snippet_decoder() -> gleam@dynamic@decode:decoder(gleetube@model@channel_section:channel_section_snippet()).
snippet_decoder() ->
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:optional_field(
<<"channelId"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Channel_id) ->
gleam@dynamic@decode:optional_field(
<<"title"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Title) ->
gleam@dynamic@decode:optional_field(
<<"position"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_int/1}
),
fun(Position) ->
gleam@dynamic@decode:success(
{channel_section_snippet,
Type_,
Channel_id,
Title,
Position}
)
end
)
end
)
end
)
end
).
-file("src/gleetube/decoder/channel_section_decoder.gleam", 104).
-spec content_details_decoder() -> gleam@dynamic@decode:decoder(gleetube@model@channel_section:channel_section_content_details()).
content_details_decoder() ->
gleam@dynamic@decode:optional_field(
<<"playlists"/utf8>>,
none,
gleam@dynamic@decode:optional(
gleam@dynamic@decode:list(
{decoder, fun gleam@dynamic@decode:decode_string/1}
)
),
fun(Playlists) ->
gleam@dynamic@decode:optional_field(
<<"channels"/utf8>>,
none,
gleam@dynamic@decode:optional(
gleam@dynamic@decode:list(
{decoder, fun gleam@dynamic@decode:decode_string/1}
)
),
fun(Channels) ->
gleam@dynamic@decode:success(
{channel_section_content_details, Playlists, Channels}
)
end
)
end
).
-file("src/gleetube/decoder/channel_section_decoder.gleam", 40).
-spec channel_section_decoder() -> gleam@dynamic@decode:decoder(gleetube@model@channel_section:channel_section()).
channel_section_decoder() ->
gleam@dynamic@decode:optional_field(
<<"kind"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Kind) ->
gleam@dynamic@decode:optional_field(
<<"etag"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Etag) ->
gleam@dynamic@decode:optional_field(
<<"id"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Id) ->
gleam@dynamic@decode:optional_field(
<<"snippet"/utf8>>,
none,
gleam@dynamic@decode:optional(snippet_decoder()),
fun(Snippet) ->
gleam@dynamic@decode:optional_field(
<<"contentDetails"/utf8>>,
none,
gleam@dynamic@decode:optional(
content_details_decoder()
),
fun(Content_details) ->
gleam@dynamic@decode:success(
{channel_section,
Kind,
Etag,
Id,
Snippet,
Content_details}
)
end
)
end
)
end
)
end
)
end
).
-file("src/gleetube/decoder/channel_section_decoder.gleam", 9).
-spec channel_section_list_response_decoder() -> gleam@dynamic@decode:decoder(gleetube@model@channel_section:channel_section_list_response()).
channel_section_list_response_decoder() ->
gleam@dynamic@decode:optional_field(
<<"kind"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Kind) ->
gleam@dynamic@decode:optional_field(
<<"etag"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Etag) ->
gleam@dynamic@decode:optional_field(
<<"pageInfo"/utf8>>,
none,
gleam@dynamic@decode:optional(
gleetube@decoder@common_decoder:page_info_decoder()
),
fun(Page_info) ->
gleam@dynamic@decode:optional_field(
<<"items"/utf8>>,
[],
gleam@dynamic@decode:list(
channel_section_decoder()
),
fun(Items) ->
gleam@dynamic@decode:success(
{channel_section_list_response,
Kind,
Etag,
Page_info,
Items}
)
end
)
end
)
end
)
end
).