Browse Source

Merge pull request #2441 from visuddhinanda/development

Development
visuddhinanda 3 days ago
parent
commit
0ef4f18227

+ 5 - 0
api-v13/app/Http/Controllers/PaliTextController.php

@@ -22,6 +22,9 @@ class PaliTextController extends Controller
     public function index(Request $request)
     {
         //
+        $request->validate([
+            'view' => 'required|in:chapter-tag,chapter,chapter_children,children,paragraph,paragraphs-info,book-toc',
+        ]);
         $all_count = 0;
         switch ($request->input('view')) {
             case 'chapter-tag':
@@ -320,6 +323,8 @@ class PaliTextController extends Controller
                 }
 
                 break;
+            default:
+                return $this->error('unknown view', 400, 400);
         }
 
         if ($request->input('view') !== 'book-toc' && 

+ 19 - 9
api-v13/app/Http/Controllers/VocabularyController.php

@@ -19,22 +19,32 @@ class VocabularyController extends Controller
         //
         switch ($request->input("view")) {
             case 'key':
-                $key = $request->input("key");
-                $result = Cache::remember(
-                    "/dict_vocabulary/{$key}",
+                $key = (string) $request->input('key', '');
+                if ($key === '') {
+                    return $this->ok(['rows' => [], 'count' => 0]);
+                }
+
+                $payload = Cache::remember(
+                    'v13:dict_vocabulary:' . md5($key),
                     config('mint.cache.expire'),
                     function () use ($key) {
-                        $query = Vocabulary::where('word', 'like', $key . "%")
-                            ->orWhere('word_en', 'like', $key . "%")
+                        $rows = Vocabulary::where('word', 'like', $key . '%')
+                            ->orWhere('word_en', 'like', $key . '%')
                             ->orderBy('strlen')
                             ->orderBy('word')
-                            ->take(50);
-                        return $query->get();
+                            ->take(50)
+                            ->get();
+
+                        return [
+                            'rows'  => VocabularyResource::collection($rows)->resolve(),
+                            'count' => $rows->count(),
+                        ];
                     }
                 );
-                return $this->ok(['rows' => VocabularyResource::collection($result), 'count' => count($result)]);
-                break;
+
+                return $this->ok($payload);
         }
+        return $this->ok(['rows'=>[],'count'=>0]);
     }
 
     /**