Methods
cancelAllSubscriptions()
Immediately cancels all active subscriptions.
This endpoint is handy to use when an end-user chooses to end her session
with the web app. E.g. all subscriptions should be cancelled upon user sign-out.
- Source:
command(commandMessagenon-null) → {CommandRequest}
Creates a new command request which allows to post a command to the Spine server and
configures the command handling callbacks.
Parameters:
Name | Type | Description |
---|---|---|
commandMessage |
Message | a command to post to the server |
- Source:
Returns:
a new command request
- Type
- CommandRequest
execute(querynon-null) → {Promise.<Array.<Message>>}
Executes the given `Query` instance specifying the data to be retrieved from
Spine server fulfilling a returned promise with an array of received objects.
Parameters:
Name | Type | Description |
---|---|---|
query |
spine.client.Query | a query instance to be executed |
- Deprecated:
- Please use Client#read() instead
- Source:
Returns:
a promise to be fulfilled with a list of Protobuf
messages of a given type or with an empty list if no entities matching given query
were found; rejected with a `SpineError` if error occurs;
- Type
- Promise.<Array.<Message>>
newQuery() → {QueryFactory}
Creates a new QueryFactory for creating `Query` instances specifying
the data to be retrieved from Spine server.
- Source:
- See:
Returns:
a factory for creating queries to the Spine server
- Type
- QueryFactory
Examples
// Build a query for `Task` domain entity, specifying particular IDs.
newQuery().select(Task)
.byIds([taskId1, taskId2])
.build()
// Build a query for `Task` domain entity, selecting the instances which assigned to the
// particular user.
newQuery().select(Task)
.where([Filters.eq('assignee', userId)])
.build()
To execute the resulting `Query` instance pass it to the Client#execute().
Alternatively, the `QueryRequest` API can be used. See Client#select().
newTopic() → {TopicFactory}
Creates a new TopicFactory for building subscription topics specifying
the state changes to be observed from Spine server.
- Source:
- See:
Returns:
a factory for creating subscription topics to the Spine server
- Type
- TopicFactory
Examples
// Build a subscription topic for `UserTasks` domain entity.
newTopic().select(Task)
.build()
// Build a subscription topic for `UserTasks` domain entity, selecting the instances
// with over 3 tasks.
newTopic().select(UserTasks)
.where(Filters.gt('tasksCount', 3))
.build()
To turn the resulting `Topic` instance into a subscription pass it
to the Client#subscribe().
Alternatively, the `SubscriptionRequest` API can be used. See Client#subscribeTo(),
Client#subscribeToEvents().
post(commandnon-null, onAcknon-null)
Posts a given command to the Spine server.
Parameters:
Name | Type | Description |
---|---|---|
command |
spine.core.Command | a Command sent to Spine server |
onAck |
AckCallback | a command acknowledgement callback |
- Source:
read(querynon-null) → {Promise.<Array.<Message>>}
Executes the given `Query` instance specifying the data to be retrieved from
Spine server fulfilling a returned promise with an array of received objects.
Parameters:
Name | Type | Description |
---|---|---|
query |
spine.client.Query | a query instance to be executed |
- Source:
Returns:
a promise to be fulfilled with a list of Protobuf
messages of a given type or with an empty list if no entities matching given query
were found; rejected with a `SpineError` if error occurs
- Type
- Promise.<Array.<Message>>
select(entityTypenon-null) → {QueryRequest}
Creates a query request that allows to configure and post a new query.
Parameters:
Name | Type | Description |
---|---|---|
entityType |
Class.<Message> | a Protobuf type of the query target entities |
- Source:
Returns:
the builder to construct and post a new query
- Type
- QueryRequest
sendCommand(commandMessagenon-null, acknowledgedCallbacknon-null, errorCallbacknullable, rejectionCallbacknullable)
Sends the provided command to the server.
After sending the command to the server the following scenarios are possible:
- the `acknowledgedCallback` is called if the command is acknowledged for further processing
- the `errorCallback` is called if sending of the command failed
Invocation of the `acknowledgedCallback` and the `errorCallback` are mutually exclusive.
If the command sending fails, the respective error is passed to the `errorCallback`. This error
is always the type of `CommandHandlingError`. Its cause can be retrieved by `getCause()` method
and can be represented with the following types of errors:
- `ConnectionError` – if the connection error occurs;
- `ClientError` – if the server responds with `4xx` HTTP status code;
- `ServerError` – if the server responds with `5xx` HTTP status code;
- `spine.base.Error` – if the command message can't be processed by the server;
- `SpineError` – if parsing of the response fails;
If the command sending fails due to a command validation error, an error passed to the
`errorCallback` is the type of `CommandValidationError` (inherited from
`CommandHandlingError`). The validation error can be retrieved by `validationError()` method.
The occurrence of an error does not guarantee that the command is not accepted by the server
for further processing. To verify this, call the error `assuresCommandNeglected()` method.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
commandMessage |
Message | a Protobuf message representing the command | |
acknowledgedCallback |
parameterlessCallback | a no-argument callback invoked if the command is acknowledged | |
errorCallback |
consumerCallback.<CommandHandlingError> |
<nullable> |
a callback receiving the errors executed if an error occurred when sending command |
rejectionCallback |
consumerCallback.<Rejection> |
<nullable> |
a callback executed if the command is denied processing due to a business rejection |
- Deprecated:
- Please use Client#command()
- Source:
- See:
subscribe(topicnon-null) → {Promise.<EntitySubscriptionObject.<Message>>}
Subscribes to the given `Topic` instance.
The topic should have an entity type as target. Use #subscribeToEvents to subscribe to
the topic that targets events.
Parameters:
Name | Type | Description |
---|---|---|
topic |
spine.client.Topic | a topic to subscribe to |
- Source:
Returns:
the subscription object which exposes entity changes via its callbacks
- Type
- Promise.<EntitySubscriptionObject.<Message>>
subscribeTo(entityTypenon-null) → {SubscriptionRequest}
Creates a subscription request that allows to configure and post a new entity subscription.
Parameters:
Name | Type | Description |
---|---|---|
entityType |
Class.<Message> | a Protobuf type of the target entities |
- Source:
Returns:
the builder for the new entity subscription
- Type
- SubscriptionRequest
subscribeToEvent(eventTypenon-null) → {EventSubscriptionRequest}
Creates an event subscription request that allows to configure and post a new event
subscription.
Parameters:
Name | Type | Description |
---|---|---|
eventType |
Class.<Message> | a Protobuf type of the target events |
- Source:
Returns:
the builder for the new event subscription
subscribeToEvents(topicnon-null) → {Promise.<EventSubscriptionObject>}
Subscribes to the given `Topic` instance.
The given topic should target an event type. To perform an entity subscription, use
#subscribe.
Parameters:
Name | Type | Description |
---|---|---|
topic |
spine.client.Topic | a topic to subscribe to |
- Source:
Returns:
- Type
- Promise.<EventSubscriptionObject>