]> BookStack Code Mirror - bookstack/blobdiff - app/Actions/ActivityService.php
Code cleanup, bug squashing
[bookstack] / app / Actions / ActivityService.php
index fb4a739cd27dbcedcef17e23b759f0747f3ab3ce..b2a35fd2a5115c7ba869a35ddbd34e69287b8e6d 100644 (file)
@@ -2,9 +2,10 @@
 
 use BookStack\Auth\Permissions\PermissionService;
 use BookStack\Auth\User;
-use BookStack\Entities\Chapter;
-use BookStack\Entities\Entity;
-use BookStack\Entities\Page;
+use BookStack\Entities\Models\Chapter;
+use BookStack\Entities\Models\Entity;
+use BookStack\Entities\Models\Page;
+use BookStack\Interfaces\Loggable;
 use Illuminate\Database\Eloquent\Builder;
 use Illuminate\Database\Eloquent\Relations\Relation;
 use Illuminate\Support\Facades\Log;
@@ -30,6 +31,22 @@ class ActivityService
         $this->setNotification($type);
     }
 
+    /**
+     * Add a generic activity event to the database.
+     * @param string|Loggable $detail
+     */
+    public function add(string $type, $detail = '')
+    {
+        if ($detail instanceof Loggable) {
+            $detail = $detail->logDescriptor();
+        }
+
+        $activity = $this->newActivityForUser($type);
+        $activity->detail = $detail;
+        $activity->save();
+        $this->setNotification($type);
+    }
+
     /**
      * Get a new activity instance for the current user.
      */