func translateLegacyQueryInput()

in dax/internal/client/legacy.go [155:200]


func translateLegacyQueryInput(input *dynamodb.QueryInput) (*dynamodb.QueryInput, error) {
	pf, err := hasAttributesToGet(input.AttributesToGet, input.ProjectionExpression)
	if err != nil {
		return input, err
	}
	ff, err := hasFilter(input.QueryFilter, input.FilterExpression)
	if err != nil {
		return input, err
	}
	kf, err := hasFilter(input.KeyConditions, input.KeyConditionExpression)
	if err != nil {
		return input, err
	}
	if !pf && !ff && !kf {
		return input, nil
	}

	output := input
	if pf {
		output.ProjectionExpression, output.ExpressionAttributeNames, err =
			translateAttributesToGet(output.AttributesToGet, output.ExpressionAttributeNames)
		if err != nil {
			return input, err
		}
		output.AttributesToGet = nil
	}
	if ff {
		output.FilterExpression, output.ExpressionAttributeNames, output.ExpressionAttributeValues, err =
			translateFilter(output.ConditionalOperator, output.QueryFilter, output.ExpressionAttributeNames, output.ExpressionAttributeValues, false)
		if err != nil {
			return input, err
		}
		output.ConditionalOperator = ""
		output.QueryFilter = nil
	}
	if kf {
		output.KeyConditionExpression, output.ExpressionAttributeNames, output.ExpressionAttributeValues, err =
			translateFilter(types.ConditionalOperatorAnd, output.KeyConditions, output.ExpressionAttributeNames, output.ExpressionAttributeValues, true)
		if err != nil {
			return input, err
		}
		output.KeyConditions = nil
	}

	return output, nil
}