Passed
Push — master ( ebb653...69cfe7 )
by Andrii
12:58
created

SaleClose::__invoke()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 1
c 1
b 0
f 0
dl 0
loc 3
rs 10
cc 1
nc 1
nop 1
1
<?php
2
3
namespace hiqdev\billing\hiapi\sale\Close;
4
5
use hiapi\endpoints\Module\Multitenant\Tenant;
6
use hiapi\Core\Endpoint\BuilderFactory;
7
use hiapi\Core\Endpoint\Endpoint;
8
use hiapi\Core\Endpoint\EndpointBuilder;
9
use hiqdev\php\billing\sale\Sale;
10
use hiqdev\billing\hiapi\customer\CustomerLoader;
11
use hiqdev\billing\hiapi\plan\PlanLoader;
12
use hiqdev\billing\hiapi\target\TargetLoader;
13
14
final class SaleClose
15
{
16
    public function __invoke(BuilderFactory $build): Endpoint
17
    {
18
        return $this->create($build)->build();
19
    }
20
21
    public function create(BuilderFactory $build): EndpointBuilder
22
    {
23
        return $build->endpoint(self::class)
24
            ->exportTo(Tenant::ALL)
25
            ->take(SaleCloseCommand::class)
26
            // XXX anybody can purchase? ->checkPermission('object.buy')
27
            ->middlewares(
28
                CustomerLoader::class,
29
                PlanLoader::class,
30
                TargetLoader::class,
31
                $build->call(SaleCloseAction::class)
32
            )
33
            ->return(Sale::class)
34
        ;
35
    }
36
}
37