UNPKG

@meshwatch/backend-core

Version:

Meshwatch backend core services.

28 lines (27 loc) 1.42 kB
import { CreateTableOutput } from 'aws-sdk/clients/dynamodb'; import { AWSError } from 'aws-sdk/lib/error'; import { PromiseResult } from 'aws-sdk/lib/request'; import { DynamoDBClient } from '../../shared/aws/dynamodb'; import { BaseUserInfo, CompleteGettingStartedTaskPayload, UserInfo } from './types'; import { USER_INFO_SORT_KEY } from './model'; export interface UserDatasource { createTable: () => Promise<PromiseResult<CreateTableOutput, AWSError>>; getUserInfo(userId: string): Promise<UserInfo>; completeGettingStartedTask(params: CompleteGettingStartedTaskPayload): Promise<UserInfo>; insertUserInfoRow(Item: UserInfoDynamoRow): Promise<UserInfo>; } export declare class DynamoUserDatasource implements UserDatasource { private dynamoClient; constructor(dynamoClient?: DynamoDBClient); createTable: () => Promise<PromiseResult<CreateTableOutput, AWSError>>; getUserInfo: (userId: string) => Promise<UserInfo<Date>>; completeGettingStartedTask: (params: CompleteGettingStartedTaskPayload) => Promise<UserInfo<Date>>; insertUserInfoRow: (Item: UserInfoDynamoRow) => Promise<UserInfo<Date>>; private userInfoFromDynamoRow; } interface UserInfoDynamoRow extends BaseUserInfo<number> { hashKey: string; sortKey: typeof USER_INFO_SORT_KEY; } declare const dynamoUserDatasource: DynamoUserDatasource; export default dynamoUserDatasource;