0.1.100 • Published 7 years ago

dash-api v0.1.100

Weekly downloads
3
License
-
Repository
-
Last release
7 years ago

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 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 object

    • target string - websocket uri
    • connection 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 gets target and returns DashAction<Connection>. target is an object with
    • target websocket uri
    • token 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 from Dash.gateway(...)
  • searchString string arbitrary string to use in full-text search, e.g. 'John Smith'
  • [acount] integer max number of results
  • resultCallback 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 string
  • caller string
  • disconnect object
  • result string

ToDo...

0.1.100

7 years ago