You are here

protected function JsonPathReplacer::addReplacementsForSubject in Subrequests 8.2

Same name and namespace in other branches
  1. 3.x src/JsonPathReplacer.php \Drupal\subrequests\JsonPathReplacer::addReplacementsForSubject()

Fill replacement values for a subrequest a subject and an structured token.

Parameters

array $match: The structured replacement token.

\Symfony\Component\HttpFoundation\Response $subject: The response object the token refers to.

array $token_replacements: The accumulated replacements. Adds items onto the array.

1 call to JsonPathReplacer::addReplacementsForSubject()
JsonPathReplacer::extractTokenReplacements in src/JsonPathReplacer.php
Extracts the token replacements for a given subrequest.

File

src/JsonPathReplacer.php, line 359

Class

JsonPathReplacer

Namespace

Drupal\subrequests

Code

protected function addReplacementsForSubject(array $match, Response $subject, $provided_id, array &$token_replacements) {
  $json_object = new JsonObject($subject
    ->getContent());
  $to_replace = $json_object
    ->get($match[2]) ?: [];
  $token = $match[0];

  // The replacements need to be strings. If not, then the replacement
  // is not valid.
  $this
    ->validateJsonPathReplacements($to_replace);
  $token_replacements[$provided_id] = empty($token_replacements[$provided_id]) ? [] : $token_replacements[$provided_id];
  $token_replacements[$provided_id][$token] = empty($token_replacements[$provided_id][$token]) ? [] : $token_replacements[$provided_id][$token];
  $token_replacements[$provided_id][$token] = array_merge($token_replacements[$provided_id][$token], $to_replace);
}