Issues (193)

GatewayNotifications/CreateSessionFromResponse.php (4 issues)

1
<?php
2
3
namespace ByTIC\Payments\Actions\GatewayNotifications;
4
5
use ByTIC\Payments\Models\Purchase\Traits\IsPurchasableModelTrait;
6
use ByTIC\Payments\Utility\PaymentsModels;
7
8
/**
9
 * Class CreateSessionFromResponse
10
 * @package ByTIC\Payments\Actions\GatewayNotifications
11
 * @internal
12
 */
13
class CreateSessionFromResponse
14
{
15
    /**
16
     * @param NotificationData $notification
17
     * @return \ByTIC\Payments\Models\PurchaseSessions\PurchaseSessionTrait
18
     */
19
    public static function handle(NotificationData $notification)
20
    {
21
        $sessions = PaymentsModels::sessions();
22
23
        $notification->session = $sessions->generateFromPurchaseType($notification->purchase, $notification->type);
24
        $notification->session->populateFromResponse($notification->response);
0 ignored issues
show
The method populateFromResponse() does not exist on Nip\Records\Collections\Collection. ( Ignorable by Annotation )

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

24
        $notification->session->/** @scrutinizer ignore-call */ 
25
                                populateFromResponse($notification->response);

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...
25
        $notification->session->insert();
0 ignored issues
show
The method insert() does not exist on Nip\Records\Collections\Collection. ( Ignorable by Annotation )

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

25
        $notification->session->/** @scrutinizer ignore-call */ 
26
                                insert();

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...
The call to Nip\Records\AbstractModels\RecordManager::insert() has too few arguments starting with model. ( Ignorable by Annotation )

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

25
        $notification->session->/** @scrutinizer ignore-call */ 
26
                                insert();

This check compares calls to functions or methods with their respective definitions. If the call has less arguments than are defined, it raises an issue.

If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress. Please note the @ignore annotation hint above.

Loading history...
26
        return $notification->session;
0 ignored issues
show
Bug Best Practice introduced by
The expression return $notification->session also could return the type Nip\Records\AbstractMode...ections\Collection|true which is incompatible with the documented return type ByTIC\Payments\Models\Pu...ns\PurchaseSessionTrait.
Loading history...
27
    }
28
}
29