UNPKG

@meshwatch/backend-core

Version:

Meshwatch backend core services.

28 lines (27 loc) 1.41 kB
import DynamoDB, { CreateTableOutput, DocumentClient } from 'aws-sdk/clients/dynamodb'; import { AWSError } from 'aws-sdk/lib/error'; import { PromiseResult } from 'aws-sdk/lib/request'; import { BaseUserInfo, CompleteGettingStartedTaskPayload, UserInfo } from './types'; export interface UserStorage { createTable: () => Promise<PromiseResult<CreateTableOutput, AWSError>>; getUserInfo(userId: string): Promise<UserInfo>; completeGettingStartedTask(params: CompleteGettingStartedTaskPayload): Promise<UserInfo>; insertUserInfoRow(Item: UserInfoRow): Promise<UserInfo>; } export declare class DynamoUserStorage implements UserStorage { private documentClient; private dynamoDB; constructor(documentClient?: DocumentClient, dynamoDB?: DynamoDB); createTable: () => Promise<PromiseResult<DynamoDB.CreateTableOutput, AWSError>>; getUserInfo: (userId: string) => Promise<UserInfo<Date>>; completeGettingStartedTask: ({ userId, taskName, completedOn, }: CompleteGettingStartedTaskPayload) => Promise<UserInfo<Date>>; insertUserInfoRow: (Item: UserInfoRow) => Promise<UserInfo<Date>>; private userInfoFromDynamoRow; private encodeHashKey; private decodeHashKey; } export interface UserInfoRow extends BaseUserInfo<number> { hashKey: string; } declare const dynamoUserStorage: DynamoUserStorage; export default dynamoUserStorage;