github.com/smugmug/godynamo@v0.0.0-20151122084750-7913028f6623/endpoints/delete_table/delete_table.go (about)

     1  // Support for the DynamoDB DeleteTable endpoint.
     2  //
     3  // example use:
     4  //
     5  // tests/delete_table-livestest.go
     6  //
     7  package delete_table
     8  
     9  import (
    10  	"encoding/json"
    11  	"errors"
    12  	"github.com/smugmug/godynamo/authreq"
    13  	"github.com/smugmug/godynamo/aws_const"
    14  	"github.com/smugmug/godynamo/conf"
    15  	create_table "github.com/smugmug/godynamo/endpoints/create_table"
    16  )
    17  
    18  const (
    19  	ENDPOINT_NAME        = "DeleteTable"
    20  	DELETETABLE_ENDPOINT = aws_const.ENDPOINT_PREFIX + ENDPOINT_NAME
    21  )
    22  
    23  type DeleteTable struct {
    24  	TableName string
    25  }
    26  
    27  // Delete is an alias for backwards compatibility
    28  type Delete DeleteTable
    29  
    30  type Request DeleteTable
    31  
    32  func NewDeleteTable() *DeleteTable {
    33  	d := new(DeleteTable)
    34  	return d
    35  }
    36  
    37  // DeleteTable and CreateTable use the same Response format
    38  type Response create_table.Response
    39  
    40  func NewResponse() *Response {
    41  	cr := create_table.NewResponse()
    42  	r := Response(*cr)
    43  	return &r
    44  }
    45  
    46  // These implementations of EndpointReq use a parameterized conf.
    47  
    48  func (delete_table *DeleteTable) EndpointReqWithConf(c *conf.AWS_Conf) ([]byte, int, error) {
    49      	if delete_table == nil {
    50  		return nil, 0, errors.New("delete_table.(DeleteTable)EndpointReqWithConf: receiver is nil")
    51  	}
    52  	if !conf.IsValid(c) {
    53  		return nil, 0, errors.New("delete_table.EndpointReqWithConf: c is not valid")
    54  	}
    55  	// returns resp_body,code,err
    56  	reqJSON, json_err := json.Marshal(delete_table)
    57  	if json_err != nil {
    58  		return nil, 0, json_err
    59  	}
    60  	return authreq.RetryReqJSON_V4WithConf(reqJSON, DELETETABLE_ENDPOINT, c)
    61  }
    62  
    63  func (delete *Delete) EndpointReqWithConf(c *conf.AWS_Conf) ([]byte, int, error) {
    64  	if delete == nil {
    65  		return nil, 0, errors.New("delete_table.(Delete)EndpointReqWithConf: receiver is nil")
    66  	}
    67  	delete_table := DeleteTable(*delete)
    68  	return delete_table.EndpointReqWithConf(c)
    69  }
    70  
    71  func (req *Request) EndpointReqWithConf(c *conf.AWS_Conf) ([]byte, int, error) {
    72  	if req == nil {
    73  		return nil, 0, errors.New("delete_table.(Request)EndpointReqWithConf: receiver is nil")
    74  	}
    75  	delete_table := DeleteTable(*req)
    76  	return delete_table.EndpointReqWithConf(c)
    77  }
    78  
    79  // These implementations of EndpointReq use the global conf.
    80  
    81  func (delete_table *DeleteTable) EndpointReq() ([]byte, int, error) {
    82  	if delete_table == nil {
    83  		return nil, 0, errors.New("delete_table.(DeleteTable)EndpointReq: receiver is nil")
    84  	}
    85  	return delete_table.EndpointReqWithConf(&conf.Vals)
    86  }
    87  
    88  func (delete *Delete) EndpointReq() ([]byte, int, error) {
    89  	if delete == nil {
    90  		return nil, 0, errors.New("delete_table.(Delete)EndpointReq: receiver is nil")
    91  	}
    92  	delete_table := DeleteTable(*delete)
    93  	return delete_table.EndpointReqWithConf(&conf.Vals)
    94  }
    95  
    96  func (req *Request) EndpointReq() ([]byte, int, error) {
    97  	if req == nil {
    98  		return nil, 0, errors.New("delete_table.(Request)EndpointReq: receiver is nil")
    99  	}
   100  	delete_table := DeleteTable(*req)
   101  	return delete_table.EndpointReqWithConf(&conf.Vals)
   102  }