Class: Api::V2::TransferRequestCollectionResource

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

Overview

Note:

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

Note:

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

Provides a JSON:API representation of TransferRequestCollection

A TransferRequestCollection provides a means of bulk creating transfer requests between arbitrary sources and destinations. This resource allows the creation of a collection of transfer requests in a single transaction, avoiding multiple server calls for each transfer request.

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 to create a TransferRequestCollection with multiple transfer requests

POST /api/v2/transfer_request_collections/
{
  "data": {
    "type": "transfer_request_collections",
    "attributes": {
      "transfer_requests_attributes": [
        {
          "source_asset": "dc33e42e-f5e1-11ef-98fe-000000000000",
          "target_asset": "de19e8e2-f5e1-11ef-98fe-000000000000",
          "aliquot_attributes": {
            "tag_depth": "2"
          }
        },
        {
          "source_asset": "44444444-5555-6666-7777-888888999999",
          "target_asset": "55555555-6666-7777-8888-999999000000",
          "aliquot_attributes": {
            "tag_depth": "3"
          }
        }
      ]
    },
    "relationships": {
      "user": {
        "data": {
          "type": "users",
          "id": 4
        }
      }
    }
  }
}

GET request for all TransferRequestCollection resources

GET /api/v2/transfer_request_collections/

GET request for a TransferRequestCollection with ID 123

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

#target_tubesArray<TubeResource> (readonly)

in this collection.

Returns:

  • (Array<TubeResource>)

    An array of tubes that are the targets for the transfer requests



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

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

#transfer_requestsArray<TransferRequestResource> (readonly)

Returns An array of transfer requests within this collection.

Returns:



119
# File 'app/resources/api/v2/transfer_request_collection_resource.rb', line 119

has_many :transfer_requests, readonly: true

#transfer_requests_attributes=(value) ⇒ Void (writeonly)

Deprecated.

Use the transfer_requests relationship instead.

To enable the creation of TransferRequest records server side in a single transaction, the attributes for transfer requests to be included in the collection can be passed as an array of hashes. These will be created at the same time as the TransferRequestCollection to avoid making multiple server calls.

Examples:

Hashes should contain the following data about each transfer request

{
  'source_asset': 'The UUID of the source asset as a string.',
  'target_asset': 'The UUID of the destination asset as a string.',
  'aliquot_attributes': {
    'tag_depth': 'The tag depth of the source as a string.'
  }
}

Parameters:

  • value (Array<Hash>)

    An array of hashes, where each hash contains the attributes for a transfer request.

Returns:

  • (Void)

See Also:



81
# File 'app/resources/api/v2/transfer_request_collection_resource.rb', line 81

attribute :transfer_requests_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 this transfer request collection.



125
# File 'app/resources/api/v2/transfer_request_collection_resource.rb', line 125

has_one :user

#user_uuid=(value) ⇒ Void (writeonly)

Deprecated.

Use the user relationship instead.

Declared for convenience when 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 transfer request collection.

Returns:

  • (Void)

See Also:



97
# File 'app/resources/api/v2/transfer_request_collection_resource.rb', line 97

attribute :user_uuid, writeonly: true

#uuidString (readonly)

Note:

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

Returns The UUID of the transfer request collection.

Returns:

  • (String)

    The UUID of the transfer request collection.



106
# File 'app/resources/api/v2/transfer_request_collection_resource.rb', line 106

attribute :uuid, readonly: true