package utils

import (
	"fmt"
	"slices"

	"go.einride.tech/aip/ordering"
)

func CheckOrderBy(r ordering.Request, supportedField []string) error {
	orderBy, err := ordering.ParseOrderBy(r)
	if err != nil {
		return err
	}
	for _, field := range orderBy.Fields {
		if !slices.Contains(supportedField, field.Path) {
			return fmt.Errorf("unsupported field `%s`", field.Path)
		}
	}
	return nil
}
