Files
aso/Modules/Linksehat/Routes/api.php
Linksehat Staging Server 70fc1579e7 update
2024-07-12 08:41:18 +07:00

169 lines
8.8 KiB
PHP
Executable File

<?php
use Modules\Linksehat\Http\Controllers\Api\AppointmentController;
use Modules\Linksehat\Http\Controllers\Api\AuthController;
use Modules\Linksehat\Http\Controllers\Api\DashboardController;
use Modules\Linksehat\Http\Controllers\Api\AutocompleteController;
use Modules\Linksehat\Http\Controllers\Api\DoctorController;
use Modules\Linksehat\Http\Controllers\Api\DuitkuController;
use Modules\Linksehat\Http\Controllers\Api\ChatController;
use Modules\Linksehat\Http\Controllers\Api\HospitalController;
use Modules\Linksehat\Http\Controllers\Api\NotificationTokenController;
use Modules\Linksehat\Http\Controllers\Api\PersonController;
use Modules\Linksehat\Http\Controllers\Api\ProfileController;
use Modules\Linksehat\Http\Controllers\Api\SearchController;
use Modules\Linksehat\Http\Controllers\Api\SpecialityController;
use Modules\Linksehat\Http\Controllers\Api\LinkingController;
use Modules\Linksehat\Http\Controllers\Api\HomeController;
use Modules\Linksehat\Http\Controllers\Api\LivechatController;
use Modules\Linksehat\Http\Middleware\Doctor\Authentication;
use Modules\Linksehat\Http\Middleware\Doctor\Authorization;
use Modules\Linksehat\Http\Controllers\Api\Doctor\AuthDoctorController;
use Modules\Linksehat\Http\Controllers\Api\Doctor\ProfileDoctorController;
use Modules\Linksehat\Http\Controllers\Api\Doctor\ChatDoctorController;
/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/
Broadcast::routes(['middleware' => ['auth:sanctum']]);
Route::prefix('linksehat')->group(function () {
Route::get('dashboard/{query}/{limit?}', [DashboardController::class, 'index']);
Route::controller(SearchController::class)->group(function () {
Route::get('search-person-speciality', 'searchSpecialityOrPerson');
Route::get('search-hospital', 'searchHospital');
});
Route::controller(AuthController::class)->group(function () {
Route::post('otp-request', 'otpRequest');
Route::post('mock-otp', 'mockOtp');
Route::post('login', 'login');
Route::post('logout', 'logout');
Route::post('login-phone', 'loginPhone');
Route::post('register', 'register');
Route::post('forget-password', 'forgetPassword');
Route::post('reset-password', 'resetPassword');
Route::get('social-login/{provider}', 'redirectSocialLogin');
Route::get('social-login/{provider}/callback', 'handleSocialLoginCallback');
});
Route::controller(SpecialityController::class)->group(function () {
Route::get('specialities', 'index');
Route::get('list-specialities', 'listSpeciality');
});
Route::controller(HospitalController::class)->group(function () {
Route::get('hospitals', 'index');
Route::get('hospitals/{id}', 'show');
});
Route::controller(DoctorController::class)->group(function () {
Route::get('doctors/online', 'index')->name('doctors.online');
Route::get('doctors', 'index')->name('doctors.index');
Route::post('doctors/{id}/schedule', 'schedule')->name('doctors.schedule');
Route::get('doctors/{id}', 'show')->name('doctors.show');
});
Route::middleware(['auth:sanctum', 'linksehat.old.auth'])->group(function () {
Route::post('notification-token', [AuthController::class,'notificationToken']);
Route::get('profile/{id}', [ProfileController::class, 'index'])->name('profile');
Route::get('change-profile/{id}', [ProfileController::class, 'changeProfile'])->name('change-profile');
Route::post('profile', [ProfileController::class, 'update'])->name('profile.update');
Route::post('profile-add', [ProfileController::class, 'store'])->name('profile.store');
// Route::post('notification-tokens/delete/{id}', [NotificationTokenController::class, 'destroy'])->name('profile.delete.token');
// Route::post('notification-tokens', [NotificationTokenController::class, 'store'])->name('profile.store.token');
Route::apiResource('appointment', AppointmentController::class);
Route::apiResource('families', PersonController::class)->except(['destroy']);
Route::get('autocomplete/marital_status', [AutocompleteController::class, 'maritalStatus']);
Route::get('autocomplete/blood_type', [AutocompleteController::class, 'bloodType']);
Route::get('autocomplete/relationship', [AutocompleteController::class, 'relationship']);
Route::get('autocomplete/corporate', [AutocompleteController::class, 'corporate']);
Route::get('autocomplete/drugs', [AutocompleteController::class, 'drugList']);
Route::get('autocomplete/units', [AutocompleteController::class, 'unitList']);
Route::get('autocomplete/diagnosis', [AutocompleteController::class, 'diagnosis']);
Route::post('manual-linking', [LinkingController::class, 'linkingValidate']);
Route::get('card/{member_id}', [LinkingController::class, 'card']);
Route::get('card/{member_id}/{log_id}', [LinkingController::class, 'card_detail']);
Route::controller(HomeController::class)->group(function () {
Route::get('home', 'index')->name('homes.index');
Route::get('home/hospital', 'listHospital')->name('homes.listHospital');
});
Route::controller(LivechatController::class)->group(function () {
Route::get('livechat', 'index')->name('livechats.index');
Route::get('livechat/consultation', 'consultation')->name('livechats.consultation');
Route::post('livechat/consultation-request', 'consultation_request')->name('livechats.consultation-request');
Route::get('livechat/consultation-request/{id}', 'consultation_request_show');
Route::get('livechat/consultation-request/consultation-payment-choose/{id}', 'consultation_payment_choose');
Route::get('livechat/consultation-request/consultation-payment-check/{id}', 'consultation_check_payment');
Route::post('livechat/consultation-payment', 'consultation_payment');
});
Route::controller(ChatController::class)->group(function () {
Route::post('livechat/send-message', 'sendMessage');
Route::get('livechat/get-message', 'getMessage');
Route::post('livechat/channel', 'createChannel');
Route::get('livechat/channel', 'listChannel');
Route::get('livechat/{id}/health-sertificate', 'downloadHealtcare');
});
Route::post('create-invoice-duitku', [DuitkuController::class, 'createInvoice']);
Route::post('check-status-duitku', [DuitkuController::class, 'checkStatus']);
});
Route::post('payment-method-duitku', [DuitkuController::class, 'paymentMethod']);
Route::post('callback-duitku', [DuitkuController::class, 'callback']);
Route::get('redirect-duitku', [DuitkuController::class, 'redirect']);
//DOCTOR API
Route::prefix('doctor')->group(function () {
//Version 1.0
Route::prefix('v1')->group(function () {
Route::middleware(Authentication::class)->group(function () {
Route::controller(AuthDoctorController::class)->group(function () {
Route::post('login', 'login');
});
});
Route::middleware('auth:sanctum')->group(function () {
Route::middleware(Authorization::class)->group(function () {
Route::controller(AuthDoctorController::class)->group(function () {
Route::post('logout', 'logout');
Route::post('forgot-password', 'forgotPassword');
});
Route::controller(ProfileDoctorController::class)->group(function () {
Route::get('get-profile', 'getProfile');
});
Route::controller(ChatDoctorController::class)->group(function () {
Route::get('chat', 'getChat');
Route::post('decline', 'declineChat');
Route::post('approve', 'approveChat');
Route::post('end', 'endChat');
Route::post('summary', 'summaryChat');
Route::get('chat/{id}', 'getChatDetail');
});
});
});
Route::controller(AuthDoctorController::class)->group(function () {
Route::post('forgot-password', 'forgotPassword');
Route::post('verif-code', 'verifCode');
Route::post('resend-code', 'forgotPassword');
Route::post('reset-password', 'resetPassword');
});
});
});;
});