Packages

Idiomatic Gleam client for the YouTube Data API V3

Current section

Files

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

src/gleetube@decoder@auth_decoder.erl

-module(gleetube@decoder@auth_decoder).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/gleetube/decoder/auth_decoder.gleam").
-export([access_token_decoder/0, user_profile_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/auth_decoder.gleam", 6).
?DOC(" Decoder for an OAuth2 AccessToken response.\n").
-spec access_token_decoder() -> gleam@dynamic@decode:decoder(gleetube@model@auth:access_token()).
access_token_decoder() ->
gleam@dynamic@decode:field(
<<"access_token"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_string/1},
fun(Access_token) ->
gleam@dynamic@decode:optional_field(
<<"token_type"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Token_type) ->
gleam@dynamic@decode:optional_field(
<<"expires_in"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_int/1}
),
fun(Expires_in) ->
gleam@dynamic@decode:optional_field(
<<"refresh_token"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
),
fun(Refresh_token) ->
gleam@dynamic@decode:optional_field(
<<"scope"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
),
fun(Scope) ->
gleam@dynamic@decode:success(
{access_token,
Access_token,
Token_type,
Expires_in,
Refresh_token,
Scope}
)
end
)
end
)
end
)
end
)
end
).
-file("src/gleetube/decoder/auth_decoder.gleam", 38).
?DOC(" Decoder for a Google UserProfile response.\n").
-spec user_profile_decoder() -> gleam@dynamic@decode:decoder(gleetube@model@auth:user_profile()).
user_profile_decoder() ->
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(
<<"name"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Name) ->
gleam@dynamic@decode:optional_field(
<<"given_name"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Given_name) ->
gleam@dynamic@decode:optional_field(
<<"family_name"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
),
fun(Family_name) ->
gleam@dynamic@decode:optional_field(
<<"picture"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
),
fun(Picture) ->
gleam@dynamic@decode:optional_field(
<<"locale"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
),
fun(Locale) ->
gleam@dynamic@decode:success(
{user_profile,
Id,
Name,
Given_name,
Family_name,
Picture,
Locale}
)
end
)
end
)
end
)
end
)
end
)
end
).