You are here

public function LingotekFake::downloadDocument in Lingotek Translation 4.0.x

Same name and namespace in other branches
  1. 8 tests/modules/lingotek_test/src/LingotekFake.php \Drupal\lingotek_test\LingotekFake::downloadDocument()
  2. 8.2 tests/modules/lingotek_test/src/LingotekFake.php \Drupal\lingotek_test\LingotekFake::downloadDocument()
  3. 3.0.x tests/modules/lingotek_test/src/LingotekFake.php \Drupal\lingotek_test\LingotekFake::downloadDocument()
  4. 3.1.x tests/modules/lingotek_test/src/LingotekFake.php \Drupal\lingotek_test\LingotekFake::downloadDocument()
  5. 3.2.x tests/modules/lingotek_test/src/LingotekFake.php \Drupal\lingotek_test\LingotekFake::downloadDocument()
  6. 3.3.x tests/modules/lingotek_test/src/LingotekFake.php \Drupal\lingotek_test\LingotekFake::downloadDocument()
  7. 3.4.x tests/modules/lingotek_test/src/LingotekFake.php \Drupal\lingotek_test\LingotekFake::downloadDocument()
  8. 3.5.x tests/modules/lingotek_test/src/LingotekFake.php \Drupal\lingotek_test\LingotekFake::downloadDocument()
  9. 3.6.x tests/modules/lingotek_test/src/LingotekFake.php \Drupal\lingotek_test\LingotekFake::downloadDocument()
  10. 3.7.x tests/modules/lingotek_test/src/LingotekFake.php \Drupal\lingotek_test\LingotekFake::downloadDocument()
  11. 3.8.x tests/modules/lingotek_test/src/LingotekFake.php \Drupal\lingotek_test\LingotekFake::downloadDocument()

Gets the translation of a document for a given locale.

Parameters

string $doc_id: The document ID in Lingotek.

$locale: The locale we want to know the translation status.

Return value

array Returns array with the content of the document.

Throws

\Drupal\lingotek\Exception\LingotekDocumentNotFoundException

Overrides LingotekInterface::downloadDocument

File

tests/modules/lingotek_test/src/LingotekFake.php, line 331

Class

LingotekFake

Namespace

Drupal\lingotek_test

Code

public function downloadDocument($doc_id, $locale) {
  if (\Drupal::state()
    ->get('lingotek.must_error_in_download', FALSE)) {
    throw new LingotekApiException('Error was forced.');
  }
  if (\Drupal::state()
    ->get('lingotek.must_document_not_found_error_download', FALSE)) {
    throw new LingotekDocumentNotFoundException($doc_id . ' not found. Error was forced.');
  }

  // We need to avoid this in some cases.
  if (\Drupal::state()
    ->get('lingotek.document_completion', NULL) === NULL) {
    $requested_locales = \Drupal::state()
      ->get('lingotek.requested_locales', []);
    if (!in_array($locale, $requested_locales[$doc_id])) {
      throw new LingotekApiException('Locale was not requested before.');
    }
  }
  \Drupal::state()
    ->set('lingotek.downloaded_locale', $locale);
  $type = \Drupal::state()
    ->get('lingotek.uploaded_content_type', 'node');
  $typeWithLocale = $type . '.' . $locale;
  $path = drupal_get_path('module', 'lingotek') . '/tests/modules/lingotek_test/document_responses/' . $typeWithLocale . '.json';
  if (!file_exists($path)) {
    $path = drupal_get_path('module', 'lingotek') . '/tests/modules/lingotek_test/document_responses/' . $type . '.json';
  }
  $input = file_get_contents($path);
  $dataReplacements = \Drupal::state()
    ->get('lingotek.data_replacements', []);
  if (!empty($dataReplacements)) {
    foreach ($dataReplacements as $original => $new) {
      $input = str_replace($original, $new, $input);
    }
  }
  return json_decode($input, TRUE);
}