Packages

Idiomatic Gleam client for the YouTube Data API V3

Current section

Files

Jump to
gleetube src gleetube@decoder@playlist_item_decoder.erl
Raw

src/gleetube@decoder@playlist_item_decoder.erl

-module(gleetube@decoder@playlist_item_decoder).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/gleetube/decoder/playlist_item_decoder.gleam").
-export([playlist_item_decoder/0, playlist_item_list_response_decoder/0]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
-file("src/gleetube/decoder/playlist_item_decoder.gleam", 96).
-spec playlist_item_snippet_decoder() -> gleam@dynamic@decode:decoder(gleetube@model@playlist_item:playlist_item_snippet()).
playlist_item_snippet_decoder() ->
gleam@dynamic@decode:optional_field(
<<"publishedAt"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Published_at) ->
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(
<<"description"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
),
fun(Description) ->
gleam@dynamic@decode:optional_field(
<<"thumbnails"/utf8>>,
none,
gleam@dynamic@decode:optional(
gleetube@decoder@common_decoder:thumbnails_decoder(
)
),
fun(Thumbnails) ->
gleam@dynamic@decode:optional_field(
<<"channelTitle"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
),
fun(Channel_title) ->
gleam@dynamic@decode:optional_field(
<<"playlistId"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
),
fun(Playlist_id) ->
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:optional_field(
<<"resourceId"/utf8>>,
none,
gleam@dynamic@decode:optional(
gleetube@decoder@common_decoder:resource_id_decoder(
)
),
fun(
Resource_id
) ->
gleam@dynamic@decode:optional_field(
<<"videoOwnerChannelTitle"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
),
fun(
Video_owner_channel_title
) ->
gleam@dynamic@decode:optional_field(
<<"videoOwnerChannelId"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
),
fun(
Video_owner_channel_id
) ->
gleam@dynamic@decode:success(
{playlist_item_snippet,
Published_at,
Channel_id,
Title,
Description,
Thumbnails,
Channel_title,
Playlist_id,
Position,
Resource_id,
Video_owner_channel_title,
Video_owner_channel_id}
)
end
)
end
)
end
)
end
)
end
)
end
)
end
)
end
)
end
)
end
)
end
).
-file("src/gleetube/decoder/playlist_item_decoder.gleam", 167).
-spec playlist_item_content_details_decoder() -> gleam@dynamic@decode:decoder(gleetube@model@playlist_item:playlist_item_content_details()).
playlist_item_content_details_decoder() ->
gleam@dynamic@decode:optional_field(
<<"videoId"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Video_id) ->
gleam@dynamic@decode:optional_field(
<<"note"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Note) ->
gleam@dynamic@decode:optional_field(
<<"videoPublishedAt"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Video_published_at) ->
gleam@dynamic@decode:success(
{playlist_item_content_details,
Video_id,
Note,
Video_published_at}
)
end
)
end
)
end
).
-file("src/gleetube/decoder/playlist_item_decoder.gleam", 192).
-spec playlist_item_status_decoder() -> gleam@dynamic@decode:decoder(gleetube@model@playlist_item:playlist_item_status()).
playlist_item_status_decoder() ->
gleam@dynamic@decode:optional_field(
<<"privacyStatus"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Privacy_status) ->
gleam@dynamic@decode:success({playlist_item_status, Privacy_status})
end
).
-file("src/gleetube/decoder/playlist_item_decoder.gleam", 55).
?DOC(" Decoder for a single PlaylistItem resource.\n").
-spec playlist_item_decoder() -> gleam@dynamic@decode:decoder(gleetube@model@playlist_item:playlist_item()).
playlist_item_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(
playlist_item_snippet_decoder()
),
fun(Snippet) ->
gleam@dynamic@decode:optional_field(
<<"contentDetails"/utf8>>,
none,
gleam@dynamic@decode:optional(
playlist_item_content_details_decoder(
)
),
fun(Content_details) ->
gleam@dynamic@decode:optional_field(
<<"status"/utf8>>,
none,
gleam@dynamic@decode:optional(
playlist_item_status_decoder(
)
),
fun(Status) ->
gleam@dynamic@decode:success(
{playlist_item,
Kind,
Etag,
Id,
Snippet,
Content_details,
Status}
)
end
)
end
)
end
)
end
)
end
)
end
).
-file("src/gleetube/decoder/playlist_item_decoder.gleam", 11).
?DOC(" Decoder for a PlaylistItemListResponse.\n").
-spec playlist_item_list_response_decoder() -> gleam@dynamic@decode:decoder(gleetube@model@playlist_item:playlist_item_list_response()).
playlist_item_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(
<<"nextPageToken"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Next_page_token) ->
gleam@dynamic@decode:optional_field(
<<"prevPageToken"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
),
fun(Prev_page_token) ->
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(
playlist_item_decoder()
),
fun(Items) ->
gleam@dynamic@decode:success(
{playlist_item_list_response,
Kind,
Etag,
Next_page_token,
Prev_page_token,
Page_info,
Items}
)
end
)
end
)
end
)
end
)
end
)
end
).