api.php 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <?php
  2. use Illuminate\Http\Request;
  3. use Illuminate\Support\Facades\Route;
  4. use App\Http\Controllers\WbwTemplateController;
  5. use App\Http\Controllers\DhammaTermController;
  6. use App\Http\Controllers\SentenceController;
  7. use App\Http\Controllers\ProgressChapterController;
  8. use App\Http\Controllers\SentenceInfoController;
  9. use App\Http\Controllers\SentPrController;
  10. use App\Http\Controllers\TagController;
  11. use App\Http\Controllers\ViewController;
  12. use App\Http\Controllers\LikeController;
  13. use App\Http\Controllers\SentHistoryController;
  14. use App\Http\Controllers\PaliTextController;
  15. use App\Http\Controllers\ChannelController;
  16. use App\Http\Controllers\UserDictController;
  17. use App\Http\Controllers\CollectionController;
  18. use App\Http\Controllers\DictController;
  19. use App\Http\Controllers\AuthController;
  20. use App\Http\Controllers\ArticleController;
  21. use App\Http\Controllers\GroupController;
  22. /*
  23. |--------------------------------------------------------------------------
  24. | API Routes
  25. |--------------------------------------------------------------------------
  26. |
  27. | Here is where you can register API routes for your application. These
  28. | routes are loaded by the RouteServiceProvider within a group which
  29. | is assigned the "api" middleware group. Enjoy building your API!
  30. |
  31. */
  32. Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
  33. return $request->user();
  34. });
  35. Route::group(['prefix' => 'v2'],function(){
  36. Route::apiResource('wbw_templates',WbwTemplateController::class);
  37. Route::apiResource('terms',DhammaTermController::class);
  38. Route::apiResource('sentence',SentenceController::class);
  39. Route::apiResource('sentpr',SentPrController::class);
  40. Route::apiResource('progress',ProgressChapterController::class);
  41. Route::apiResource('tag',TagController::class);
  42. Route::apiResource('view',ViewController::class);
  43. Route::delete('like', [LikeController::class, 'delete']);
  44. Route::apiResource('like',LikeController::class);
  45. Route::apiResource('sent_history',SentHistoryController::class);
  46. Route::apiResource('palitext',PaliTextController::class);
  47. Route::apiResource('channel',ChannelController::class);
  48. Route::delete('userdict', [UserDictController::class, 'delete']);
  49. Route::apiResource('userdict',UserDictController::class);
  50. Route::get('palibook/{file}', function ($file) {
  51. return file_get_contents(public_path("app/palicanon/category/{$file}.json"));
  52. });
  53. Route::apiResource('anthology',CollectionController::class);
  54. Route::apiResource('dict',DictController::class);
  55. Route::apiResource('tag',TagController::class);
  56. Route::apiResource('article',ArticleController::class);
  57. Route::apiResource('group',GroupController::class);
  58. Route::get('auth/current',[AuthController::class,'getUserInfoByToken']);
  59. Route::post('auth/signin',[AuthController::class,'signIn']);
  60. Route::get('guide/{lang}/{file}', function ($lang,$file) {
  61. $filename = public_path("app/users_guide/{$lang}/{$file}.md");
  62. if(file_exists($filename)){
  63. return json_encode(['ok'=>true,'message'=>'','data'=>file_get_contents($filename)]);
  64. }else{
  65. return json_encode(['ok'=>false,'message'=>"no file {$lang}/{$file}"]);
  66. }
  67. });
  68. Route::get('siteinfo/{locale}', function ($locale) {
  69. if (! in_array($locale, ['en', 'zh-Hans', 'zh-Hant'])) {
  70. App::setLocale('en');
  71. }else{
  72. App::setLocale($locale);
  73. }
  74. $site = [
  75. 'logo'=> __("site.logo"),
  76. 'title'=> __('site.title'),
  77. 'subhead'=> __('site.subhead'),
  78. 'keywords'=> __('site.keywords'),
  79. 'description'=> __('site.description'),
  80. 'copyright'=> __('site.copyright'),
  81. 'author'=> [
  82. 'name'=> __('site.author.name'),
  83. 'email'=> __('site.author.email'),
  84. ],
  85. ];
  86. return json_encode($site);
  87. });
  88. });