aboutsummaryrefslogtreecommitdiff
path: root/app/Models
diff options
context:
space:
mode:
authorFrankie B <git@diskfloppy.me>2024-06-11 18:02:01 +0100
committerGitHub <noreply@github.com>2024-06-11 18:02:01 +0100
commit0f52d80ca67a49258b235f5831163dd72fbd54cf (patch)
tree9c5cd36b6e0a233e09ac88a4409fb68c63e4781a /app/Models
parenta64bcc2c4639d5804b6dada23151bfcb8b198121 (diff)
Merge MVC rewrite into master (#21)
* Just commit it all * Require auth * crap * Update homepage * Block AI scrapers * Update cache update script * Add dummy file * Remove unnecessary lastfm config var * Use withQueryParameters for LastFM API * Fix embeds * Update example env * Smard
Diffstat (limited to 'app/Models')
-rw-r--r--app/Models/BookmarkCategory.php36
-rw-r--r--app/Models/BookmarkSite.php35
-rw-r--r--app/Models/GuestbookEntry.php50
-rw-r--r--app/Models/User.php45
4 files changed, 121 insertions, 45 deletions
diff --git a/app/Models/BookmarkCategory.php b/app/Models/BookmarkCategory.php
new file mode 100644
index 0000000..a8bc8d2
--- /dev/null
+++ b/app/Models/BookmarkCategory.php
@@ -0,0 +1,36 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Illuminate\Database\Eloquent\Model;
+
+class BookmarkCategory extends Model
+{
+ use HasFactory;
+ protected $table = "bookmark__categories";
+ protected $fillable = ['name'];
+
+ public function sites() {
+ return $this->hasMany(BookmarkSite::class, 'category');
+ }
+
+ public static function insertBookmarkCategory(string $name) {
+ $newBookmarkCategory = new BookmarkCategory;
+ $newBookmarkCategory->name = $name;
+ $newBookmarkCategory->save();
+ }
+ public static function selectBookmarks(int $id) {
+ $bookmarks = BookmarkSite::where('category', '=', $id)->firstOrFail();
+ return $bookmarks;
+ }
+
+ public static function importBookmarkCategory(array $data) {
+ foreach ($data as $category) {
+ $newBookmarkCategory = new BookmarkCategory;
+ $newBookmarkCategory->name = $category['name'];
+ $newBookmarkCategory->priority = intval($category['priority']);
+ $newBookmarkCategory->save();
+ }
+ }
+}
diff --git a/app/Models/BookmarkSite.php b/app/Models/BookmarkSite.php
new file mode 100644
index 0000000..3c9cc5d
--- /dev/null
+++ b/app/Models/BookmarkSite.php
@@ -0,0 +1,35 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Illuminate\Database\Eloquent\Model;
+
+class BookmarkSite extends Model {
+ use HasFactory;
+ protected $table = "bookmark__sites";
+ protected $fillable = ['name', 'description', 'url', 'category'];
+
+ public function category() {
+ return $this->belongsTo(BookmarkCategory::class, 'category');
+ }
+ public static function insertBookmark(string $name, string $url, int $category) {
+ $category = BookmarkCategory::where('id', $category)->firstOrFail();
+ $newBookmark = new BookmarkSite;
+ $newBookmark->name = $name;
+ $newBookmark->url = $url;
+ $newBookmark->category = $category->id;
+ $newBookmark->save();
+ }
+
+ public static function importBookmark(array $data) {
+ foreach ($data as $site) {
+ $newBookmark = new BookmarkSite;
+ $newBookmark->name = $site['name'];
+ $newBookmark->description = $site['description'];
+ $newBookmark->url = $site['url'];
+ $newBookmark->category = $site['category_id'];
+ $newBookmark->save();
+ }
+ }
+}
diff --git a/app/Models/GuestbookEntry.php b/app/Models/GuestbookEntry.php
new file mode 100644
index 0000000..f5e2de2
--- /dev/null
+++ b/app/Models/GuestbookEntry.php
@@ -0,0 +1,50 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Http\Request;
+use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Illuminate\Database\Eloquent\Model;
+
+class GuestbookEntry extends Model
+{
+ use HasFactory;
+ protected $table = "guestbook__entries";
+ protected $fillable = ['name', 'message'];
+
+ /**
+ * Creates a new guestbook entry.
+ *
+ * @param Request $request The HTTP POST request
+ * @return void
+ */
+ public static function insertGuestbookEntry(Request $request) {
+ $newEntry = new GuestbookEntry;
+ $newEntry->name = htmlspecialchars($request->get('name'));
+ $newEntry->message = htmlspecialchars($request->get('message'));
+ $newEntry->ip = $request->ip();
+ $newEntry->agent = $request->userAgent();
+ $newEntry->admin = auth()->check();
+ $newEntry->save();
+ }
+
+ public static function selectEntries() {
+ $entries = GuestbookEntry::orderBy('created_at', 'desc')->get();
+ return $entries;
+ }
+
+ public static function importGuestbookEntry(array $data) {
+ foreach ($data as $entry) {
+ $dt = new \DateTime('@' . $entry['timestamp']);
+ $newEntry = new GuestbookEntry;
+ $newEntry->name = $entry['name'];
+ $newEntry->ip = $entry['ip_address'];
+ $newEntry->agent = $entry['agent'];
+ $newEntry->admin = $entry['site_owner'];
+ $newEntry->message = $entry['message'];
+ $newEntry->created_at = $dt;
+ $newEntry->updated_at = $dt;
+ $newEntry->save();
+ }
+ }
+}
diff --git a/app/Models/User.php b/app/Models/User.php
deleted file mode 100644
index 4d7f70f..0000000
--- a/app/Models/User.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-namespace App\Models;
-
-// use Illuminate\Contracts\Auth\MustVerifyEmail;
-use Illuminate\Database\Eloquent\Factories\HasFactory;
-use Illuminate\Foundation\Auth\User as Authenticatable;
-use Illuminate\Notifications\Notifiable;
-use Laravel\Sanctum\HasApiTokens;
-
-class User extends Authenticatable
-{
- use HasApiTokens, HasFactory, Notifiable;
-
- /**
- * The attributes that are mass assignable.
- *
- * @var array<int, string>
- */
- protected $fillable = [
- 'name',
- 'email',
- 'password',
- ];
-
- /**
- * The attributes that should be hidden for serialization.
- *
- * @var array<int, string>
- */
- protected $hidden = [
- 'password',
- 'remember_token',
- ];
-
- /**
- * The attributes that should be cast.
- *
- * @var array<string, string>
- */
- protected $casts = [
- 'email_verified_at' => 'datetime',
- 'password' => 'hashed',
- ];
-}