dash-api v0.1.100
Entry point for dash API:
import {Dash} from 'dash-api'
Dash
First, you need to install middleware into your dispatch function:
import {Dash} from 'dash-api'
import { createStore, applyMiddleware } from 'redux'
const middleware = [Dash.middleware];
const store = createStore(
reducer,
applyMiddleware(...middleware)
)
Now you can dispatch actions from Dash
into redux dispatch function.
API
DashAction<T>
All the methods in Dash
return instance of DashAction<T>
. It is semantically equivalent to the no-arg function
,
which starts (possibly) asynchronous calculation and returns Promise<T>
of the result. DashAction
is composable using
then(onSuccess, [onFailure])
function, just like usual Promise
. It then can be dispatched to dash middleware for
execution. Alternatively, you could use DashAction
directly by calling runNow()
and subscribing to resulting Promise<T>
Dash.middleware
Creates redux middleware capable of executing Dash actions. The middleware basically invokes runNow()
on DashAction
s
and dispatches the result. Example:
store.dispatch(Dash.someAction().then(
function(success){
return {
type: "RESULT",
result: success
};
},
function(failure){
return {
type: "ERROR",
error: failure
};
}
));
Dash.gateway(connectionCallback)
Arguments
connectionCallback
(Function) receiving current active connection. The connection is an objecttarget
string - websocket uriconnection
opaque Connection the object, representing actual websocket connection, needed to pass it as a parameter
Returns
DashAction<GrpcGateway>
where GrpcGateway
is object with
setConnection
function, which getstarget
and returnsDashAction<Connection>
.target
is an object withtarget
websocket uritoken
auth token
Example:
store.dispatch(Dash.gateway(function(connection){
store.dispatch({
type: "CONNECTION_UPDATED",
connection: connection
});
}).then(function(handle){
return {
type: "SET_CONNECTION_HANDLE",
handle: handle
};
}));
//later...
store.dispatch(store.getState().handle.setConnection({
target: "ws://....",
token: "auth_token"
}));
`Dash.searchCalls(connection, searchString, amount)
Arguments
connection
opaque Connection the connection fromDash.gateway(...)
searchString
string arbitrary string to use in full-text search, e.g.'John Smith'
[acount]
integer max number of resultsresultCallback
function - the callback, which will be called when method finishes with either{ success: [....] }
or{ failure: '...' }
Returns
DashAction<array<CallInfo>>
where CallInfo
is an object with
sessionId
stringcaller
stringdisconnect
objectresult
string
ToDo...
7 years ago