Class: Api::V2::LabwareResource
- Inherits:
-
BaseResource
- Object
- JSONAPI::Resource
- BaseResource
- Api::V2::LabwareResource
- Includes:
- SharedBehaviour::Labware
- Defined in:
- app/resources/api/v2/labware_resource.rb
Overview
Access this resource via the /api/v2/labware/ endpoint.
Provides a JSON:API representation of Labware to access all labware objects, which includes plates and tubes. When creating Labware, do so via the PlateResource or TubeResource instead.
For more information about JSON:API, see the JSON:API Specifications or check out JSONAPI::Resources for Sequencescape's implementation.
Instance Attribute Summary collapse
-
#poly_metadata ⇒ PolyMetadatumResource
readonly
The associated metadata for the Labware.
Instance Method Summary collapse
-
#labware_barcode ⇒ Object
Returns a hash containing different barcode types associated with the labware.
Methods inherited from BaseResource
apply_includes, creatable_fields, default_includes, #fetchable_fields, inclusions, resolve_relationship_names_to_relations, updatable_fields
Instance Attribute Details
#poly_metadata ⇒ PolyMetadatumResource (readonly)
This is a one-to-many relationship, where a Labware can have multiple pieces of metadata.
The poly_metadata must already exist in the database before it can be associated with a Labware.
Returns The associated metadata for the Labware.
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'app/resources/api/v2/labware_resource.rb', line 62 do # NOTE: The following attribute is not required for Microarray Genotyping. # I think this might be broken and suggests that there should be separate classes for project: one for # next-gen sequencing that includes this attribute in it's metadata, and one for microarray genotyping # that doesn't. include ProjectManager::Associations include BudgetDivision::Associations custom_attribute(:project_cost_code, required: true) custom_attribute(:funding_comments) custom_attribute(:collaborators) custom_attribute(:external_funding_source) custom_attribute(:sequencing_budget_cost_centre) custom_attribute(:project_funding_model, in: PROJECT_FUNDING_MODELS) custom_attribute(:gt_committee_tracking_id) before_validation do |record| record.project_cost_code = nil if record.project_cost_code.blank? record.project_funding_model = nil if record.project_funding_model.blank? end end |
Instance Method Details
#labware_barcode ⇒ Object
Returns a hash containing different barcode types associated with the labware. @return [Hash] A hash with keys for each barcode type and their corresponding values.
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'app/resources/api/v2/labware_resource.rb', line 70 do # NOTE: The following attribute is not required for Microarray Genotyping. # I think this might be broken and suggests that there should be separate classes for project: one for # next-gen sequencing that includes this attribute in it's metadata, and one for microarray genotyping # that doesn't. include ProjectManager::Associations include BudgetDivision::Associations custom_attribute(:project_cost_code, required: true) custom_attribute(:funding_comments) custom_attribute(:collaborators) custom_attribute(:external_funding_source) custom_attribute(:sequencing_budget_cost_centre) custom_attribute(:project_funding_model, in: PROJECT_FUNDING_MODELS) custom_attribute(:gt_committee_tracking_id) before_validation do |record| record.project_cost_code = nil if record.project_cost_code.blank? record.project_funding_model = nil if record.project_funding_model.blank? end end |