Ewebmachine.Core.Utils (ewebmachine v2.3.3)

View Source

HTTP utility module

Summary

Functions

HTTP Charset negociation, get the charset to use from

HTTP Encoding negociation, get the encoding to use from

HTTP Content negociation, get the content type to send from

Convert rfc1123 or rfc850 to :calendar dates

Format a norm_content_type into an HTTP content type header

Match normalized media types accepting a partial match (wildcard or incomplete params)

Get HTTP status label from HTTP code

Convert any content type representation (see spec) into a norm_content_type

Remove quotes from HTTP quoted string

Convert a calendar date to a rfc1123 date string

Get the string list from a comma separated list of HTTP quoted strings

Types

norm_content_type()

@type norm_content_type() ::
  {type :: String.t(), subtype :: String.t(), params :: map()}

Functions

choose_charset(charsets, acc_char_hdr)

@spec choose_charset([String.t()], String.t()) :: String.t() | nil

HTTP Charset negociation, get the charset to use from :

  • acc_char_hdr, the HTTP header Accept-Charset
  • charsets, the list of supported charsets

choose_encoding(encs, acc_enc_hdr)

@spec choose_encoding([String.t()], String.t()) :: String.t() | nil

HTTP Encoding negociation, get the encoding to use from :

  • acc_enc_hdr, the HTTP header Accept-Encoding
  • encs, the list of supported encoding

choose_media_type(ct_provided, accept_header)

@spec choose_media_type([norm_content_type()], String.t()) ::
  norm_content_type() | nil

HTTP Content negociation, get the content type to send from :

  • accept_header, the HTTP header Accept
  • ct_provided, the list of provided content types

convert_request_date(date)

@spec convert_request_date(String.t()) ::
  {{year :: integer(), month :: integer(), day :: integer()},
   {h :: integer(), min :: integer(), sec :: integer()}}
  | :bad_date

Convert rfc1123 or rfc850 to :calendar dates

format_mtype(arg)

@spec format_mtype(norm_content_type()) :: String.t()

Format a norm_content_type into an HTTP content type header

fuzzy_mt_match(arg1, arg2)

@spec fuzzy_mt_match(norm_content_type(), norm_content_type()) :: boolean()

Match normalized media types accepting a partial match (wildcard or incomplete params)

http_label(int)

@spec http_label(code :: integer()) :: String.t()

Get HTTP status label from HTTP code

normalize_mtype(mtype)

@spec normalize_mtype(
  {type :: String.t(), params :: map()}
  | (type :: String.t())
  | norm_content_type()
) :: norm_content_type()

Convert any content type representation (see spec) into a norm_content_type

quoted_string(value)

@spec quoted_string(String.t()) :: String.t()

Remove quotes from HTTP quoted string

rfc1123_date(arg)

@spec rfc1123_date(
  {{year :: integer(), month :: integer(), day :: integer()},
   {h :: integer(), min :: integer(), sec :: integer()}}
) :: String.t()

Convert a calendar date to a rfc1123 date string

split_quoted_strings(str)

@spec split_quoted_strings(String.t()) :: [String.t()]

Get the string list from a comma separated list of HTTP quoted strings