/**
  * Get used languages in a colPos of a page
  *
  * @param ServerRequestInterface $request
  * @param ResponseInterface $response
  * @return ResponseInterface
  */
 public function getUsedLanguagesInPageAndColumn(ServerRequestInterface $request, ResponseInterface $response)
 {
     $params = $request->getQueryParams();
     if (!isset($params['pageId'], $params['colPos'], $params['languageId'])) {
         $response = $response->withStatus(500);
         return $response;
     }
     $pageId = (int) $params['pageId'];
     $colPos = (int) $params['colPos'];
     $languageId = (int) $params['languageId'];
     /** @var TranslationConfigurationProvider $translationProvider */
     $translationProvider = GeneralUtility::makeInstance(TranslationConfigurationProvider::class);
     $systemLanguages = $translationProvider->getSystemLanguages($pageId);
     $availableLanguages = [];
     // First check whether column has localized records
     $elementsInColumnCount = $this->localizationRepository->getLocalizedRecordCount($pageId, $colPos, $languageId);
     if ($elementsInColumnCount === 0) {
         $fetchedAvailableLanguages = $this->localizationRepository->fetchAvailableLanguages($pageId, $colPos, $languageId);
         $availableLanguages[] = $systemLanguages[0];
         foreach ($fetchedAvailableLanguages as $language) {
             if (isset($systemLanguages[$language['uid']])) {
                 $availableLanguages[] = $systemLanguages[$language['uid']];
             }
         }
     } else {
         $result = $this->localizationRepository->fetchOriginLanguage($pageId, $colPos, $languageId);
         $availableLanguages[] = $systemLanguages[$result['sys_language_uid']];
     }
     // Pre-render all flag icons
     foreach ($availableLanguages as &$language) {
         if ($language['flagIcon'] === 'empty-empty') {
             $language['flagIcon'] = '';
         } else {
             $language['flagIcon'] = $this->iconFactory->getIcon($language['flagIcon'], Icon::SIZE_SMALL)->render();
         }
     }
     $response->getBody()->write(json_encode($availableLanguages));
     return $response;
 }