webparking / laravel-cash
Laravel API helper for CASH
Installs: 2 512
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 3
Forks: 1
Open Issues: 5
Requires
- php: ^7.4|^8.0
- ext-dom: *
- ext-simplexml: *
- ext-soap: *
- artisaninweb/laravel-soap: 0.3.0.10
- laravel/framework: ^7.30.4|^8.40.0
- myclabs/php-enum: ^1.7
- symfony/http-kernel: ^5.1.5
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- mockery/mockery: ^1.4
- orchestra/testbench: ^5|^6
- phpstan/phpstan: ^0.12.18
- roave/security-advisories: dev-latest
This package is auto-updated.
Last update: 2024-10-22 12:58:03 UTC
README
Attempt to connect the past and the future in a stable and manageable way. The wrapper is developed using the v3 API with credentials (and not using the generated token). I only worked out the mapping for the endpoints that I needed.
Installation
composer require webparking/laravel-cash
Usage
use Webparking\LaravelCash\Entities\Item; /** @var Item $item */ $item = app()->make(Item::class); // Get collection of items $items = $item->index(); // Fetch item 'foo' $item = $item->get('foo');
Note: the CASH API accepts a maximum of 100 requests per minute
Advanced usage
It's possible to add parameters to an index request. E.g.:
use Webparking\LaravelCash\Entities\Item; app()->make(Item::class)->index('X'); // Creates request for endpoint "2260X" app()->make(Item::class)->index('W|7'); // Creates request for endpoint "2260W|7"
Note: Parameter "X" is universal to all endpoints and causes the CASH response to include field names instead of only the codes.
Useful for testing.
Relations and customers
Customers
(2220) are a subset of relations
(0101). The customer entity connects you through to the customerGroup
and customerGroupTwo
.
CASH field definition reference
The notation is the letter + a number which indicated (in most cases) the max length. So L4 is a lowercase word of max 4 characters.
- S = Uppercase text
- L = Lowercase and uppercase text
- N = Numeric
- Y4 = Year (2 chars) & month (2 chars)
- Y2 = Year (2chars)
- I = Decimal (not sure how this notation works)
Development
This repository comes with a handy Docker Compose setup to aid in development.
To get started simply run the following and you're off to the races:
$ make start
Licence and Postcardware
This software is open source and licensed under the MIT license.
If you use this software in your daily development we would appreciate to receive a postcard of your hometown.
Please send it to: Webparking BV, Cypresbaan 31a, 2908 LT Capelle aan den IJssel, The Netherlands