Current section
Files
Jump to
Current section
Files
src/gleetube@decoder@member_decoder.erl
-module(gleetube@decoder@member_decoder).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/gleetube/decoder/member_decoder.gleam").
-export([member_decoder/0, member_list_response_decoder/0]).
-file("src/gleetube/decoder/member_decoder.gleam", 84).
-spec member_details_decoder() -> gleam@dynamic@decode:decoder(gleetube@model@member:member_snippet_member_details()).
member_details_decoder() ->
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(
<<"channelUrl"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Channel_url) ->
gleam@dynamic@decode:optional_field(
<<"displayName"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Display_name) ->
gleam@dynamic@decode:optional_field(
<<"profileImageUrl"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
),
fun(Profile_image_url) ->
gleam@dynamic@decode:success(
{member_snippet_member_details,
Channel_id,
Channel_url,
Display_name,
Profile_image_url}
)
end
)
end
)
end
)
end
).
-file("src/gleetube/decoder/member_decoder.gleam", 150).
-spec memberships_duration_decoder() -> gleam@dynamic@decode:decoder(gleetube@model@member:member_snippet_memberships_duration()).
memberships_duration_decoder() ->
gleam@dynamic@decode:optional_field(
<<"memberSince"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Member_since) ->
gleam@dynamic@decode:optional_field(
<<"memberTotalDurationMonths"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_int/1}
),
fun(Member_total_duration_months) ->
gleam@dynamic@decode:success(
{member_snippet_memberships_duration,
Member_since,
Member_total_duration_months}
)
end
)
end
).
-file("src/gleetube/decoder/member_decoder.gleam", 169).
-spec memberships_duration_at_level_decoder() -> gleam@dynamic@decode:decoder(gleetube@model@member:member_snippet_memberships_duration_at_level()).
memberships_duration_at_level_decoder() ->
gleam@dynamic@decode:optional_field(
<<"level"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Level) ->
gleam@dynamic@decode:optional_field(
<<"memberSince"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Member_since) ->
gleam@dynamic@decode:optional_field(
<<"memberTotalDurationMonths"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_int/1}
),
fun(Member_total_duration_months) ->
gleam@dynamic@decode:success(
{member_snippet_memberships_duration_at_level,
Level,
Member_since,
Member_total_duration_months}
)
end
)
end
)
end
).
-file("src/gleetube/decoder/member_decoder.gleam", 113).
-spec memberships_details_decoder() -> gleam@dynamic@decode:decoder(gleetube@model@member:member_snippet_memberships_details()).
memberships_details_decoder() ->
gleam@dynamic@decode:optional_field(
<<"highestAccessibleLevel"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Highest_accessible_level) ->
gleam@dynamic@decode:optional_field(
<<"highestAccessibleLevelDisplayName"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Highest_accessible_level_display_name) ->
gleam@dynamic@decode:optional_field(
<<"accessibleLevels"/utf8>>,
none,
gleam@dynamic@decode:optional(
gleam@dynamic@decode:list(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
)
),
fun(Accessible_levels) ->
gleam@dynamic@decode:optional_field(
<<"membershipsDuration"/utf8>>,
none,
gleam@dynamic@decode:optional(
memberships_duration_decoder()
),
fun(Memberships_duration) ->
gleam@dynamic@decode:optional_field(
<<"membershipsDurationAtLevel"/utf8>>,
none,
gleam@dynamic@decode:optional(
gleam@dynamic@decode:list(
memberships_duration_at_level_decoder(
)
)
),
fun(Memberships_duration_at_level) ->
gleam@dynamic@decode:success(
{member_snippet_memberships_details,
Highest_accessible_level,
Highest_accessible_level_display_name,
Accessible_levels,
Memberships_duration,
Memberships_duration_at_level}
)
end
)
end
)
end
)
end
)
end
).
-file("src/gleetube/decoder/member_decoder.gleam", 61).
-spec member_snippet_decoder() -> gleam@dynamic@decode:decoder(gleetube@model@member:member_snippet()).
member_snippet_decoder() ->
gleam@dynamic@decode:optional_field(
<<"creatorChannelId"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Creator_channel_id) ->
gleam@dynamic@decode:optional_field(
<<"memberDetails"/utf8>>,
none,
gleam@dynamic@decode:optional(member_details_decoder()),
fun(Member_details) ->
gleam@dynamic@decode:optional_field(
<<"membershipsDetails"/utf8>>,
none,
gleam@dynamic@decode:optional(
memberships_details_decoder()
),
fun(Memberships_details) ->
gleam@dynamic@decode:success(
{member_snippet,
Creator_channel_id,
Member_details,
Memberships_details}
)
end
)
end
)
end
).
-file("src/gleetube/decoder/member_decoder.gleam", 42).
-spec member_decoder() -> gleam@dynamic@decode:decoder(gleetube@model@member:member()).
member_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(
<<"snippet"/utf8>>,
none,
gleam@dynamic@decode:optional(member_snippet_decoder()),
fun(Snippet) ->
gleam@dynamic@decode:success(
{member, Kind, Etag, Snippet}
)
end
)
end
)
end
).
-file("src/gleetube/decoder/member_decoder.gleam", 11).
-spec member_list_response_decoder() -> gleam@dynamic@decode:decoder(gleetube@model@member:member_list_response()).
member_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(
<<"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(
member_decoder()
),
fun(Items) ->
gleam@dynamic@decode:success(
{member_list_response,
Kind,
Etag,
Next_page_token,
Page_info,
Items}
)
end
)
end
)
end
)
end
)
end
).