diff options
author | Frankie B <git@diskfloppy.me> | 2024-06-11 18:02:01 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-11 18:02:01 +0100 |
commit | 0f52d80ca67a49258b235f5831163dd72fbd54cf (patch) | |
tree | 9c5cd36b6e0a233e09ac88a4409fb68c63e4781a /app/Models | |
parent | a64bcc2c4639d5804b6dada23151bfcb8b198121 (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.php | 36 | ||||
-rw-r--r-- | app/Models/BookmarkSite.php | 35 | ||||
-rw-r--r-- | app/Models/GuestbookEntry.php | 50 | ||||
-rw-r--r-- | app/Models/User.php | 45 |
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', - ]; -} |