Deploy Ladill Mini / deploy (push) Successful in 23s
Staff-facing counter register at pos.ladill.com with catalog cart, cash and MoMo/card checkout via Ladill Pay, CRM timeline/import, invoice prefill, and Merchant catalog import. Co-authored-by: Cursor <cursoragent@cursor.com>
58 lines
1.4 KiB
PHP
58 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace App\Services\Identity;
|
|
|
|
use Illuminate\Support\Facades\Http;
|
|
|
|
class IdentityClient
|
|
{
|
|
/** @return array<string, mixed> */
|
|
public function mailboxLinkStatus(string $publicId): array
|
|
{
|
|
$response = $this->request()->get($this->url('/identity/mailbox-link'), [
|
|
'user' => $publicId,
|
|
]);
|
|
|
|
$response->throw();
|
|
|
|
return (array) $response->json('data', []);
|
|
}
|
|
|
|
/** @return array<string, mixed> */
|
|
public function linkMailbox(string $publicId, string $mailboxAddress): array
|
|
{
|
|
$response = $this->request()->put($this->url('/identity/mailbox-link'), [
|
|
'user' => $publicId,
|
|
'mailbox_address' => $mailboxAddress,
|
|
]);
|
|
|
|
$response->throw();
|
|
|
|
return (array) $response->json('data', []);
|
|
}
|
|
|
|
/** @return array<string, mixed> */
|
|
public function unlinkMailbox(string $publicId): array
|
|
{
|
|
$response = $this->request()->delete($this->url('/identity/mailbox-link'), [
|
|
'user' => $publicId,
|
|
]);
|
|
|
|
$response->throw();
|
|
|
|
return (array) $response->json('data', []);
|
|
}
|
|
|
|
private function request()
|
|
{
|
|
return Http::withToken((string) config('identity.api_key'))
|
|
->acceptJson()
|
|
->timeout(15);
|
|
}
|
|
|
|
private function url(string $path): string
|
|
{
|
|
return rtrim((string) config('identity.api_url'), '/').$path;
|
|
}
|
|
}
|