evalphobia/aws-sdk-go-v2-wrapper

View on GitHub
dynamodb/client_op_table_delete.go

Summary

Maintainability
B
4 hrs
Test Coverage
package dynamodb

import (
    "context"

    SDK "github.com/aws/aws-sdk-go-v2/service/dynamodb"

    "github.com/evalphobia/aws-sdk-go-v2-wrapper/errors"
    "github.com/evalphobia/aws-sdk-go-v2-wrapper/private/pointers"
)

// DeleteTable executes `DeleteTable` operation.
func (svc *DynamoDB) DeleteTable(ctx context.Context, r DeleteTableRequest) (*DeleteTableResult, error) {
    out, err := svc.RawDeleteTable(ctx, r.ToInput())
    if err == nil {
        return NewDeleteTableResult(out), nil
    }

    err = svc.errWrap(errors.ErrorData{
        Err:          err,
        AWSOperation: "DeleteTable",
    })
    svc.Errorf(err.Error())
    return nil, err
}

// DeleteTableRequest has parameters for `DeleteTable` operation.
type DeleteTableRequest struct {
    TableName string
}

func (r DeleteTableRequest) ToInput() *SDK.DeleteTableInput {
    in := &SDK.DeleteTableInput{}

    if r.TableName != "" {
        in.TableName = pointers.String(r.TableName)
    }
    return in
}

// DeleteTableResult contains results from `DeleteTable` operation.
type DeleteTableResult struct {
    TableDescription TableDescription
}

func NewDeleteTableResult(output *SDK.DeleteTableResponse) *DeleteTableResult {
    r := &DeleteTableResult{}
    if output == nil {
        return r
    }

    if output.TableDescription != nil {
        r.TableDescription = newTableDescription(*output.TableDescription)
    }
    return r
}