dynamo

package
v0.4.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 30, 2023 License: MIT Imports: 6 Imported by: 0

Documentation

Overview

Package dynamo implements various design patterns for dynamodb and looks to simplify the aws api for aws-sdk-go-v2

Index

Constants

View Source
const (
	HashKeyName   = "pk"
	SortKeyName   = "sk"
	DomainKeyName = "dk"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	// contains filtered or unexported fields
}

func NewClient added in v0.4.0

func NewClient(api APIBehavior, tbl Table) (*Client, error)

func (*Client) Delete added in v0.4.3

func (c *Client) Delete(ctx context.Context, key Keyable) error

func (*Client) Item

func (c *Client) Item(ctx context.Context, key Keyable) (map[string]types.AttributeValue, error)

func (*Client) NewDeleteInput added in v0.4.3

func (c *Client) NewDeleteInput(key map[string]types.AttributeValue, cond ...string) *dynamodb.DeleteItemInput

func (*Client) NewGetItemIn

func (c *Client) NewGetItemIn(k Keyable) *dynamodb.GetItemInput

func (*Client) NewPutInput

func (c *Client) NewPutInput(item map[string]types.AttributeValue, cond ...string) *dynamodb.PutItemInput

func (*Client) Put

func (c *Client) Put(ctx context.Context, item map[string]types.AttributeValue) error

func (*Client) TableName

func (c *Client) TableName() string

func (*Client) Write

func (c *Client) Write(ctx context.Context, row Writable) error

type FormatterError

type FormatterError interface {
	FormatForError() string
}

type Key

type Key struct {
	Hash   string `dynamodbav:"pk"`
	Sort   string `dynamodbav:"sk"`
	Domain string `dynamodbav:"dk"`
	ENames map[string]string
	CExpr  *string
}

func (*Key) ConditionExpr

func (k *Key) ConditionExpr() *string

func (*Key) ExprAttrNames added in v0.4.2

func (k *Key) ExprAttrNames() map[string]string

func (*Key) FormatForError

func (k *Key) FormatForError() string

func (*Key) Full

func (k *Key) Full() map[string]types.AttributeValue

type Keyable

type Keyable interface {
	Full() map[string]types.AttributeValue
	ConditionExpr() *string
	ExprAttrNames() map[string]string
	FormatterError
}

type Table

type Table struct {
	// contains filtered or unexported fields
}

func NewTable

func NewTable(name, hash, sort string, idx map[string]string) (Table, error)

func (Table) HashKey added in v0.4.0

func (t Table) HashKey() string

func (Table) Name

func (t Table) Name() string

func (Table) SortKey added in v0.4.0

func (t Table) SortKey() string

type Writable

type Writable interface {
	ToItem() (map[string]types.AttributeValue, error)
	ToDBKey() map[string]types.AttributeValue
	ConditionExpr() *string
	ExprAttrNames() map[string]string
	FormatterError
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL