package middleware

import (
	"fmt"

	"github.com/juju/errors"
)

func loadFromNames(middlewares *[]Middleware, names []interface{}) error {
	for index, name := range names {
		name, ok := name.(string)
		if !ok {
			return errors.New("name is not a string")
		}

		(*middlewares)[index], ok = Middlewares[name]
		if !ok {
			return errors.New(fmt.Sprintf("%s in config of combine cannot be found", name))
		}
	}

	return nil
}
