Skip to main content

src/gdav@internal.erl

-module(gdav@internal).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/gdav/internal.gleam").
-export([request/5]).

-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.

?MODULEDOC(false).

-file("src/gdav/internal.gleam", 6).
?DOC(false).
-spec request(
    gdav:credentials(),
    gleam@http:method(),
    binary(),
    list({binary(), binary()}),
    binary()
) -> gleam@http@request:request(binary()).
request(Credentials, Method, Path, Headers, Body) ->
    Req = {request,
        Method,
        Headers,
        Body,
        erlang:element(2, Credentials),
        erlang:element(4, Credentials),
        erlang:element(3, Credentials),
        Path,
        none},
    case erlang:element(6, Credentials) of
        none ->
            Req;

        {some, Auth} ->
            gleam@http@request:prepend_header(
                Req,
                <<"Authorization"/utf8>>,
                Auth
            )
    end.