mirror of
https://github.com/anikeen-com/id.git
synced 2026-11-02 05:39:35 +00:00
Bring the package up to date with the Anikeen ID API
Fixed (called endpoints that don't exist):
- charge(): POST v1/billing/charge (Stripe options aren't passed through anymore)
- Invoice::getInvoiceTemporaryUrl(): GET instead of a non-existent PUT
- OrderItems::create(): POST v1/orders/{order}/items
- createUser() / isEmailExisting(): admin endpoints with the app token
- sshKeysByUserId(): app endpoint; no longer returns the first user's keys for every user
- createOrderPreview(): country_iso goes into billing_address as the API expects
- public endpoints (products, order preview) work without a token
- SshKeys::find() results can be deleted
Added:
- Billable: sshKeys() (create, update, delete), billingOverview(), PaymentMethod::delete()
- AnikeenId: products(), boxes(), shipping labels (list, show, pdf, issue, ship, price list),
createOrderForUser(), createTransactionForUser(), findOrCreateSocialiteUser()
Requirements: PHP 8.2+, Laravel 11-13 (Laravel 10 and PHP 8.1 are end of life).
Docs generator handles union types; README regenerated.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
8de737641e
commit
9613d31a8d
22 files changed
+720
-108
No files matched your search
@@ -17,11 +17,11 @@ class Invoice extends BaseResource
|
||||
*
|
||||
* @throws Throwable
|
||||
*/
|
||||
public function getInvoiceTemporaryUrl(): string
|
||||
public function getInvoiceTemporaryUrl(): ?string
|
||||
{
|
||||
return $this->billable->anikeenId()
|
||||
->request('PUT', sprintf('v1/invoices/%s', $this->id))
|
||||
->request('GET', sprintf('v1/invoices/%s', $this->id))
|
||||
->data
|
||||
->temporary_url;
|
||||
->temporary_url ?? null;
|
||||
}
|
||||
}
|
||||
}␍
|
||||
@@ -28,12 +28,19 @@ class OrderItems extends BaseCollection
|
||||
* }>
|
||||
* } $attributes The order data:
|
||||
* - items: Array of order items, each with type, name, description, price, unit, and quantity
|
||||
*
|
||||
* Only trusted apps may add items, and only to draft orders. Returns the first created item.
|
||||
*
|
||||
* @throws Throwable
|
||||
*/
|
||||
public function create(string $orderId, array $attributes = []): OrderItem
|
||||
{
|
||||
return (new OrderItem(fn() => $this->billable->anikeenId()
|
||||
->request('POST', sprintf('v1/orders/%s', $orderId), $attributes)))
|
||||
return (new OrderItem(fn() => tap($this->billable->anikeenId()
|
||||
->request('POST', sprintf('v1/orders/%s/items', $orderId), $attributes), function ($result) {
|
||||
if (is_array($result->data)) {
|
||||
$result->data = $result->data[0] ?? null;
|
||||
}
|
||||
})))
|
||||
->setBillable($this->billable)
|
||||
->setParent($this->parent);
|
||||
}
|
||||
@@ -48,4 +55,4 @@ class OrderItems extends BaseCollection
|
||||
->setBillable($this->billable)
|
||||
->setParent($this->parent);
|
||||
}
|
||||
}
|
||||
}␍
|
||||
@@ -10,4 +10,16 @@ use Anikeen\Id\Concerns\HasBillable;
|
||||
class PaymentMethod extends BaseResource
|
||||
{
|
||||
use HasBillable;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove this payment method from the current user.
|
||||
*
|
||||
* @throws \Throwable
|
||||
*/
|
||||
public function delete(): bool
|
||||
{
|
||||
return $this->billable->anikeenId()
|
||||
->request('DELETE', sprintf('v1/payment-methods/%s', $this->id))
|
||||
->success();
|
||||
}
|
||||
}␍
|
||||
@@ -17,8 +17,18 @@ class SshKey extends BaseResource
|
||||
*
|
||||
* @throws Throwable
|
||||
*/
|
||||
/**
|
||||
* Rename the SSH key.
|
||||
*
|
||||
* @throws Throwable
|
||||
*/
|
||||
public function update(string $name): self
|
||||
{
|
||||
return (new self(fn() => $this->parent->put(sprintf('v1/ssh-keys/%s', $this->id), ['name' => $name])))->setParent($this->parent);
|
||||
}
|
||||
|
||||
public function delete(): bool
|
||||
{
|
||||
return $this->parent->delete(sprintf('v1/ssh-keys/%s', $this->id))->success();
|
||||
}
|
||||
}
|
||||
}␍
|
||||
@@ -29,6 +29,6 @@ class SshKeys extends BaseCollection
|
||||
*/
|
||||
public function find(string $id): ?SshKey
|
||||
{
|
||||
return (new SshKey(fn() => $this->parent->get(sprintf('v1/ssh-keys/%s', $id))));
|
||||
return (new SshKey(fn() => $this->parent->get(sprintf('v1/ssh-keys/%s', $id))))->setParent($this->parent);
|
||||
}
|
||||
}
|
||||
}␍
|
||||
Reference in new issue
Block a user