api.php 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  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. use App\Http\Controllers\CorpusController;
  23. use App\Http\Controllers\ArticleProgressController;
  24. use App\Http\Controllers\ExportWbwController;
  25. use App\Http\Controllers\WbwLookupController;
  26. use App\Http\Controllers\UploadController;
  27. use App\Http\Controllers\DiscussionController;
  28. use App\Http\Controllers\UserController;
  29. use App\Http\Controllers\GroupMemberController;
  30. use App\Http\Controllers\ShareController;
  31. use App\Http\Controllers\CourseController;
  32. use App\Http\Controllers\CourseMemberController;
  33. use App\Http\Controllers\ExerciseController;
  34. /*
  35. |--------------------------------------------------------------------------
  36. | API Routes
  37. |--------------------------------------------------------------------------
  38. |
  39. | Here is where you can register API routes for your application. These
  40. | routes are loaded by the RouteServiceProvider within a group which
  41. | is assigned the "api" middleware group. Enjoy building your API!
  42. |
  43. */
  44. Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
  45. return $request->user();
  46. });
  47. Route::group(['prefix' => 'v2'],function(){
  48. Route::apiResource('wbw_templates',WbwTemplateController::class);
  49. Route::apiResource('terms',DhammaTermController::class);
  50. Route::apiResource('sentence',SentenceController::class);
  51. Route::apiResource('sentpr',SentPrController::class);
  52. Route::apiResource('progress',ProgressChapterController::class);
  53. Route::apiResource('tag',TagController::class);
  54. Route::apiResource('view',ViewController::class);
  55. Route::delete('like', [LikeController::class, 'delete']);
  56. Route::apiResource('like',LikeController::class);
  57. Route::apiResource('sent_history',SentHistoryController::class);
  58. Route::apiResource('palitext',PaliTextController::class);
  59. Route::apiResource('channel',ChannelController::class);
  60. Route::delete('userdict', [UserDictController::class, 'delete']);
  61. Route::apiResource('userdict',UserDictController::class);
  62. Route::get('palibook/{file}', function ($file) {
  63. if($file==='default'){$file="defualt";}
  64. return file_get_contents(public_path("app/palicanon/category/{$file}.json"));
  65. });
  66. Route::apiResource('anthology',CollectionController::class);
  67. Route::apiResource('dict',DictController::class);
  68. Route::apiResource('tag',TagController::class);
  69. Route::apiResource('article',ArticleController::class);
  70. Route::apiResource('group',GroupController::class);
  71. Route::get('auth/current',[AuthController::class,'getUserInfoByToken']);
  72. Route::post('auth/signin',[AuthController::class,'signIn']);
  73. Route::get('corpus/sent/{id}',[CorpusController::class,'showSent']);
  74. Route::get('corpus/chapter/{id}/{mode}',[CorpusController::class,'showChapter']);
  75. Route::get('corpus_sent/{type}/{id}/{mode}',[CorpusController::class,'showSentences']);
  76. Route::apiResource('article-progress',ArticleProgressController::class);
  77. Route::post('export_wbw',[ExportWbwController::class,'index']);
  78. Route::apiResource('attachments',UploadController::class);
  79. Route::apiResource('discussion',DiscussionController::class);
  80. Route::get('discussion-anchor/{id}',[DiscussionController::class,'anchor']);
  81. Route::apiResource('user',UserController::class);
  82. Route::apiResource('group-member',GroupMemberController::class);
  83. Route::apiResource('share',ShareController::class);
  84. Route::apiResource('wbwlookup',WbwLookupController::class);
  85. Route::apiResource('course',CourseController::class);
  86. Route::apiResource('course-member',CourseMemberController::class);
  87. Route::put('course-member_set-channel',[CourseMemberController::class,'set_channel']);
  88. Route::get('course-my-course', [CourseController::class, 'showMyCourseNumber']);
  89. Route::get('course-curr', [CourseMemberController::class, 'curr']);
  90. Route::apiResource('exercise',ExerciseController::class);
  91. Route::get('guide/{lang}/{file}', function ($lang,$file) {
  92. $filename = public_path("app/users_guide/{$lang}/{$file}.md");
  93. if(file_exists($filename)){
  94. return json_encode(['ok'=>true,'message'=>'','data'=>file_get_contents($filename)]);
  95. }else{
  96. return json_encode(['ok'=>false,'message'=>"no file {$lang}/{$file}"]);
  97. }
  98. });
  99. Route::get('siteinfo/{locale}', function ($locale) {
  100. if (! in_array($locale, ['en', 'zh-Hans', 'zh-Hant'])) {
  101. App::setLocale('en');
  102. }else{
  103. App::setLocale($locale);
  104. }
  105. $site = [
  106. 'logo'=> __("site.logo"),
  107. 'title'=> __('site.title'),
  108. 'subhead'=> __('site.subhead'),
  109. 'keywords'=> __('site.keywords'),
  110. 'description'=> __('site.description'),
  111. 'copyright'=> __('site.copyright'),
  112. 'author'=> [
  113. 'name'=> __('site.author.name'),
  114. 'email'=> __('site.author.email'),
  115. ],
  116. ];
  117. return json_encode($site);
  118. });
  119. });