Bobby Ross
04/06/2021, 5:02 PMFrank
Bobby Ross
04/06/2021, 5:17 PMBobby Ross
04/06/2021, 5:26 PMfunc (lambdaContext *lambdaContext) handler(ctx context.Context, req events.APIGatewayProxyRequest) (accounts.Response, error) {
reqAccountBody, err := parseAccountBody(req.Body)
_, err = lambdaContext.AccountService.CreateAccount(ctx, &reqAccountBody)
if err != nil {
return accounts.Fail(err, http.StatusInternalServerError)
}
return accounts.Success(nil, http.StatusOK)
}
Bobby Ross
04/06/2021, 5:27 PMfunc (r *DynamoRepository) CreateAccount(ctx context.Context, account *Account) (*AccountResponse, error) {
item, err := dynamodbattribute.MarshalMap(account)
if err != nil {
return nil, err
}
input := &dynamodb.PutItemInput{
Item: item,
TableName: aws.String(r.tableName),
ReturnValues: aws.String("ALL_NEW"),
}
accountRes := AccountResponse{}
accRes, err := r.ddb.PutItemWithContext(ctx, input)
if err := dynamodbattribute.UnmarshalMap(accRes.Attributes, &accountRes); err != nil {
fmt.Printf("err %#v", err)
return nil, err
}
return &accountRes, nil
}
Bobby Ross
04/06/2021, 5:31 PM// DynamoRepository for creating new dynamo factory
type DynamoRepository struct {
ddb dynamodbiface.DynamoDBAPI
tableName string
}
Frank
Bobby Ross
04/06/2021, 5:49 PMFrank
Bobby Ross
04/06/2021, 6:03 PMFrank
Bobby Ross
04/06/2021, 6:12 PMFrank
Bobby Ross
04/11/2021, 12:55 PMFrank