ExAirtable.Airtable.Record (ExAirtable v0.2.9) View Source
Struct for an Airtable Record.
This should directly match the results returned from any Airtable REST API endpoint that returns records.
Link to this section Summary
Functions
Convert a typical Airtable JSON response into a %Record{}
Given a table module, and a map of attributes that has been generated by
to_schema/2
, convert back into a valid %Record{}.
Retrieve a field from within a record's fields
Convert a record to an internal schema, mapping Airtable field names to local field names based on a %{"Schema" => "map"}
.
Link to this section Types
Specs
Link to this section Functions
Convert a typical Airtable JSON response into a %Record{}
Given a table module, and a map of attributes that has been generated by
to_schema/2
, convert back into a valid %Record{}.
This is essentially the reverse of to_schema/2
.
Retrieve a field from within a record's fields
Returns nil
by default if no field matches.
Convert a record to an internal schema, mapping Airtable field names to local field names based on a %{"Schema" => "map"}
.
Returns a plain map, suitable for eg. Ecto casting + conversion.
Note that fields not included in the schema()
map (which is empty by default) will not be added to the final schema. This is by design, since we don't always care to deal with every field that's returned by Airtable in our local systems. However, it does mean that you will want to take care to include every field that you wish to convert into your local schema.
If no schema map is given, the record fields are returned unmodified as a map.
Examples
iex> record = %ExAirtable.Airtable.Record{id: "1", fields: %{"AirtableField" => "value"}}
iex> to_schema(record, %{"AirtableField" => "localfield"})
%{"airtable_id" => "1", "localfield" => "value"}
iex> to_schema(record, nil)
%{"airtable_id" => "1", "AirtableField" => "value"}