Ver Fonte

add Listener for create example tasks and optim SQL

Petr há 4 anos atrás
pai
commit
34374ce875

+ 13 - 2
.idea/workspace.xml

@@ -11,7 +11,9 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" id="8e5fad37-8e2c-4642-a997-4c148ff4eeee" name="Default Changelist" comment="fix logout">
+      <change afterPath="$PROJECT_DIR$/app/Listeners/CreateExampleTasks.php" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/Providers/EventServiceProvider.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Providers/EventServiceProvider.php" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -205,6 +207,8 @@
       <updated>1603214770281</updated>
       <workItem from="1603214838021" duration="43002000" />
       <workItem from="1603606831432" duration="58392000" />
+      <workItem from="1603939632473" duration="1841000" />
+      <workItem from="1604364224237" duration="825000" />
     </task>
     <task id="LOCAL-00001" summary="init commit">
       <created>1603893574358</created>
@@ -248,7 +252,14 @@
       <option name="project" value="LOCAL" />
       <updated>1603904096600</updated>
     </task>
-    <option name="localTasksCounter" value="7" />
+    <task id="LOCAL-00007" summary="fix logout">
+      <created>1603939801750</created>
+      <option name="number" value="00007" />
+      <option name="presentableId" value="LOCAL-00007" />
+      <option name="project" value="LOCAL" />
+      <updated>1603939801750</updated>
+    </task>
+    <option name="localTasksCounter" value="8" />
     <servers />
   </component>
   <component name="TypeScriptGeneratedFilesManager">
@@ -264,6 +275,7 @@
         </entry>
       </map>
     </option>
+    <option name="oldMeFiltersMigrated" value="true" />
   </component>
   <component name="VcsManagerConfiguration">
     <MESSAGE value="init commit" />
@@ -323,7 +335,6 @@
         <line-breakpoint enabled="true" type="javascript">
           <url>file://$PROJECT_DIR$/public/js/taskForm.js</url>
           <line>2</line>
-          <properties lambdaOrdinal="-1" />
           <option name="timeStamp" value="1" />
         </line-breakpoint>
       </breakpoints>

+ 6 - 5
app/Http/Controllers/ApiTaskController.php

@@ -37,27 +37,28 @@ class ApiTaskController extends Controller
 
 
     private function filterTasks($list_id, $user, $date=null) {
+        $query = Task::where('user_id', $user->id)->fresh('types');
         if ($list_id == 0) {
-            return Task::where('user_id', $user->id)->get();
+            return $query->get();
         }
         elseif ($list_id == 1) {
             $nowDate = new DateTime('now');
-            return Task::where('date', '>=', $nowDate)->where('done', false)->where('user_id', $user->id)->get();
+            return $query->where('date', '>=', $nowDate)->where('done', false)->get();
         }
         elseif ($list_id == 2) {
-            return Task::where('done', true)->where('user_id', $user->id)->get();
+            return $query->where('done', true)->get();
 
         }
         elseif ($list_id == 3) {
             $dateToLost = new DateTime('now');
-            return Task::where('done', false, 'date')->where('date', '<', $dateToLost)->where('user_id', $user->id)->get();
+            return $query->where('done', false, 'date')->where('date', '<', $dateToLost)->get();
 
         }
         elseif ($list_id == 4) {
             if ($date == null)
                 return [];
             $currentDate = DateTime::createFromFormat("d.m.Y", $date);
-            return Task::where('date', '=', $currentDate)->where('user_id', $user->id)->get();
+            return $query->where('date', '=', $currentDate)->get();
 
         }
         else {

+ 48 - 0
app/Listeners/CreateExampleTasks.php

@@ -0,0 +1,48 @@
+<?php
+
+namespace App\Listeners;
+
+use Illuminate\Contracts\Queue\ShouldQueue;
+use Illuminate\Queue\InteractsWithQueue;
+use App\Models\Task;
+
+class CreateExampleTasks
+{
+    /**
+     * Create the event listener.
+     *
+     * @return void
+     */
+    public function __construct()
+    {
+        //
+    }
+
+    /**
+     * Handle the event.
+     *
+     * @param  object  $event
+     * @return void
+     */
+    public function handle($event)
+    {
+        Task::create([
+            "name" => "Встреча у начальника",
+            "type_id" => 1,
+            "place" => "Работа",
+            "date" => now()->format("d.m.Y"),
+            "time" => "12:00",
+            "duration" => "01:00",
+            "comment" => "Важно!!"
+            ]);
+        Task::create([
+            "name" => "Мероприятие",
+            "type_id" => 2,
+            "place" => "Иркутск",
+            "date" => now()->format("d.m.Y"),
+            "time" => "13:00",
+            "duration" => "01:00",
+            "comment" => "Надо быть!"
+        ]);
+    }
+}

+ 3 - 0
app/Providers/EventServiceProvider.php

@@ -2,6 +2,7 @@
 
 namespace App\Providers;
 
+use App\Listeners\CreateExampleTasks;
 use Illuminate\Auth\Events\Registered;
 use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
 use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
@@ -17,7 +18,9 @@ class EventServiceProvider extends ServiceProvider
     protected $listen = [
         Registered::class => [
             SendEmailVerificationNotification::class,
+            CreateExampleTasks::class
         ],
+
     ];
 
     /**