public function GatsbyPreview::triggerRefresh in Gatsby Live Preview & Incremental Builds 2.0.x
Same name and namespace in other branches
- 8 src/GatsbyPreview.php \Drupal\gatsby\GatsbyPreview::triggerRefresh()
 
Triggers Gatsby refresh endpoint.
Parameters
string $preview_callback_url: The Gatsby URL to refresh.
object $json: Optional JSON object to post to the server.
string $path: The path used to trigger the refresh endpoint.
1 call to GatsbyPreview::triggerRefresh()
- GatsbyPreview::gatsbyUpdate in src/
GatsbyPreview.php  - Triggers the refreshing of Gatsby preview and incremental builds.
 
File
- src/
GatsbyPreview.php, line 186  
Class
- GatsbyPreview
 - Defines a class for generating Gatsby based previews.
 
Namespace
Drupal\gatsbyCode
public function triggerRefresh($preview_callback_url, $json = FALSE, $path = "") {
  // If the URL has a comma it means multiple end points need to be called.
  if (stripos($preview_callback_url, ',')) {
    $urls = array_map('trim', explode(',', $preview_callback_url));
    foreach ($urls as $url) {
      $this
        ->triggerRefresh($url, $json, $path);
    }
    return;
  }
  $data = [
    'timeout' => 1,
  ];
  // Optonally log the JSON data.
  $json_log = NULL;
  if (!empty($json)) {
    $data['json'] = $json;
    // Check for enabled setting and set up a logger debug message with JSON
    // object.
    $json_log = $this->configFactory
      ->get('gatsby.settings')
      ->get('log_json') ? $this->logger
      ->debug(json_encode($json)) : NULL;
  }
  try {
    $this->httpClient
      ->post($preview_callback_url . $path, $data);
    // Return logger with JSON object data.
    if (isset($json_log)) {
      return $json_log;
    }
  } catch (ConnectException $e) {
    // This is maintained for the legacy callback URL only.
    // Do nothing as no response is returned from the preview server.
  } catch (\Exception $e) {
    $this->logger
      ->error($e
      ->getMessage());
  }
}