visuddhinanda 2 years ago
parent
commit
108347b747
2 changed files with 125 additions and 0 deletions
  1. 106 0
      app/Http/Controllers/MilestoneController.php
  2. 19 0
      app/Http/Resources/MilestoneResource.php

+ 106 - 0
app/Http/Controllers/MilestoneController.php

@@ -0,0 +1,106 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use Illuminate\Http\Request;
+use App\Http\Api\StudioApi;
+use App\Models\UserInfo;
+use App\Models\Wbw;
+use App\Models\Sentence;
+use App\Models\DhammaTerm;
+use App\Models\Course;
+
+class MilestoneController extends Controller
+{
+    /**
+     * Display a listing of the resource.
+     *
+     * @return \Illuminate\Http\Response
+     */
+    public function index()
+    {
+        //
+
+    }
+
+    /**
+     * 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  string  $studioName
+     * @return \Illuminate\Http\Response
+     */
+    public function show($studioName)
+    {
+        //
+        $user_uid = StudioApi::getIdByName($studioName);
+
+        $milestone = [];
+        $milestone[] = ['date'=>UserInfo::where('userid',$user_uid)->value('created_at'),'event'=>'sign-in'] ;
+        if(Wbw::where('creator_uid',$user_uid)->exists()){
+            $milestone[] = ['date'=>Wbw::where('creator_uid',$user_uid)
+                                       ->orderBy('created_at')
+                                       ->value('created_at'),
+                                       'event'=>'first-wbw'
+                           ] ;
+        }
+        if(Sentence::where('editor_uid',$user_uid)->exists()){
+            $milestone[] = ['date'=>Sentence::where('editor_uid',$user_uid)
+                                            ->orderBy('created_at')
+                                            ->value('created_at'),
+                                            'event'=>'first-translation'
+                            ] ;
+        }
+        if(DhammaTerm::where('owner',$user_uid)->exists()){
+            $milestone[] = ['date'=>DhammaTerm::where('owner',$user_uid)
+                                              ->orderBy('created_at')
+                                              ->value('created_at'),
+                                              'event'=>'first-term'
+                        ] ;
+
+        }
+        if(Course::where('studio_id',$user_uid)->exists()){
+            $milestone[] = ['date'=>Course::where('studio_id',$user_uid)
+                                           ->orderBy('created_at')
+                                           ->value('created_at'),
+                                           'event'=>'first-course'
+                                           ] ;
+        }
+
+
+        return $this->ok($milestone);
+    }
+
+    /**
+     * Update the specified resource in storage.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @param  int  $id
+     * @return \Illuminate\Http\Response
+     */
+    public function update(Request $request, $id)
+    {
+        //
+    }
+
+    /**
+     * Remove the specified resource from storage.
+     *
+     * @param  int  $id
+     * @return \Illuminate\Http\Response
+     */
+    public function destroy($id)
+    {
+        //
+    }
+}

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

@@ -0,0 +1,19 @@
+<?php
+
+namespace App\Http\Resources;
+
+use Illuminate\Http\Resources\Json\JsonResource;
+
+class MilestoneResource 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);
+    }
+}