Class: Api::V2::SpecificTubeCreationResource

Inherits:
BaseResource
  • Object
show all
Defined in:
app/resources/api/v2/specific_tube_creation_resource.rb

Overview

Note:

the below example does not include the children as relationships, but via the child_purpose_uuids attribute. This is to be deprecated and should be replaced with the a relevant relationship.

For more information about JSON:API, see the JSON:API Specifications or refer to the JSONAPI::Resources package for Sequencescape’s implementation of the JSON:API standard.

Examples:

POST request with child purposes and parents specified by relationships

POST /api/v2/specific_tube_creations/
{
  "data": {
    "type": "specific_tube_creations",
    "attributes": {
      "child_purpose_uuids": [
          "40c0d714-fb53-11ef-bc6c-000000000000", "40c0d714-fb53-11ef-bc6c-000000000000"
      ],
      "tube_attributes": [{ "name": "Tube 1" }, { "name": "Tube 2" }]
    },
    "relationships": {
      "parents": {
        "data": [{ "type": "labware", "id": 3 }]
      },
      "user": {
        "data": { "type": "users", "id": 4 }
      }
    }
  }
}

GET request for all SpecificTubeCreation resources

GET /api/v2/specific_tube_creations/

GET request for a SpecificTubeCreation with ID 123

GET /api/v2/specific_tube_creations/123/

Instance Attribute Summary collapse

Method Summary

Methods inherited from BaseResource

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

Instance Attribute Details

#child_purpose_uuids=(value) ⇒ Void (writeonly)

TODO:

Deprecate - Create the child_purposes (or children) relationship instead.

This is currently declared for convenience as child purposes do not appear to be set as a relationship. Setting this attribute alongside the relevant relationship shold prefer the relationship value.

Parameters:

  • value (Array<String>)

    Array of UUIDs for child purposes to use in the creation of tubes.

Returns:

  • (Void)


82
# File 'app/resources/api/v2/specific_tube_creation_resource.rb', line 82

attribute :child_purpose_uuids, writeonly: true

#childrenArray<TubeResource> (readonly)

TODO:

fix this relationship as it currently appears to be broken

Returns An array of tubes that were created.

Returns:

  • (Array<TubeResource>)

    An array of tubes that were created.



134
# File 'app/resources/api/v2/specific_tube_creation_resource.rb', line 134

has_many :children, class_name: 'Tube', readonly: true

#parent_uuids=(value) ⇒ Void (writeonly)

Deprecated.

Use the parents relationship instead.

This is declared for convenience where the parent tubes are not available to set as a relationship. Setting this attribute alongside the parents relationship will prefer the relationship value.

Parameters:

  • value (Array<String>)

    The UUIDs of labware that will be the parents for all tubes created.

Returns:

  • (Void)

See Also:



95
# File 'app/resources/api/v2/specific_tube_creation_resource.rb', line 95

attribute :parent_uuids, writeonly: true

#parentsArray<LabwareResource>

Note:

This relationship is required.

Setting this relationship alongside the parent_uuids attribute will override the attribute value.

Returns:

  • (Array<LabwareResource>)

    An array of parent tubes for the created tubes.



140
# File 'app/resources/api/v2/specific_tube_creation_resource.rb', line 140

has_many :parents, class_name: 'Labware'

#tube_attributes=(value) ⇒ Void (writeonly)

Parameters:

  • value (Array<Hash>)

    Array of attribute hashes to apply to each tube being created. This can be used to set custom properties, such as tube names.

Returns:

  • (Void)


105
# File 'app/resources/api/v2/specific_tube_creation_resource.rb', line 105

attribute :tube_attributes, writeonly: true

#userUserResource

Note:

This relationship is required.

Setting this relationship alongside the user_uuid attribute will override the attribute value.

Returns:

  • (UserResource)

    The user who initiated the creation of tubes.



146
# File 'app/resources/api/v2/specific_tube_creation_resource.rb', line 146

has_one :user

#user_uuid=(value) ⇒ Void (writeonly)

Deprecated.

Use the user relationship instead.

This is declared for convenience where the user is not available to set as a relationship. Setting this attribute alongside the user relationship will prefer the relationship value.

Parameters:

  • value (String)

    The UUID of the user who initiated the creation of tubes.

Returns:

  • (Void)

See Also:



121
# File 'app/resources/api/v2/specific_tube_creation_resource.rb', line 121

attribute :user_uuid, writeonly: true

#uuidString (readonly)

Note:

This identifier is automatically assigned upon creation and cannot be modified.

Returns The UUID of the specific tube creation event.

Returns:

  • (String)

    The UUID of the specific tube creation event.



74
# File 'app/resources/api/v2/specific_tube_creation_resource.rb', line 74

attribute :uuid, readonly: true