CFSync.Entry.Extractors (CFSync v0.18.0)
View SourceUtility functions to extract data from contenful JSON.
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.
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
Functions
Returns value of field_name as an atom.
datais the entry's payload as provided toCFSync.Entry.Fields.new/1field_nameis the field's id in Contentful (ie. What is configured in Contentful app)mappingis a map of"value" => :atomused to find which atom correspond to the field's value
Returns nil or default on failure (field empty, no mapping...)
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.
datais the entry's payload as provided toCFSync.Entry.Fields.new/1field_nameis 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
- 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.
datais the entry's payload as provided toCFSync.Entry.Fields.new/1field_nameis 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
- 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.
datais the entry's payload as provided toCFSync.Entry.Fields.new/1field_nameis the field's id in Contentful (ie. What is configured in Contentful app)funis a function of arity 1
Returns nil if the field is not included in the payload.
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.
datais the entry's payload as provided toCFSync.Entry.Fields.new/1field_nameis 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
- 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.
datais the entry's payload as provided toCFSync.Entry.Fields.new/1field_nameis 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
- 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.
datais the entry's payload as provided toCFSync.Entry.Fields.new/1field_nameis 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
- 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.
datais the entry's payload as provided toCFSync.Entry.Fields.new/1field_nameis 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
- 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.
datais the entry's payload as provided toCFSync.Entry.Fields.new/1field_nameis 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
- 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.
datais the entry's payload as provided toCFSync.Entry.Fields.new/1field_nameis 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
- 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.
datais the entry's payload as provided toCFSync.Entry.Fields.new/1field_nameis 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
- 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.
datais the entry's payload as provided toCFSync.Entry.Fields.new/1field_nameis 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
- 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