/**
* resolves media id or object.
*
* @param int[]|MediaEntity[] $medias ids to resolve
* @param string $locale
*z
*
* @return MediaApi
*/
public function resolveMediasFunction($medias, $locale)
{
if (count($medias) === 0) {
return [];
}
$ids = [];
$entities = [];
$entitiesIndex = [];
for ($i = 0; $i < count($medias); ++$i) {
$media = $medias[$i];
if (is_object($media)) {
$entities[$i] = $this->resolveMediaObject($media, $locale);
} else {
$ids[] = $media;
$entitiesIndex[$media] = $i;
}
}
if (count($ids) > 0) {
foreach ($this->mediaManager->getByIds($ids, $locale) as $media) {
$entities[$entitiesIndex[$media->getId()]] = $media;
}
}
ksort($entities);
return array_values($entities);
}