Packages

Idiomatic Gleam client for the YouTube Data API V3

Current section

Files

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

src/gleetube@decoder@comment_decoder.erl

-module(gleetube@decoder@comment_decoder).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/gleetube/decoder/comment_decoder.gleam").
-export([comment_decoder/0, comment_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/comment_decoder.gleam", 171).
-spec author_channel_id_decoder() -> gleam@dynamic@decode:decoder(gleetube@model@comment:comment_author_channel_id()).
author_channel_id_decoder() ->
gleam@dynamic@decode:optional_field(
<<"value"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Value) ->
gleam@dynamic@decode:success({comment_author_channel_id, Value})
end
).
-file("src/gleetube/decoder/comment_decoder.gleam", 76).
-spec comment_snippet_decoder() -> gleam@dynamic@decode:decoder(gleetube@model@comment:comment_snippet()).
comment_snippet_decoder() ->
gleam@dynamic@decode:optional_field(
<<"authorDisplayName"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Author_display_name) ->
gleam@dynamic@decode:optional_field(
<<"authorProfileImageUrl"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Author_profile_image_url) ->
gleam@dynamic@decode:optional_field(
<<"authorChannelUrl"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Author_channel_url) ->
gleam@dynamic@decode:optional_field(
<<"authorChannelId"/utf8>>,
none,
gleam@dynamic@decode:optional(
author_channel_id_decoder()
),
fun(Author_channel_id) ->
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(
<<"videoId"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
),
fun(Video_id) ->
gleam@dynamic@decode:optional_field(
<<"textDisplay"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
),
fun(Text_display) ->
gleam@dynamic@decode:optional_field(
<<"textOriginal"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
),
fun(
Text_original
) ->
gleam@dynamic@decode:optional_field(
<<"parentId"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
),
fun(
Parent_id
) ->
gleam@dynamic@decode:optional_field(
<<"canRate"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_bool/1}
),
fun(
Can_rate
) ->
gleam@dynamic@decode:optional_field(
<<"viewerRating"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
),
fun(
Viewer_rating
) ->
gleam@dynamic@decode:optional_field(
<<"likeCount"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_int/1}
),
fun(
Like_count
) ->
gleam@dynamic@decode:optional_field(
<<"moderationStatus"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
),
fun(
Moderation_status
) ->
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(
<<"updatedAt"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
),
fun(
Updated_at
) ->
gleam@dynamic@decode:success(
{comment_snippet,
Author_display_name,
Author_profile_image_url,
Author_channel_url,
Author_channel_id,
Channel_id,
Video_id,
Text_display,
Text_original,
Parent_id,
Can_rate,
Viewer_rating,
Like_count,
Moderation_status,
Published_at,
Updated_at}
)
end
)
end
)
end
)
end
)
end
)
end
)
end
)
end
)
end
)
end
)
end
)
end
)
end
)
end
)
end
).
-file("src/gleetube/decoder/comment_decoder.gleam", 52).
?DOC(" Decoder for a single Comment resource.\n").
-spec comment_decoder() -> gleam@dynamic@decode:decoder(gleetube@model@comment:comment()).
comment_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(
comment_snippet_decoder()
),
fun(Snippet) ->
gleam@dynamic@decode:success(
{comment, Kind, Etag, Id, Snippet}
)
end
)
end
)
end
)
end
).
-file("src/gleetube/decoder/comment_decoder.gleam", 10).
?DOC(" Decoder for a CommentListResponse.\n").
-spec comment_list_response_decoder() -> gleam@dynamic@decode:decoder(gleetube@model@comment:comment_list_response()).
comment_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(
comment_decoder()
),
fun(Items) ->
gleam@dynamic@decode:success(
{comment_list_response,
Kind,
Etag,
Next_page_token,
Prev_page_token,
Page_info,
Items}
)
end
)
end
)
end
)
end
)
end
)
end
).