Class: Api::V2::TubeFromTubeCreationResource

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

Overview

Note:

This resource cannot be modified after creation: its endpoint will not accept PATCH requests.

Note:

Access this resource via the /api/v2/tube_from_tube_creations/ endpoint.

Provides a JSON:API representation of TubeFromTubeCreation for the creation of a single child tube from a single parent tube. Creation of this resource via a POST request will create the new child tube with the parent tube as an ancestor. The created child will have the specified purpose and can be accessed via the #child relationship.

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

Examples:

POST request with child purpose and parent tube specified by UUID (deprecated)

POST /api/v2/tube_from_tube_creations/
{
  "data": {
    "type": "tube_from_tube_creations",
    "attributes": {
      "child_purpose_uuid": "11111111-2222-3333-4444-555555666666",
      "parent_uuid": "33333333-4444-5555-6666-777777888888",
      "user_uuid": "99999999-0000-1111-2222-333333444444"
    }
  }
}

POST request with child purpose and parent tube specified by relationship

POST /api/v2/tube_from_tube_creations/
{
  "data": {
    "type": "tube_from_tube_creations",
    "attributes": {},
    "relationships": {
      "child_purpose": {
        "data": { "type": "tube_purposes", "id": "123" }
      },
      "parent": {
        "data": { "type": "tubes", "id": "456" }
      },
      "user": {
        "data": { "type": "users", "id": "789" }
      }
    }
  }
}

GET request for all TubeFromTubeCreation resources

GET /api/v2/tube_from_tube_creations/

GET request for a TubeFromTubeCreation with ID 123

GET /api/v2/tube_from_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

#childTubeResource (readonly)

Returns The child tube which was created.

Returns:



109
# File 'app/resources/api/v2/tube_from_tube_creation_resource.rb', line 109

has_one :child, class_name: 'Tube', readonly: true

#child_purposeTubePurposeResource

Note:

This relationship is required.

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

Returns:



115
# File 'app/resources/api/v2/tube_from_tube_creation_resource.rb', line 115

has_one :child_purpose, class_name: 'TubePurpose'

#child_purpose_uuid=(value) ⇒ Void (writeonly)

Deprecated.

Use the child_purpose relationship instead.

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

Parameters:

  • value (String)

    The UUID of a child purpose to use in the creation of the child tube.

Returns:

  • (Void)

See Also:



67
# File 'app/resources/api/v2/tube_from_tube_creation_resource.rb', line 67

attribute :child_purpose_uuid, writeonly: true

#parentTubeResource

Note:

This relationship is required.

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

Returns:

  • (TubeResource)

    The parent tube of the tube being created.



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

has_one :parent, class_name: 'Tube'

#parent_uuid=(value) ⇒ Void (writeonly)

Deprecated.

Use the parent relationship instead.

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

Parameters:

  • value (String)

    The UUID of tube that will be the parent for the created tube.

Returns:

  • (Void)

See Also:



80
# File 'app/resources/api/v2/tube_from_tube_creation_resource.rb', line 80

attribute :parent_uuid, 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 the pooled plate.



127
# File 'app/resources/api/v2/tube_from_tube_creation_resource.rb', line 127

has_one :user, write_once: true

#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 this tube from a parent tube.

Returns:

  • (Void)

See Also:



93
# File 'app/resources/api/v2/tube_from_tube_creation_resource.rb', line 93

attribute :user_uuid, writeonly: true

#uuidString (readonly)

Returns The UUID of the tube from tube creation.

Returns:

  • (String)

    The UUID of the tube from tube creation.



101
# File 'app/resources/api/v2/tube_from_tube_creation_resource.rb', line 101

attribute :uuid, readonly: true