workspace-integrations
Version:
Webex Workspace Integrations NodeJS SDK
40 lines (39 loc) • 1.57 kB
TypeScript
/**
* All http calls for communicating with Webex (device) cloud
*/
import { DataObject, Http } from './types';
type Interceptor = (url: string, options: DataObject) => any;
interface Config {
path: string;
value: string | number | boolean;
}
interface StringObject {
[name: string]: string | number;
}
export interface OAuthDetails {
clientId: string;
clientSecret: string;
oauthUrl: string;
refreshToken: string;
}
declare class HttpImpl implements Http {
baseUrl: string;
accessToken: string;
constructor(baseUrl: string, accessToken: string);
static setDryMode(handler: Interceptor): void;
webexApi(partialUrl: string, method?: string, body?: any, contentType?: string): Promise<any>;
setAccessToken(token: string): void;
fullUrl(partialUrl: string): string;
ping(appUrl: string): Promise<any>;
static createAccessToken(oauth: OAuthDetails): Promise<any>;
static initIntegration: (data: DataObject) => Promise<any>;
get(partialUrl: string): Promise<any>;
pollDeviceData: (url: string) => Promise<any>;
xCommand: (deviceId: string, command: string, args?: StringObject, multiline?: string) => Promise<any>;
xStatus: (deviceId: string, path: string) => Promise<any>;
xConfig: (deviceId: string, path: string) => Promise<any>;
xConfigSet: (deviceId: string, configs: Config[]) => Promise<any>;
getWorkspace: (accessToken: string, workspaceId: string) => Promise<any>;
deviceDetails: (accessToken: string, deviceId: string) => Promise<any>;
}
export default HttpImpl;