dash-api v0.1.100
Entry point for dash API:
import {Dash} from 'dash-api'
DashFirst, 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 DashActions
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 objecttargetstring - websocket uriconnectionopaque Connection the object, representing actual websocket connection, needed to pass it as a parameter
Returns
DashAction<GrpcGateway> where GrpcGateway is object with
setConnectionfunction, which getstargetand returnsDashAction<Connection>.targetis an object withtargetwebsocket uritokenauth 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
connectionopaque Connection the connection fromDash.gateway(...)searchStringstring arbitrary string to use in full-text search, e.g.'John Smith'[acount]integer max number of resultsresultCallbackfunction - the callback, which will be called when method finishes with either{ success: [....] }or{ failure: '...' }
Returns
DashAction<array<CallInfo>> where CallInfo is an object with
sessionIdstringcallerstringdisconnectobjectresultstring
ToDo...
8 years ago