164 lines
4.6 KiB
PHP
164 lines
4.6 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Services\Api\CardMemberService;
|
|
use Illuminate\Http\Request;
|
|
|
|
class CardMemberController extends Controller
|
|
{
|
|
protected $cardMemberService;
|
|
|
|
public function __construct(CardMemberService $cardMemberService)
|
|
{
|
|
$this->cardMemberService = $cardMemberService;
|
|
}
|
|
|
|
public function index()
|
|
{
|
|
$response = $this->cardMemberService->getAllMembers();
|
|
|
|
if (!$response['success']) {
|
|
return back()->with('error', $response['message']);
|
|
}
|
|
|
|
return view('pages.member-management.index', [
|
|
'members' => $response['data']
|
|
]);
|
|
}
|
|
|
|
public function create()
|
|
{
|
|
$cardTypes = $this->cardMemberService->getCardTypes();
|
|
|
|
return view('pages.member-management.create', [
|
|
'cardTypes' => $cardTypes['data'] ?? []
|
|
]);
|
|
}
|
|
|
|
public function store(Request $request)
|
|
{
|
|
$response = $this->cardMemberService->createMember($request->all());
|
|
|
|
if (!$response['success']) {
|
|
return back()->withInput()->with('error', $response['message']);
|
|
}
|
|
|
|
return redirect()->route('card-members.index')
|
|
->with('success', 'Card member created successfully');
|
|
}
|
|
|
|
public function edit($id)
|
|
{
|
|
$memberResponse = $this->cardMemberService->getMember($id);
|
|
$cardTypesResponse = $this->cardMemberService->getCardTypes();
|
|
|
|
if (!$memberResponse['success']) {
|
|
return back()->with('error', $memberResponse['message']);
|
|
}
|
|
|
|
return view('pages.member-management.edit', [
|
|
'member' => $memberResponse['data'],
|
|
'cardTypes' => $cardTypesResponse['data'] ?? []
|
|
]);
|
|
}
|
|
|
|
public function update(Request $request, $id)
|
|
{
|
|
$response = $this->cardMemberService->updateMember($id, $request->all());
|
|
|
|
if (!$response['success']) {
|
|
return back()->withInput()->with('error', $response['message']);
|
|
}
|
|
|
|
return redirect()->route('card-members.index')
|
|
->with('success', 'Card member updated successfully');
|
|
}
|
|
|
|
public function destroy($id)
|
|
{
|
|
$response = $this->cardMemberService->deleteMember($id);
|
|
|
|
if (!$response['success']) {
|
|
return back()->with('error', $response['message']);
|
|
}
|
|
|
|
return redirect()->route('card-members.index')
|
|
->with('success', 'Card member deleted successfully');
|
|
}
|
|
|
|
public function cardTypes()
|
|
{
|
|
$response = $this->cardMemberService->getCardTypes();
|
|
|
|
if (!$response['success']) {
|
|
return back()->with('error', $response['message']);
|
|
}
|
|
|
|
return view('pages.add-card-types', [
|
|
'cardTypes' => $response['data']
|
|
]);
|
|
}
|
|
|
|
public function storeCardType(Request $request)
|
|
{
|
|
$response = $this->cardMemberService->createCardType($request->all());
|
|
|
|
if (!$response['success']) {
|
|
return back()->withInput()->with('error', $response['message']);
|
|
}
|
|
|
|
return redirect()->route('card-types.index')
|
|
->with('success', 'Card type created successfully');
|
|
}
|
|
|
|
public function updateCardType(Request $request, $id)
|
|
{
|
|
$response = $this->cardMemberService->updateCardType($id, $request->all());
|
|
|
|
if (!$response['success']) {
|
|
return back()->withInput()->with('error', $response['message']);
|
|
}
|
|
|
|
return redirect()->route('card-types.index')
|
|
->with('success', 'Card type updated successfully');
|
|
}
|
|
|
|
public function deleteCardType($id)
|
|
{
|
|
$response = $this->cardMemberService->deleteCardType($id);
|
|
|
|
if (!$response['success']) {
|
|
return back()->with('error', $response['message']);
|
|
}
|
|
|
|
return redirect()->route('card-types.index')
|
|
->with('success', 'Card type deleted successfully');
|
|
}
|
|
|
|
public function topUpHistory(Request $request)
|
|
{
|
|
$memberId = $request->query('member_id');
|
|
$response = $this->cardMemberService->getTopUpHistory($memberId);
|
|
|
|
if (!$response['success']) {
|
|
return back()->with('error', $response['message']);
|
|
}
|
|
|
|
return view('pages.top-up', [
|
|
'history' => $response['data']
|
|
]);
|
|
}
|
|
|
|
public function processTopUp(Request $request)
|
|
{
|
|
$response = $this->cardMemberService->topUp($request->all());
|
|
|
|
if (!$response['success']) {
|
|
return back()->withInput()->with('error', $response['message']);
|
|
}
|
|
|
|
return redirect()->route('top-up.index')
|
|
->with('success', 'Top-up processed successfully');
|
|
}
|
|
}
|