in payment-credit/main.go [79:109]
func getTransaction(ctx context.Context, orderID string) (models.Payment, error) {
payment := models.Payment{}
input := &dynamodb.QueryInput{
ExpressionAttributeValues: map[string]*dynamodb.AttributeValue{
":v1": {
S: aws.String(orderID),
},
":v2": {
S: aws.String("Debit"),
},
},
KeyConditionExpression: aws.String("order_id = :v1 AND payment_type = :v2"),
TableName: aws.String(os.Getenv("TABLE_NAME")),
IndexName: aws.String("orderIDIndex"),
}
// Get payment transaction from database
result, err := dynamoDB.QueryWithContext(ctx, input)
if err != nil {
return payment, err
}
err = dynamodbattribute.UnmarshalMap(result.Items[0], &payment)
if err != nil {
return payment, fmt.Errorf("failed to DynamoDB unmarshal Payment, %v", err)
}
return payment, nil
}