Class: Dina::FileParser
- Inherits:
-
Object
- Object
- Dina::FileParser
- Defined in:
- lib/dina/models/object_store/file_parser.rb
Class Method Summary collapse
-
.parameters_from_resource(params) ⇒ Object
Given a resource hash, returns a Resource.new friendly hash which flattens the attributes in w/ id and type.
- .parse(klass, response) ⇒ Object
Class Method Details
.parameters_from_resource(params) ⇒ Object
Given a resource hash, returns a Resource.new friendly hash which flattens the attributes in w/ id and type.
Example:
Given:
{
id: 1.
type: 'person',
attributes: {
first_name: 'Jeff',
last_name: 'Ching'
},
links: {...},
relationships: {...}
}
Returns:
{
id: 1,
type: 'person',
first_name: 'Jeff',
last_name: 'Ching'
links: {...},
relationships: {...}
}
54 55 56 57 |
# File 'lib/dina/models/object_store/file_parser.rb', line 54 def parameters_from_resource(params) attrs = params.slice('id', 'links', 'meta', 'type', 'relationships') attrs.merge(params.fetch('attributes', {})) end |
.parse(klass, response) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/dina/models/object_store/file_parser.rb', line 6 def parse(klass, response) data = response.body.present? ? response.body : {} return data if !data.respond_to?(:fetch) ::JsonApiClient::ResultSet.new.tap do |result_set| result_set.record_class = klass result_set.uri = response.env[:url] handle_json_api(result_set, data) handle_data(result_set, data) handle_errors(result_set, data) (result_set, data) handle_links(result_set, data) handle_relationships(result_set, data) handle_pagination(result_set, data) handle_included(result_set, data) end end |