diff options
Diffstat (limited to 'vendor/github.com/goamz/goamz/dynamodb/table.go')
-rwxr-xr-x | vendor/github.com/goamz/goamz/dynamodb/table.go | 259 |
1 files changed, 0 insertions, 259 deletions
diff --git a/vendor/github.com/goamz/goamz/dynamodb/table.go b/vendor/github.com/goamz/goamz/dynamodb/table.go deleted file mode 100755 index 541433c13..000000000 --- a/vendor/github.com/goamz/goamz/dynamodb/table.go +++ /dev/null @@ -1,259 +0,0 @@ -package dynamodb - -import ( - "encoding/json" - "errors" - "fmt" - simplejson "github.com/bitly/go-simplejson" -) - -type Table struct { - Server *Server - Name string - Key PrimaryKey -} - -type AttributeDefinitionT struct { - Name string `json:"AttributeName"` - Type string `json:"AttributeType"` -} - -type KeySchemaT struct { - AttributeName string - KeyType string -} - -type ProjectionT struct { - ProjectionType string -} - -type GlobalSecondaryIndexT struct { - IndexName string - IndexSizeBytes int64 - ItemCount int64 - KeySchema []KeySchemaT - Projection ProjectionT - ProvisionedThroughput ProvisionedThroughputT -} - -type LocalSecondaryIndexT struct { - IndexName string - IndexSizeBytes int64 - ItemCount int64 - KeySchema []KeySchemaT - Projection ProjectionT -} - -type ProvisionedThroughputT struct { - NumberOfDecreasesToday int64 - ReadCapacityUnits int64 - WriteCapacityUnits int64 -} - -type StreamSpecificationT struct { - StreamEnabled bool - StreamViewType string -} - -type TableDescriptionT struct { - AttributeDefinitions []AttributeDefinitionT - CreationDateTime float64 - ItemCount int64 - KeySchema []KeySchemaT - GlobalSecondaryIndexes []GlobalSecondaryIndexT - LocalSecondaryIndexes []LocalSecondaryIndexT - ProvisionedThroughput ProvisionedThroughputT - StreamSpecification StreamSpecificationT - TableName string - TableSizeBytes int64 - TableStatus string - LatestStreamArn string - LatestStreamLabel string -} - -type describeTableResponse struct { - Table TableDescriptionT -} - -func findAttributeDefinitionByName(ads []AttributeDefinitionT, name string) *AttributeDefinitionT { - for _, a := range ads { - if a.Name == name { - return &a - } - } - return nil -} - -func (a *AttributeDefinitionT) GetEmptyAttribute() *Attribute { - switch a.Type { - case "S": - return NewStringAttribute(a.Name, "") - case "N": - return NewNumericAttribute(a.Name, "") - case "B": - return NewBinaryAttribute(a.Name, "") - default: - return nil - } -} - -func (t *TableDescriptionT) BuildPrimaryKey() (pk PrimaryKey, err error) { - for _, k := range t.KeySchema { - var attr *Attribute - ad := findAttributeDefinitionByName(t.AttributeDefinitions, k.AttributeName) - if ad == nil { - return pk, errors.New("An inconsistency found in TableDescriptionT") - } - attr = ad.GetEmptyAttribute() - if attr == nil { - return pk, errors.New("An inconsistency found in TableDescriptionT") - } - - switch k.KeyType { - case "HASH": - pk.KeyAttribute = attr - case "RANGE": - pk.RangeAttribute = attr - } - } - return -} - -func (s *Server) NewTable(name string, key PrimaryKey) *Table { - return &Table{s, name, key} -} - -func (s *Server) ListTables() ([]string, error) { - var tables []string - - query := NewEmptyQuery() - - jsonResponse, err := s.queryServer(target("ListTables"), query) - - if err != nil { - return nil, err - } - - json, err := simplejson.NewJson(jsonResponse) - - if err != nil { - return nil, err - } - - response, err := json.Get("TableNames").Array() - - if err != nil { - message := fmt.Sprintf("Unexpected response %s", jsonResponse) - return nil, errors.New(message) - } - - for _, value := range response { - if t, ok := (value).(string); ok { - tables = append(tables, t) - } - } - - return tables, nil -} - -func (s *Server) CreateTable(tableDescription TableDescriptionT) (string, error) { - query := NewEmptyQuery() - query.AddCreateRequestTable(tableDescription) - - jsonResponse, err := s.queryServer(target("CreateTable"), query) - - if err != nil { - return "unknown", err - } - - json, err := simplejson.NewJson(jsonResponse) - - if err != nil { - return "unknown", err - } - - return json.Get("TableDescription").Get("TableStatus").MustString(), nil -} - -func (s *Server) DeleteTable(tableDescription TableDescriptionT) (string, error) { - query := NewEmptyQuery() - query.AddDeleteRequestTable(tableDescription) - - jsonResponse, err := s.queryServer(target("DeleteTable"), query) - - if err != nil { - return "unknown", err - } - - json, err := simplejson.NewJson(jsonResponse) - - if err != nil { - return "unknown", err - } - - return json.Get("TableDescription").Get("TableStatus").MustString(), nil -} - -func (t *Table) DescribeTable() (*TableDescriptionT, error) { - return t.Server.DescribeTable(t.Name) -} - -func (s *Server) DescribeTable(name string) (*TableDescriptionT, error) { - q := NewEmptyQuery() - q.addTableByName(name) - - jsonResponse, err := s.queryServer(target("DescribeTable"), q) - if err != nil { - return nil, err - } - - var r describeTableResponse - err = json.Unmarshal(jsonResponse, &r) - if err != nil { - return nil, err - } - - return &r.Table, nil -} - -func (s *Server) UpdateTable(tableDescription TableDescriptionT) (string, error) { - query := NewEmptyQuery() - query.AddUpdateRequestTable(tableDescription) - - jsonResponse, err := s.queryServer(target("UpdateTable"), query) - - if err != nil { - return "unknown", err - } - - json, err := simplejson.NewJson(jsonResponse) - - if err != nil { - return "unknown", err - } - - return json.Get("TableDescription").Get("TableStatus").MustString(), nil -} - -func (t *Table) ListStreams(startArn string) ([]StreamListItemT, error) { - return t.Server.ListTableStreams(t.Name, startArn) -} - -func (t *Table) LimitedListStreams(startArn string, limit int64) ([]StreamListItemT, error) { - return t.Server.LimitedListTableStreams(t.Name, startArn, limit) -} - -func keyParam(k *PrimaryKey, hashKey string, rangeKey string) string { - value := fmt.Sprintf("{\"HashKeyElement\":{%s}", keyValue(k.KeyAttribute.Type, hashKey)) - - if k.RangeAttribute != nil { - value = fmt.Sprintf("%s,\"RangeKeyElement\":{%s}", value, - keyValue(k.RangeAttribute.Type, rangeKey)) - } - - return fmt.Sprintf("\"Key\":%s}", value) -} - -func keyValue(key string, value string) string { - return fmt.Sprintf("\"%s\":\"%s\"", key, value) -} |