Issues (13)

src/Auth/SessionHandler.php (1 issue)

Labels
Severity
1
<?php
2
3
4
namespace FNDEV\vShpare\Auth;
5
6
use FNDEV\vShpare\Exceptions\CredentialException;
7
use FNDEV\vShpare\VmwareApiClient;
8
use GuzzleHttp\Client;
9
10
class SessionHandler
11
{
12
    public static ?Client $client=null;
13
    public static function getSession(VmwareApiClient $client){
14
        self::validateCredentials($client);
15
        return self::isSessionExist($client->credential) ? $client->credential['Vmware-Api-Session-Id'] : self::authRequest($client);
16
    }
17
    public static function authRequest(VmwareApiClient $client){
18
        $HttpClient=isset(static::$client) ? self::$client : new Client(
19
            [
20
                "verify"=>$client->ssl,
21
                "headers"=>[
22
                    "Content-Type"=>"application/x-www-form-urlencoded",
23
                    "Accept" => "application/json",
24
                    "Authorization"=>"Basic ".self::convertCredentials($client->credential)
25
                ]
26
            ]
27
        );
28
        $response=$HttpClient->request('GET',$client->getAuthUrl(),[
0 ignored issues
show
The method request() does not exist on null. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

28
        /** @scrutinizer ignore-call */ 
29
        $response=$HttpClient->request('GET',$client->getAuthUrl(),[

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
29
            "query"=>[
30
                "~method"=>"post"
31
            ]
32
        ]);
33
        return json_decode($response->getBody())->value;
34
    }
35
    public static function isSessionExist($credential){
36
        return array_key_exists("Vmware-Api-Session-Id",$credential);
37
    }
38
    public static function validateCredentials(VmwareApiClient $client)
39
    {
40
        if((array_key_exists("username",$client->credential) && array_key_exists("password",$client->credential)) or array_key_exists("Vmware-Api-Session-Id",$client->credential))
41
            return true;
42
        throw new CredentialException("required parameter you should send session-id or username-password for auth api ");
43
    }
44
    public static function convertCredentials($credentials){
45
        return base64_encode($credentials['username'].":".$credentials['password']);
46
    }
47
48
}