maxipost / core-api-library
There is no license information available for the latest version (v1.4.3) of this package.
Client library for MXP Core API
v1.4.3
2019-07-17 03:26 UTC
Requires
- php: >=7.1
- ext-json: *
- guzzlehttp/guzzle: ^5.3
- maxipost/core-domain: ^1.5
- maxipost/core-strategy-factories: ^1.4
- maxipost/form-strategy: ^1.1
Requires (Dev)
- phpstan/phpstan: ^0.11
- phpstan/phpstan-phpunit: ^0.11.0
- phpstan/phpstan-strict-rules: ^0.11
- phpunit/phpunit: ^7.0.1
This package is not auto-updated.
Last update: 2019-11-06 06:59:05 UTC
README
composer require maxipost/core-api-library
Configure
If you need to configure additional paths, they will be merged with default paths, not overridden.
$config = new MXP\CoreApi\Config(
[
'paths' => [
'ClassName::class' => '/url'
],
'url' => 'http://url.to.somewhere',
'version' => 'v1'
]
);
Default paths
WarehouseCreateService::class => '/warehouse',
WarehouseGetService::class => '/warehouse',
WarehousesGetService::class => '/warehouse/:id',
WarehouseUpdateService::class => '/warehouse/:id',
DeliveryZoneCreateService::class => '/deliveryZone',
DeliveryZoneGetService::class => '/deliveryZone',
DeliveryZonesGetService::class => '/deliveryZone/:id',
DeliveryZoneUpdateService::class => '/deliveryZone/:id',
ContractCreateService::class => '/contract',
ContractGetService::class => '/contract',
ContractsGetService::class => '/contract/:id',
ContractUpdateService::class => '/contract/:id',
RouteCreateService::class => '/route',
RouteGetService::class => '/route',
RoutesGetService::class => '/route/:id',
RouteUpdateService::class => '/route/:id',
CounterpartyCreateService::class => '/counterparty',
CounterpartyGetService::class => '/counterparty',
CounterpartiesGetService::class => '/counterparties/:id',
CounterpartyUpdateService::class => '/counterparty/:id',
OrderServicePointCreateService::class => '/orderServicePoint',
OrderServicePointGetService::class => '/orderServicePoint',
OrderServicePointsGetService::class => '/orderServicePoint/:id',
OrderServicePointUpdateService::class => '/orderServicePoint/:id',
CourierCreateService::class => '/courier',
CourierGetService::class => '/courier',
CouriersGetService::class => '/courier/:id',
CourierUpdateService::class => '/courier/:id',
LegalPersonCreateService::class => '/legalPerson',
LegalPersonGetService::class => '/legalPerson',
LegalPersonsGetService::class => '/legalPerson/:id',
LegalPersonUpdateService::class => '/legalPerson/:id',
OrderCreateService::class => '/order',
OrderGetService::class => '/order',
OrdersGetService::class => '/order/:id',
OrderUpdateService::class => '/order/:id',
Usage
Contracts example
You need to use $config from "Configure" section
Create
$contractCreateService = new MXP\CoreApi\Application\Contract\ContractCreateService(
$config,
new MXP\CoreApi\Request\CommandRequestExecutor(),
new Maxipost\CoreStrategyFactories\ContractStrategyFactory(
new Maxipost\FormStrategy\FormStrategyBuilder()
)
);
$contractDto = Maxipost\CoreDomain\Contract\Contract();
$contractId = $contractCreateService->execute($contractDto);
Update
$contractUpdateService = new MXP\CoreApi\Application\Contract\ContractUpdateService(
$config,
new MXP\CoreApi\Request\CommandRequestExecutor(),
new Maxipost\CoreStrategyFactories\ContractStrategyFactory(
new Maxipost\FormStrategy\FormStrategyBuilder()
)
);
$contractDto = Maxipost\CoreDomain\Contract\Contract();
$contractId = $contractUpdateService->execute($contractDto);
Get one
$contractGetService = new MXP\CoreApi\Application\Contract\ContractGetService(
$config,
new MXP\CoreApi\Request\QueryRequestExecutor(),
new Maxipost\CoreStrategyFactories\ContractStrategyFactory(
new Maxipost\FormStrategy\FormStrategyBuilder()
)
);
$contractId = 1489;
$contract = $contractGetService->execute($contractId);
Get many
$contractGetService = new MXP\CoreApi\Application\Contract\ContractsGetService(
$config,
new MXP\CoreApi\Request\QueryRequestExecutor(),
new Maxipost\CoreStrategyFactories\ContractStrategyFactory(
new Maxipost\FormStrategy\FormStrategyBuilder()
)
);
$params = [];
$contracts = $contractGetService->execute($params);