Passed
Push — master ( c0f464...9c6e80 )
by Gabriel
11:21
created

CreateSessionFromResponse::handle()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 10
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 6
c 1
b 0
f 0
nc 1
nop 3
dl 0
loc 10
rs 10
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
 */
12
class CreateSessionFromResponse
13
{
14
    /**
15
     * @param $response
16
     * @param $model
17
     * @param $type
18
     * @return \ByTIC\Payments\Models\PurchaseSessions\PurchaseSessionTrait
19
     */
20
    public static function handle($response, $model, $type)
21
    {
22
        $sessions = PaymentsModels::sessions();
23
24
        /** @var IsPurchasableModelTrait $payment */
25
        $payment = $response->getModel();
26
        $session = $sessions->generateFromPurchaseType($payment, $type);
27
        $session->populateFromResponse($response);
0 ignored issues
show
Bug introduced by
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

27
        $session->/** @scrutinizer ignore-call */ 
28
                  populateFromResponse($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...
28
        $session->insert();
0 ignored issues
show
Bug introduced by
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

28
        $session->/** @scrutinizer ignore-call */ 
29
                  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...
Bug introduced by
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

28
        $session->/** @scrutinizer ignore-call */ 
29
                  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...
29
        return $session;
0 ignored issues
show
Bug Best Practice introduced by
The expression return $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...
30
    }
31
}