func IndexLookup()

in create_titleid/idmapping.go [16:38]


func IndexLookup(ddbClient *dynamodb.Client, tableName *string, index string, expr *expression.Expression) (int32, []string, error) {
	params := dynamodb.QueryInput{
		TableName:                 tableName,
		ExpressionAttributeNames:  expr.Names(),
		ExpressionAttributeValues: expr.Values(),
		IndexName:                 aws.String(index),
		KeyConditionExpression:    expr.KeyCondition(),
	}
	response, err := ddbClient.Query(context.Background(), &params)
	if err != nil {
		return -1, nil, err
	}

	knownIdList := make([]string, 0)
	for _, r := range response.Items {
		if contentId, haveContentId := r["contentid"]; haveContentId {
			if numericValue, isNumeric := contentId.(*types.AttributeValueMemberN); isNumeric {
				knownIdList = append(knownIdList, numericValue.Value)
			}
		}
	}
	return response.Count, knownIdList, nil
}