UNPKG

@meshwatch/backend-core

Version:

Meshwatch backend core services.

38 lines (37 loc) 2.19 kB
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;