lib/gcs_signed_url/canonical_request.ex
defmodule GcsSignedUrl.CanonicalRequest do
@moduledoc """
Creates the canonical request accoring to https://cloud.google.com/storage/docs/authentication/canonical-requests
"""
@spec create(GcsSignedUrl.ISODateTime.t(), String.t(), String.t(), GcsSignedUrl.Headers.t()) ::
String.t()
def create(verb, resource, query_string, headers) do
"#{verb}\n#{resource}\n#{query_string}\n#{headers.canonical}\n#{headers.signed}\nUNSIGNED-PAYLOAD"
end
end