ExportController.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use Illuminate\Support\Str;
  5. use Illuminate\Support\Facades\Log;
  6. use Illuminate\Support\Facades\App;
  7. use Illuminate\Support\Facades\Storage;
  8. use App\Http\Api\AuthApi;
  9. use App\Http\Api\Mq;
  10. use App\Tools\RedisClusters;
  11. use App\Tools\ExportDownload;
  12. class ExportController extends Controller
  13. {
  14. /**
  15. * Display a listing of the resource.
  16. *
  17. * @return \Illuminate\Http\Response
  18. */
  19. public function index(Request $request)
  20. {
  21. $queryId = Str::uuid();
  22. $token = AuthApi::getToken($request);
  23. switch ($request->get('type','chapter')) {
  24. case 'chapter':
  25. $data = [
  26. 'book'=>$request->get('book'),
  27. 'para'=>$request->get('par'),
  28. 'channel'=>$request->get('channel'),
  29. 'format'=>$request->get('format'),
  30. 'origin'=>$request->get('origin'),
  31. 'translation'=>$request->get('translation'),
  32. 'queryId'=>$queryId,
  33. ];
  34. if($token){
  35. $data['token'] = $token;
  36. }
  37. Mq::publish('export_pali_chapter',$data);
  38. break;
  39. case 'article':
  40. $data = [
  41. 'id'=>$request->get('id'),
  42. 'channel'=>$request->get('channel'),
  43. 'format'=>$request->get('format'),
  44. 'origin'=>$request->get('origin'),
  45. 'translation'=>$request->get('translation'),
  46. 'queryId'=>$queryId,
  47. 'anthology'=>$request->get('anthology'),
  48. 'channel'=>$request->get('channel'),
  49. ];
  50. if($token){
  51. $data['token'] = $token;
  52. }
  53. Mq::publish('export_article',$data);
  54. break;
  55. default:
  56. return $this->error('unknown type '.$request->get('type'),400,400);
  57. break;
  58. }
  59. return $this->ok($queryId);
  60. }
  61. /**
  62. * Store a newly created resource in storage.
  63. *
  64. * @param \Illuminate\Http\Request $request
  65. * @return \Illuminate\Http\Response
  66. */
  67. public function store(Request $request)
  68. {
  69. //
  70. }
  71. /**
  72. * Display the specified resource.
  73. *
  74. * @param string $id
  75. * @return \Illuminate\Http\Response
  76. */
  77. public function show($filename)
  78. {
  79. //
  80. $exportChapter = new ExportDownload(['queryId'=>$filename]);
  81. $exportStatus = $exportChapter->getStatus();
  82. if(empty($exportStatus)){
  83. return $this->error('no file',200,200);
  84. };
  85. $output = array();
  86. $output['status'] = $exportStatus;
  87. if($exportStatus['progress']===1){
  88. $output['url'] = $exportStatus['url'];
  89. }
  90. return $this->ok($output);
  91. }
  92. /**
  93. * Update the specified resource in storage.
  94. *
  95. * @param \Illuminate\Http\Request $request
  96. * @param int $id
  97. * @return \Illuminate\Http\Response
  98. */
  99. public function update(Request $request, $id)
  100. {
  101. //
  102. }
  103. /**
  104. * Remove the specified resource from storage.
  105. *
  106. * @param int $id
  107. * @return \Illuminate\Http\Response
  108. */
  109. public function destroy($id)
  110. {
  111. //
  112. }
  113. }