View Source CFSync.Entry.Extractors (CFSync v0.17.1)
Utility functions to extract data from contenful JSON.
Link to this section Summary
Types
Entry's payload as provided to CFSync.Entry.Fields.new/1
Functions
Returns value of field_name
as an atom
.
Returns value of field_name
as a binary
.
Returns value of field_name
as a boolean
.
Returns value of field_name
processed by fun
.
Returns value of field_name
as a Date
.
Returns value of field_name
as a DateTime
.
Returns value of field_name
as a CFSync.Link
.
Returns value of field_name
as a list of CFSync.Link
.
Returns value of field_name
as a list
.
Returns value of field_name
as a map
.
Returns value of field_name
as a number
.
Returns value of field_name
as CFSync.RichText
tree.
Link to this section Types
@type data() :: %{ fields: map(), locales: %{required(atom()) => String.t()}, store: CFSync.store(), locale: atom() }
Entry's payload as provided to CFSync.Entry.Fields.new/1
Link to this section Functions
Returns value of field_name
as an atom
.
data
is the entry's payload as provided toCFSync.Entry.Fields.new/1
field_name
is the field's id in Contentful (ie. What is configured in Contentful app)mapping
is a map of"value" => :atom
used to find which atom correspond to the field's value
Returns nil or default
on failure (field empty, no mapping...)
options
Options
- default: default value to return if the field is empty or not in the mapping
- force_locale: a locale to use instead of the entry's locale
- fallback_locale: locale to fallback to if the field is empty
Returns value of field_name
as a binary
.
data
is the entry's payload as provided toCFSync.Entry.Fields.new/1
field_name
is the field's id in Contentful (ie. What is configured in Contentful app)
Returns nil or default
on failure (field empty, not a string...)
options
Options
- default: default value to return if the field is empty or not a binary
- force_locale: a locale to use instead of the entry's locale
- fallback_locale: locale to fallback to if the field is empty
Returns value of field_name
as a boolean
.
data
is the entry's payload as provided toCFSync.Entry.Fields.new/1
field_name
is the field's id in Contentful (ie. What is configured in Contentful app)
Returns nil or default
on failure (field empty, not a boolean...)
options
Options
- default: default value to return if the field is empty or not a boolean
- force_locale: a locale to use instead of the entry's locale
- fallback_locale: locale to fallback to if the field is empty
Returns value of field_name
processed by fun
.
data
is the entry's payload as provided toCFSync.Entry.Fields.new/1
field_name
is the field's id in Contentful (ie. What is configured in Contentful app)fun
is a function of arity 1
Returns nil
if the field is not included in the payload.
options
Options
- force_locale: a locale to use instead of the entry's locale
- fallback_locale: locale to fallback to if the field is empty
Returns value of field_name
as a Date
.
data
is the entry's payload as provided toCFSync.Entry.Fields.new/1
field_name
is the field's id in Contentful (ie. What is configured in Contentful app)
Returns nil or default
on failure (field empty, invalid format, invalid date...)
options
Options
- default: default value to return if the field is empty or not a date
- force_locale: a locale to use instead of the entry's locale
- fallback_locale: locale to fallback to if the field is empty
@spec extract_datetime(data(), String.t(), keyword()) :: nil | DateTime.t()
Returns value of field_name
as a DateTime
.
data
is the entry's payload as provided toCFSync.Entry.Fields.new/1
field_name
is the field's id in Contentful (ie. What is configured in Contentful app)
Returns nil or default
on failure (field empty, invalid format, invalid datetime...)
options
Options
- default: default value to return if the field is empty or not a datetime
- force_locale: a locale to use instead of the entry's locale
- fallback_locale: locale to fallback to if the field is empty
@spec extract_link(data(), String.t(), keyword()) :: nil | CFSync.Link.t()
Returns value of field_name
as a CFSync.Link
.
data
is the entry's payload as provided toCFSync.Entry.Fields.new/1
field_name
is the field's id in Contentful (ie. What is configured in Contentful app)
Returns nil or default
on failure (field empty, not a link...)
options
Options
- default: default value to return if the field is empty or not a link
- force_locale: a locale to use instead of the entry's locale
- fallback_locale: locale to fallback to if the field is empty
@spec extract_links(data(), String.t(), keyword()) :: nil | [CFSync.Link.t()]
Returns value of field_name
as a list of CFSync.Link
.
data
is the entry's payload as provided toCFSync.Entry.Fields.new/1
field_name
is the field's id in Contentful (ie. What is configured in Contentful app)
Returns nil or default
on failure (field empty, not a list...)
options
Options
- default: default value to return if the field is empty or not a list
- force_locale: a locale to use instead of the entry's locale
- fallback_locale: locale to fallback to if the field is empty
Returns value of field_name
as a list
.
data
is the entry's payload as provided toCFSync.Entry.Fields.new/1
field_name
is the field's id in Contentful (ie. What is configured in Contentful app)
Returns nil or default
on failure (field empty, not a list...)
options
Options
- default: default value to return if the field is empty or not a list
- force_locale: a locale to use instead of the entry's locale
- fallback_locale: locale to fallback to if the field is empty
Returns value of field_name
as a map
.
data
is the entry's payload as provided toCFSync.Entry.Fields.new/1
field_name
is the field's id in Contentful (ie. What is configured in Contentful app)
Returns nil or default
on failure (field empty, not a map...)
options
Options
- default: default value to return if the field is empty or not a map
- force_locale: a locale to use instead of the entry's locale
- fallback_locale: locale to fallback to if the field is empty
Returns value of field_name
as a number
.
data
is the entry's payload as provided toCFSync.Entry.Fields.new/1
field_name
is the field's id in Contentful (ie. What is configured in Contentful app)
Be careful with the result as it can be either an integer or float, depending of it's value. A contentful decimal value of 1.0 will be stored as 1 in the JSON and read as an integer by JASON.
Returns nil or default
on failure (field empty, not a number...)
options
Options
- default: default value to return if the field is empty or not a number
- force_locale: a locale to use instead of the entry's locale
- fallback_locale: locale to fallback to if the field is empty
@spec extract_rich_text(data(), String.t(), keyword()) :: nil | CFSync.RichText.t()
Returns value of field_name
as CFSync.RichText
tree.
data
is the entry's payload as provided toCFSync.Entry.Fields.new/1
field_name
is the field's id in Contentful (ie. What is configured in Contentful app)
Returns nil or default
on failure (field empty, not a richtext...)
options
Options
- default: default value to return if the field is empty or not a richtext
- force_locale: a locale to use instead of the entry's locale
- fallback_locale: locale to fallback to if the field is empty