Completed
Push — master ( 27c584...7678fd )
by Andrii
13:30
created

SaleBulkCreate::create()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 13
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 9
c 1
b 0
f 0
dl 0
loc 13
rs 9.9666
cc 1
nc 1
nop 1
1
<?php
2
3
namespace hiqdev\billing\hiapi\sale\Create;
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 SaleBulkCreate
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($build->many(SaleCreateCommand::class))
26
            // XXX anybody can purchase? ->checkPermission('object.buy')
27
            ->middlewares(
28
                $build->repeat(CustomerLoader::class),
29
                $build->repeat(PlanLoader::class),
30
                $build->repeat(TargetLoader::class),
31
                $build->repeat(SaleCreateAction::class)
32
            )
33
            ->return($build->many(Sale::class))
34
        ;
35
    }
36
}
37