Ken 1 Minggu lalu
induk
melakukan
903fc0d84b

+ 34 - 10
app/Http/Controllers/api/Issue.php

@@ -5,6 +5,8 @@ namespace App\Http\Controllers\api;
 use App\Models\Cao;
 use App\Models\Prediction;
 use App\Services\IssueService;
+use Illuminate\Validation\ValidationException;
+use Exception;
 
 class Issue extends BaseController
 {
@@ -18,12 +20,25 @@ class Issue extends BaseController
      * @apiSuccess {int} timestamp
      * @apiSuccess {String} msg
      * @apiSuccess {Object} data
+     *
+     * @apiParam {int} [page=1]
+     * @apiParam {int} [limit=10]
      */
     function prediction()
     {
-        $page = request()->input('page', 1);
-        $limit = request()->input('limit', 10);
-        $list = Prediction::forPage($page, $limit) ->get();
+        try {
+            request()->validate([
+                'page' => ['nullable', 'integer', 'min:1'],
+                'limit' => ['nullable', 'integer', 'min:1']
+            ]);
+            $page = request()->input('page', 1);
+            $limit = request()->input('limit', 10);
+            $list = Prediction::forPage($page, $limit)->get();
+        } catch (ValidationException $e) {
+            return $this->error($e->validator->errors()->first());
+        } catch (Exception $e) {
+            return $this->error($e->getMessage());
+        }
         return $this->success($list);
     }
 
@@ -72,6 +87,9 @@ class Issue extends BaseController
      * @apiGroup Issue
      * @apiVersion 1.0.0
      *
+     * @apiParam {int} [page=1]
+     * @apiParam {int} [limit=10]
+     *
      * @apiSuccess {int} code
      * @apiSuccess {int} timestamp
      * @apiSuccess {String} msg
@@ -87,14 +105,20 @@ class Issue extends BaseController
      */
     public function index()
     {
-        $page = request()->input('page', 1);
-        $limit = request()->input('limit', 10);
-        $params = [
-            'page' => $page,
-            'limit' => $limit
+        try {
+            $page = request()->input('page', 1);
+            $limit = request()->input('limit', 10);
+            $params = [
+                'page' => $page,
+                'limit' => $limit
 //            'status'=>3
-        ];
-        $res = IssueService::paginate($params);
+            ];
+            $res = IssueService::paginate($params);
+        } catch (ValidationException $e) {
+            return $this->error($e->validator->errors()->first());
+        } catch (Exception $e) {
+            return $this->error($e->getMessage());
+        }
         return $this->success($res);
     }
 

File diff ditekan karena terlalu besar
+ 0 - 0
public/api-doc/assets/main.bundle.js


+ 10 - 10
public/api-doc/index.html

@@ -10,15 +10,15 @@
     <meta name="description" content="Bot">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-    <link href="assets/bootstrap.min.css?v=1762739596130" rel="stylesheet" media="screen">
-    <link href="assets/prism.css?v=1762739596130" rel="stylesheet"/>
-    <link href="assets/prism-toolbar.css?v=1762739596130" rel="stylesheet"/>
-    <link href="assets/prism-diff-highlight.css?v=1762739596130" rel="stylesheet"/>
-    <link href="assets/main.css?v=1762739596130" rel="stylesheet" media="screen, print">
-    <link href="assets/favicon.ico?v=1762739596130" rel="icon" type="image/x-icon">
-    <link href="assets/apple-touch-icon.png?v=1762739596130" rel="apple-touch-icon" sizes="180x180">
-    <link href="assets/favicon-32x32.png?v=1762739596130" rel="icon" type="image/png" sizes="32x32">
-    <link href="assets/favicon-16x16.png?v=1762739596130" rel="icon" type="image/png" sizes="16x16">
+    <link href="assets/bootstrap.min.css?v=1762739992398" rel="stylesheet" media="screen">
+    <link href="assets/prism.css?v=1762739992398" rel="stylesheet"/>
+    <link href="assets/prism-toolbar.css?v=1762739992398" rel="stylesheet"/>
+    <link href="assets/prism-diff-highlight.css?v=1762739992398" rel="stylesheet"/>
+    <link href="assets/main.css?v=1762739992398" rel="stylesheet" media="screen, print">
+    <link href="assets/favicon.ico?v=1762739992398" rel="icon" type="image/x-icon">
+    <link href="assets/apple-touch-icon.png?v=1762739992398" rel="apple-touch-icon" sizes="180x180">
+    <link href="assets/favicon-32x32.png?v=1762739992398" rel="icon" type="image/png" sizes="32x32">
+    <link href="assets/favicon-16x16.png?v=1762739992398" rel="icon" type="image/png" sizes="16x16">
     <style>
         body {
             font-family: Arial, sans-serif;
@@ -1600,7 +1600,7 @@
 </div>
 
 
-<script src="assets/main.bundle.js?v=1762739596130"></script>
+<script src="assets/main.bundle.js?v=1762739992398"></script>
 <!--suppress JSJQueryEfficiency, JSStringConcatenationToES6Template, JSStringConcatenationToES6Template, JSStringConcatenationToES6Template -->
 <script>
 

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini