visuddhinanda 2 gadi atpakaļ
vecāks
revīzija
8b3cce1052

+ 87 - 0
app/Http/Controllers/DictInfoController.php

@@ -0,0 +1,87 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use App\Models\DictInfo;
+use Illuminate\Http\Request;
+use App\Http\Resources\DictInfoResource;
+
+class DictInfoController extends Controller
+{
+    /**
+     * Display a listing of the resource.
+     *
+     * @return \Illuminate\Http\Response
+     */
+    public function index(Request $request)
+    {
+        //
+        switch ($request->get('view')) {
+            case 'name':
+                $table = DictInfo::where('name',$request->get('name'));
+                break;
+
+            default:
+                # code...
+                break;
+        }
+
+        $table = $table->orderBy($request->get('order','updated_at'),
+                                $request->get('dir','desc'));
+
+        $table = $table->skip($request->get('offset',0))
+                       ->take($request->get('limit',100));
+
+        $result = $table->get();
+        $count = count($result);
+        return $this->ok([
+                            "rows"=>DictInfoResource::collection($result),
+                            "count"=>$count
+                        ]);
+    }
+
+    /**
+     * Store a newly created resource in storage.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @return \Illuminate\Http\Response
+     */
+    public function store(Request $request)
+    {
+        //
+    }
+
+    /**
+     * Display the specified resource.
+     *
+     * @param  \App\Models\DictInfo  $dictInfo
+     * @return \Illuminate\Http\Response
+     */
+    public function show(DictInfo $dictInfo)
+    {
+        //
+    }
+
+    /**
+     * Update the specified resource in storage.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @param  \App\Models\DictInfo  $dictInfo
+     * @return \Illuminate\Http\Response
+     */
+    public function update(Request $request, DictInfo $dictInfo)
+    {
+        //
+    }
+
+    /**
+     * Remove the specified resource from storage.
+     *
+     * @param  \App\Models\DictInfo  $dictInfo
+     * @return \Illuminate\Http\Response
+     */
+    public function destroy(DictInfo $dictInfo)
+    {
+        //
+    }
+}

+ 105 - 0
app/Http/Controllers/DictVocabularyController.php

@@ -0,0 +1,105 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use App\Models\UserDict;
+use App\Models\DictInfo;
+use Illuminate\Http\Request;
+use App\Http\Resources\DictVocabularyResource;
+
+
+class DictVocabularyController extends Controller
+{
+    /**
+     * Display a listing of the resource.
+     *
+     * @return \Illuminate\Http\Response
+     */
+    public function index(Request $request)
+    {
+        //
+        switch ($request->get("view")) {
+            case 'dict_name':
+                $id = DictInfo::where('name',$request->get("name"))->value('id');
+                if(!$id){
+                    return $this->error('name:'.$request->get("name").' can not found.',200,200);
+                }
+                $table = UserDict::where('dict_id',$id)
+                                ->groupBy('word')
+                                ->selectRaw('word,count(*)');
+                break;
+            case 'dict_short_name':
+                    $id = DictInfo::where('shortname',$request->get("name"))->value('id');
+                    if(!$id){
+                        return $this->error('name:'.$request->get("name").' can not found.',200,200);
+                    }
+                    $table = UserDict::where('dict_id',$id)
+                                    ->groupBy('word')
+                                    ->selectRaw('word,count(*)');
+                    break;
+
+        }
+        if($request->get("stream") === 'true'){
+            return response()->streamDownload(function () use ($table) {
+                $result = $table->get();
+                echo json_encode($result);
+            },'dict.txt');
+        }
+        $count = 2;
+        $table = $table->orderBy('word',$request->get('dir','asc'));
+
+        $table = $table->skip($request->get('offset',0))
+                       ->take($request->get('limit',1000));
+
+        $result = $table->get();
+        return $this->ok([
+                            "rows"=>DictVocabularyResource::collection($result),
+                            "count"=>$count
+                        ]);
+    }
+
+    /**
+     * Store a newly created resource in storage.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @return \Illuminate\Http\Response
+     */
+    public function store(Request $request)
+    {
+        //
+    }
+
+    /**
+     * Display the specified resource.
+     *
+     * @param  \App\Models\UserDict  $userDict
+     * @return \Illuminate\Http\Response
+     */
+    public function show(UserDict $userDict)
+    {
+        //
+    }
+
+    /**
+     * Update the specified resource in storage.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @param  \App\Models\UserDict  $userDict
+     * @return \Illuminate\Http\Response
+     */
+    public function update(Request $request, UserDict $userDict)
+    {
+        //
+    }
+
+    /**
+     * Remove the specified resource from storage.
+     *
+     * @param  \App\Models\UserDict  $userDict
+     * @return \Illuminate\Http\Response
+     */
+    public function destroy(UserDict $userDict)
+    {
+        //
+    }
+}

+ 73 - 0
app/Http/Controllers/PgPaliDictDownloadController.php

@@ -0,0 +1,73 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use App\Models\UserDict;
+use Illuminate\Http\Request;
+
+class PgPaliDictDownloadController extends Controller
+{
+    /**
+     * Display a listing of the resource.
+     *
+     * @return \Illuminate\Http\Response
+     */
+    public function index(Request $request)
+    {
+        $currPage = $request->get('page',1);
+        $path = storage_path('app/export/fts');
+        $filename = $path."/pali-{$currPage}.syn";
+        if(file_exists($filename)){
+            $content = file_get_contents($filename);
+            return $this->ok($content);
+        }else{
+            return $this->error('no file',200,200);
+        }
+
+    }
+
+    /**
+     * Store a newly created resource in storage.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @return \Illuminate\Http\Response
+     */
+    public function store(Request $request)
+    {
+        //
+    }
+
+    /**
+     * Display the specified resource.
+     *
+     * @param  \App\Models\UserDict  $userDict
+     * @return \Illuminate\Http\Response
+     */
+    public function show(UserDict $userDict)
+    {
+        //
+    }
+
+    /**
+     * Update the specified resource in storage.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @param  \App\Models\UserDict  $userDict
+     * @return \Illuminate\Http\Response
+     */
+    public function update(Request $request, UserDict $userDict)
+    {
+        //
+    }
+
+    /**
+     * Remove the specified resource from storage.
+     *
+     * @param  \App\Models\UserDict  $userDict
+     * @return \Illuminate\Http\Response
+     */
+    public function destroy(UserDict $userDict)
+    {
+        //
+    }
+}

+ 19 - 0
app/Http/Resources/DictInfoResource.php

@@ -0,0 +1,19 @@
+<?php
+
+namespace App\Http\Resources;
+
+use Illuminate\Http\Resources\Json\JsonResource;
+
+class DictInfoResource extends JsonResource
+{
+    /**
+     * Transform the resource into an array.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
+     */
+    public function toArray($request)
+    {
+        return parent::toArray($request);
+    }
+}

+ 19 - 0
app/Http/Resources/DictVocabularyResource.php

@@ -0,0 +1,19 @@
+<?php
+
+namespace App\Http\Resources;
+
+use Illuminate\Http\Resources\Json\JsonResource;
+
+class DictVocabularyResource extends JsonResource
+{
+    /**
+     * Transform the resource into an array.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
+     */
+    public function toArray($request)
+    {
+        return parent::toArray($request);
+    }
+}