You are here

public static function ShareaholicUtilities::share_counts_api_connectivity_check in Share Buttons, Related Posts, Content Analytics - Shareaholic 8

Same name and namespace in other branches
  1. 7.3 utilities.php \ShareaholicUtilities::share_counts_api_connectivity_check()

Share Counts API Connectivity check

3 calls to ShareaholicUtilities::share_counts_api_connectivity_check()
ShareaholicAdmin::post_install in ./admin.php
This function will run post install tasks when a shareaholic flag is set
shareaholic_admin_advanced.tpl.php in templates/shareaholic_admin_advanced.tpl.php
shareaholic_admin_settings in ./shareaholic.module
Renders page for shareaholic app manager settings

File

./utilities.php, line 826

Class

ShareaholicUtilities

Code

public static function share_counts_api_connectivity_check() {

  // if we already checked and it is successful, then do not call the API again
  $share_counts_connect_check = self::get_option('share_counts_connect_check');
  if (isset($share_counts_connect_check) && $share_counts_connect_check == 'SUCCESS') {
    return $share_counts_connect_check;
  }
  $services_config = ShareaholicSeqShareCount::get_services_config();
  $services = array_keys($services_config);
  $param_string = implode('&services[]=', $services);
  $share_counts_api_url = url('shareaholic/api/share_counts/v1', array(
    'absolute' => TRUE,
  )) . '?action=shareaholic_share_counts_api&url=https%3A%2F%2Fwww.google.com%2F&services[]=' . $param_string;
  $cache_key = 'share_counts_api_connectivity_check';

  // fetch cached response if it exists or has not expired
  $response = ShareaholicCache::get($cache_key);
  if (!$response) {
    $response = ShareaholicHttp::send($share_counts_api_url, array(
      'method' => 'GET',
    ), true);
  }
  $response_status = self::get_share_counts_api_status($response);

  // if this was the first time we are doing this and it failed, disable
  // the share counts API
  if (empty($share_counts_connect_check) && $response_status == 'FAIL') {
    self::update_options(array(
      'disable_internal_share_counts_api' => 'on',
    ));
  }
  if ($response_status == 'SUCCESS') {
    ShareaholicCache::set($cache_key, $response, SHARE_COUNTS_CHECK_CACHE_LENGTH);
  }
  self::update_options(array(
    'share_counts_connect_check' => $response_status,
  ));
  return $response_status;
}