DONE: layout letter with letterhead and footer, notification for newly...

This commit is contained in:
ISMAIL MASSERAN
2026-06-28 02:16:49 +00:00
parent 94ecbe5887
commit 034ecf947f
400 changed files with 29802 additions and 5446 deletions
@@ -0,0 +1,60 @@
<?php
namespace Modules\MembershipApplication\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\JsonResponse;
use Modules\MembershipApplication\Http\Requests\LookupMemberRequest;
use Modules\MembershipApplication\Http\Requests\StoreMembershipApplicationRequest;
use Modules\MembershipApplication\Services\MembershipApplicationService;
use Modules\MembershipApplication\Transformers\MembershipApplicationResource;
class PublicMembershipApplicationController extends Controller
{
public function __construct(
protected MembershipApplicationService $membershipApplicationService
) {}
public function store(StoreMembershipApplicationRequest $request): JsonResponse
{
$documents = collect($request->file('documents', []))
->filter()
->all();
$application = $this->membershipApplicationService->submit(
$request->safe()->except(['documents']),
$documents
);
return response()->json([
'success' => true,
'message' => 'Permohonan keahlian berjaya dihantar.',
'data' => new MembershipApplicationResource($application),
], 201);
}
public function lookupMember(LookupMemberRequest $request): JsonResponse
{
$member = $this->membershipApplicationService->lookupMemberByIcNumber(
$request->validated('ic_number')
);
if (! $member) {
return response()->json([
'success' => false,
'message' => 'Ahli dengan nombor kad pengenalan ini tidak dijumpai.',
'data' => null,
]);
}
return response()->json([
'success' => true,
'message' => 'Ahli dijumpai.',
'data' => [
'id' => $member->id,
'name' => $member->name,
'ic_number' => $member->ic_number,
],
]);
}
}