@meshwatch/backend-core
Version:
Meshwatch backend core services.
38 lines (37 loc) • 2.19 kB
TypeScript
import { CreateMonitorPayload, Monitor } from '@meshwatch/types';
import DynamoDB, { CreateTableOutput, DeleteItemOutput, DocumentClient } from 'aws-sdk/clients/dynamodb';
import { AWSError } from 'aws-sdk/lib/error';
import { PromiseResult } from 'aws-sdk/lib/request';
export interface MonitorStorage {
createTable: () => Promise<PromiseResult<CreateTableOutput, AWSError>>;
createMonitor: (monitor: CreateMonitorPayload) => Promise<Monitor>;
updateMonitor: (monitor: Monitor) => Promise<Monitor>;
deleteMonitor: (userId: string, monitorId: string) => Promise<PromiseResult<DeleteItemOutput, AWSError>>;
getMonitor: (userId: string, monitorId: string) => Promise<Monitor>;
searchMonitors: (userId: string) => Promise<Monitor[]>;
bookmarkMonitor: (userId: string, monitorId: string, bookmarked: boolean) => Promise<Monitor>;
getMonitorsByScheduler: (schedulerName: string) => Promise<Monitor[]>;
}
export declare class DynamoMonitorStorage implements MonitorStorage {
private documentClient;
private dynamoDB;
constructor(documentClient?: DocumentClient, dynamoDB?: DynamoDB);
createTable: () => Promise<PromiseResult<DynamoDB.CreateTableOutput, AWSError>>;
bookmarkMonitor: (userId: string, monitorId: string, bookmarked: boolean) => Promise<Monitor>;
getMonitor: (userId: string, monitorId: string) => Promise<Monitor>;
deleteMonitor: (userId: string, monitorId: string) => Promise<PromiseResult<DynamoDB.DocumentClient.DeleteItemOutput, AWSError>>;
searchMonitors: (userId: string) => Promise<Monitor[]>;
getMonitorsByScheduler: (scheduler: string) => Promise<Monitor[]>;
createMonitor: (createMonitorPayload: CreateMonitorPayload) => Promise<Monitor>;
updateMonitor: (updateMonitorPayload: Monitor) => Promise<Monitor>;
_putMonitor: (monitor: Monitor) => Promise<Monitor>;
private monitorToDynamoItem;
private monitorFromDynamoItem;
private mapDynamoRows;
private encodeHashKey;
private decodeHashKey;
private encodeSortKey;
private decodeSortKey;
}
declare const dynamoMonitorStorage: DynamoMonitorStorage;
export default dynamoMonitorStorage;