Class: Api::V2::LabwareResource

Inherits:
BaseResource
  • Object
show all
Includes:
SharedBehaviour::Labware
Defined in:
app/resources/api/v2/labware_resource.rb

Overview

Note:

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.

Examples:

GET request for all Labware resources

GET /api/v2/labware/

GET request for a single Labware resource with ID 123

GET /api/v2/labware/123/

POST request to create a new Labware resource

POST /api/v2/labware/
{
  "data": {
    "type": "labware",
    "attributes": {
    },
    "relationships": {
    }
  }
}

Instance Method Summary collapse

Methods inherited from BaseResource

apply_includes, creatable_fields, default_includes, #fetchable_fields, inclusions, resolve_relationship_names_to_relations, updatable_fields

Instance Method Details

#labware_barcodeObject

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.



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'app/resources/api/v2/labware_resource.rb', line 46

 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