mnubo-sdk
Version:
mnubo SmartObjects JavaScript client
50 lines (38 loc) • 1.19 kB
text/typescript
import { Client } from '../mnubo';
import { authenticate } from '../decorators';
import { encodeObjectForUrlParams } from '../utils/underscore';
export interface EventsSendOptions {
reportResults?: boolean;
objectsMustExist?: boolean;
}
export class Events {
private path: string;
constructor(private client: Client) {
this.path = '/api/v3/events';
}
send(payload: any, options?: EventsSendOptions): Promise<any> {
let path = this.path;
if (options) {
path += `?${encodeObjectForUrlParams(options)}`;
}
return this.client.post(`${path}`, payload);
}
sendFromDevice(deviceId: string, payload: any, options?: EventsSendOptions): Promise<any> {
let path = `/api/v3/objects/${deviceId}/events`;
if (options) {
path += `?${encodeObjectForUrlParams(options)}`;
}
return this.client.post(path, payload);
}
exists(eventIds: Array<string> | string): Promise<any> {
const path = `${this.path}/exists`;
if (Array.isArray(eventIds)) {
return this.client.post(`${path}`, eventIds);
} else {
return this.client.get(`${path}/${eventIds}`);
}
}
}