api token firebase

This commit is contained in:
pajri
2024-05-21 14:49:24 +07:00
parent f50a4f6409
commit 81311928da
4 changed files with 1913 additions and 86 deletions

View File

@@ -19,12 +19,13 @@ class AuthController extends Controller
{ {
private $url; private $url;
public function __construct() { public function __construct()
{
$this->url = $_ENV['LMS_APP_URL']; $this->url = $_ENV['LMS_APP_URL'];
} }
public function login(Request $request) public function login(Request $request)
{ {
$request->validate([ $request->validate([
// 'email' => 'email', // 'email' => 'email',
'phone_or_email' => 'required', 'phone_or_email' => 'required',
@@ -35,17 +36,17 @@ class AuthController extends Controller
]); ]);
// Login hit ke API linksehat, karena encrypt nya pake CI // Login hit ke API linksehat, karena encrypt nya pake CI
$response = Http::post($this->url.'login', [ $response = Http::post($this->url . 'login', [
'sEmail' => $request->phone_or_email, 'sEmail' => $request->phone_or_email,
'sPassword' => $request->password, 'sPassword' => $request->password,
'sRemember' => $request->remember 'sRemember' => $request->remember
]); ]);
$response = $response->json(); $response = $response->json();
if ($response['success']){ if ($response['success']) {
$user = User::with('detail') $user = User::with('detail')
->where('sEmail', $request->phone_or_email) ->where('sEmail', $request->phone_or_email)
->first(); ->first();
return Helper::responseJson( return Helper::responseJson(
data: [ data: [
'token' => $user->createToken('app')->plainTextToken, 'token' => $user->createToken('app')->plainTextToken,
@@ -58,18 +59,19 @@ class AuthController extends Controller
}; };
} }
public function forgetPassword(Request $request){ public function forgetPassword(Request $request)
{
$request->validate([ $request->validate([
'email' => 'required|email', 'email' => 'required|email',
]); ]);
// Login hit ke API linksehat, karena encrypt nya pake CI // Login hit ke API linksehat, karena encrypt nya pake CI
$response = Http::post($this->url.'forgot_password', [ $response = Http::post($this->url . 'forgot_password', [
'sEmail' => $request->email, 'sEmail' => $request->email,
]); ]);
$response = $response->json(); $response = $response->json();
if ($response['success']){ if ($response['success']) {
return Helper::responseJson( return Helper::responseJson(
data: [], data: [],
message: 'Message has been sent.' message: 'Message has been sent.'
@@ -79,7 +81,8 @@ class AuthController extends Controller
}; };
} }
public function resetPassword(Request $request){ public function resetPassword(Request $request)
{
$request->validate([ $request->validate([
'email' => 'required|email', 'email' => 'required|email',
'code' => 'required', 'code' => 'required',
@@ -87,14 +90,14 @@ class AuthController extends Controller
]); ]);
// Login hit ke API linksehat, karena encrypt nya pake CI // Login hit ke API linksehat, karena encrypt nya pake CI
$response = Http::post($this->url.'reset_password', [ $response = Http::post($this->url . 'reset_password', [
'sCode' => $request->code, 'sCode' => $request->code,
'sEmail' => $request->email, 'sEmail' => $request->email,
'sPassword' => $request->password, 'sPassword' => $request->password,
]); ]);
$response = $response->json(); $response = $response->json();
if ($response['success']){ if ($response['success']) {
return Helper::responseJson( return Helper::responseJson(
data: [], data: [],
message: 'Password telah di reset' message: 'Password telah di reset'
@@ -105,7 +108,7 @@ class AuthController extends Controller
} }
public function loginPhone(Request $request) public function loginPhone(Request $request)
{ {
$request->validate([ $request->validate([
'phone_or_email' => 'required', 'phone_or_email' => 'required',
'otp' => 'required', 'otp' => 'required',
@@ -116,9 +119,9 @@ class AuthController extends Controller
'sPhone' => $request->phone_or_email, 'sPhone' => $request->phone_or_email,
'sVerificationCode' => $request->otp 'sVerificationCode' => $request->otp
]) ])
->first(); ->first();
if ($user){ if ($user) {
$updateVericationCode = User::with('detail') $updateVericationCode = User::with('detail')
->where([ ->where([
@@ -145,15 +148,15 @@ class AuthController extends Controller
$user = User::with('detail') $user = User::with('detail')
->where('sPhone', $request->phone_or_email) ->where('sPhone', $request->phone_or_email)
->first(); ->first();
if ($user){ if ($user) {
// Request OTP ke API linksehat // Request OTP ke API linksehat
$response = Http::post($this->url.'generate_code', [ $response = Http::post($this->url . 'generate_code', [
'sPhone' => $request->phone_or_email 'sPhone' => $request->phone_or_email
]); ]);
$response = $response->json(); $response = $response->json();
return Helper::responseJson( return Helper::responseJson(
data: [ data: [
'otp' => $response['message'], 'otp' => $response['message'],
@@ -168,9 +171,6 @@ class AuthController extends Controller
message: 'Nomor tidak ditemukan' message: 'Nomor tidak ditemukan'
); );
} }
} }
public function register(Request $request) public function register(Request $request)
@@ -209,7 +209,7 @@ class AuthController extends Controller
return Helper::responseJson(message: 'Behasil Logout.'); return Helper::responseJson(message: 'Behasil Logout.');
} }
public function mockOtp(Request $request) public function mockOtp(Request $request)
{ {
$request->validate([ $request->validate([
@@ -256,4 +256,28 @@ class AuthController extends Controller
'token' => $user->createToken('app')->plainTextToken 'token' => $user->createToken('app')->plainTextToken
], message: 'Selamat Datang'); ], message: 'Selamat Datang');
} }
public function notificationToken(Request $request)
{
$user = Auth::user();
$origin = $request->origin;
$device_id = $request->device_id;
$type = $request->type;
$token = $request->token;
$status = $request->status;
$user->notificationTokens()->updateOrCreate([
'device_id' => $device_id,
], [
'origin' => $origin,
'device_id' => $device_id,
'type' => $type,
'token' => $token,
'status' => $status,
]);
return response()->json([
'message' => 'Token berhasil disimpan',
]);
}
} }

View File

@@ -34,7 +34,7 @@ use Modules\Linksehat\Http\Controllers\Api\Doctor\ChatDoctorController;
Broadcast::routes(['middleware' => ['auth:sanctum']]); Broadcast::routes(['middleware' => ['auth:sanctum']]);
Route::prefix('linksehat')->group(function () { Route::prefix('linksehat')->group(function () {
Route::get('dashboard/{query}/{limit?}', [DashboardController::class, 'index']); Route::get('dashboard/{query}/{limit?}', [DashboardController::class, 'index']);
Route::controller(SearchController::class)->group(function () { Route::controller(SearchController::class)->group(function () {
@@ -44,6 +44,7 @@ Route::prefix('linksehat')->group(function () {
Route::controller(AuthController::class)->group(function () { Route::controller(AuthController::class)->group(function () {
Route::post('otp-request', 'otpRequest'); Route::post('otp-request', 'otpRequest');
Route::post('notification-token', 'notificationToken');
Route::post('mock-otp', 'mockOtp'); Route::post('mock-otp', 'mockOtp');
Route::post('login', 'login'); Route::post('login', 'login');
Route::post('logout', 'logout'); Route::post('logout', 'logout');
@@ -99,7 +100,7 @@ Route::prefix('linksehat')->group(function () {
Route::get('home', 'index')->name('homes.index'); Route::get('home', 'index')->name('homes.index');
Route::get('home/hospital', 'listHospital')->name('homes.listHospital'); Route::get('home/hospital', 'listHospital')->name('homes.listHospital');
}); });
Route::controller(LivechatController::class)->group(function () { Route::controller(LivechatController::class)->group(function () {
Route::get('livechat', 'index')->name('livechats.index'); Route::get('livechat', 'index')->name('livechats.index');
Route::get('livechat/consultation', 'consultation')->name('livechats.consultation'); Route::get('livechat/consultation', 'consultation')->name('livechats.consultation');
@@ -114,15 +115,14 @@ Route::prefix('linksehat')->group(function () {
Route::controller(ChatController::class)->group(function () { Route::controller(ChatController::class)->group(function () {
Route::post('livechat/send-message', 'sendMessage'); Route::post('livechat/send-message', 'sendMessage');
Route::get('livechat/get-message', 'getMessage'); Route::get('livechat/get-message', 'getMessage');
Route::post('livechat/channel','createChannel'); Route::post('livechat/channel', 'createChannel');
Route::get('livechat/channel','listChannel'); Route::get('livechat/channel', 'listChannel');
Route::get('livechat/{id}/health-sertificate','downloadHealtcare'); Route::get('livechat/{id}/health-sertificate', 'downloadHealtcare');
}); });
Route::post('create-invoice-duitku', [DuitkuController::class, 'createInvoice']); Route::post('create-invoice-duitku', [DuitkuController::class, 'createInvoice']);
Route::post('check-status-duitku', [DuitkuController::class, 'checkStatus']); Route::post('check-status-duitku', [DuitkuController::class, 'checkStatus']);
}); });
Route::post('payment-method-duitku', [DuitkuController::class, 'paymentMethod']); Route::post('payment-method-duitku', [DuitkuController::class, 'paymentMethod']);
@@ -130,9 +130,9 @@ Route::prefix('linksehat')->group(function () {
Route::get('redirect-duitku', [DuitkuController::class, 'redirect']); Route::get('redirect-duitku', [DuitkuController::class, 'redirect']);
//DOCTOR API //DOCTOR API
Route::prefix('doctor')->group(function() { Route::prefix('doctor')->group(function () {
//Version 1.0 //Version 1.0
Route::prefix('v1')->group(function() { Route::prefix('v1')->group(function () {
Route::middleware(Authentication::class)->group(function () { Route::middleware(Authentication::class)->group(function () {
Route::controller(AuthDoctorController::class)->group(function () { Route::controller(AuthDoctorController::class)->group(function () {
Route::post('login', 'login'); Route::post('login', 'login');
@@ -163,7 +163,6 @@ Route::prefix('linksehat')->group(function () {
Route::post('resend-code', 'forgotPassword'); Route::post('resend-code', 'forgotPassword');
Route::post('reset-password', 'resetPassword'); Route::post('reset-password', 'resetPassword');
}); });
}); });
}); });;
;}); });

View File

@@ -14,6 +14,8 @@
"guzzlehttp/guzzle": "^7.2", "guzzlehttp/guzzle": "^7.2",
"h4cc/wkhtmltoimage-amd64": "^0.12.4", "h4cc/wkhtmltoimage-amd64": "^0.12.4",
"h4cc/wkhtmltopdf-amd64": "0.12.x", "h4cc/wkhtmltopdf-amd64": "0.12.x",
"kreait/firebase-php": "^6.9",
"laravel-notification-channels/fcm": "^2.1",
"laravel/framework": "^9.11", "laravel/framework": "^9.11",
"laravel/sanctum": "^2.15", "laravel/sanctum": "^2.15",
"laravel/socialite": "^5.5", "laravel/socialite": "^5.5",

1902
composer.lock generated

File diff suppressed because it is too large Load Diff