FOSSology  4.5.1
Open Source License Compliance by Open Source Software
HttpUtils.php
1 <?php
2 /*
3  SPDX-FileCopyrightText: © 2024 Siemens AG
4  Author:
5 
6  SPDX-License-Identifier: GPL-2.0-only
7 */
8 
9 namespace Fossology\Lib\Util;
10 
11 use GuzzleHttp\Client;
12 use GuzzleHttp\Exception\GuzzleException;
13 use GuzzleHttp\Exception\RequestException;
14 
15 class HttpUtils
16 {
24  public static function getGuzzleClient(array $SysConf, string $baseUri, string $token = "")
25  {
26  $proxy = [];
27  if (array_key_exists('http_proxy', $SysConf['FOSSOLOGY']) &&
28  !empty($SysConf['FOSSOLOGY']['http_proxy'])) {
29  $proxy['http'] = $SysConf['FOSSOLOGY']['http_proxy'];
30  }
31  if (array_key_exists('https_proxy', $SysConf['FOSSOLOGY']) &&
32  !empty($SysConf['FOSSOLOGY']['https_proxy'])) {
33  $proxy['https'] = $SysConf['FOSSOLOGY']['https_proxy'];
34  }
35  if (array_key_exists('no_proxy', $SysConf['FOSSOLOGY']) &&
36  !empty($SysConf['FOSSOLOGY']['no_proxy'])) {
37  $proxy['no'] = explode(',', $SysConf['FOSSOLOGY']['no_proxy']);
38  }
39 
40  $version = $SysConf['BUILD']['VERSION'];
41  $headers = ['User-Agent' => "fossology/$version"];
42  if (!empty($token)) {
43  $headers['Authorization'] = 'Bearer ' . $token;
44  }
45 
46  return new Client([
47  'http_errors' => false,
48  'proxy' => $proxy,
49  'base_uri' => $baseUri,
50  'headers' => $headers,
51  ]);
52  }
53 
61  public static function checkLicenseDBHealth(string $getHealth, $guzzleClient)
62  {
63  try {
64  $response = $guzzleClient->get($getHealth);
65  if ($response->getStatusCode() === 200) {
66  return true;
67  }
68  } catch (RequestException|GuzzleException $e) {
69  return false;
70  }
71 
72  return false;
73  }
74 }
static getGuzzleClient(array $SysConf, string $baseUri, string $token="")
Definition: HttpUtils.php:24
static checkLicenseDBHealth(string $getHealth, $guzzleClient)
Definition: HttpUtils.php:61