generated from Flycro/laravel-nuxt
feat: BookRecommendation Functionality
parent
096698a8e1
commit
5ab2c46335
|
|
@ -14,10 +14,16 @@ class BookRecommendationController extends Controller
|
|||
public function index()
|
||||
{
|
||||
$relations = [];
|
||||
$bookRecommendations = BookRecommendation::query();
|
||||
if (request()->has('with')) {
|
||||
$relations = explode(',', request()->with);
|
||||
$bookRecommendations->with($relations);
|
||||
}
|
||||
return BookRecommendation::with($relations)->get();
|
||||
if(request()->has('status')) {
|
||||
$bookRecommendations->where('status', request()->status);
|
||||
}
|
||||
|
||||
return $bookRecommendations->get();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -50,7 +56,7 @@ class BookRecommendationController extends Controller
|
|||
$data['cover_image'] = $imagePath;
|
||||
}
|
||||
|
||||
$bookRecommendation = BookRecommendation::create([...$request->all(), 'recommended_by' => auth()->id()]);
|
||||
$bookRecommendation = BookRecommendation::create([...$data, 'recommended_by' => auth()->id()]);
|
||||
return response()->json($bookRecommendation, 201);
|
||||
}
|
||||
|
||||
|
|
@ -124,6 +130,9 @@ class BookRecommendationController extends Controller
|
|||
if ($bookRecommendation->recommended_by !== auth()->id() && !(auth()->user()->hasRole('admin')) ) {
|
||||
return response()->json(['message' => 'Keine Berechtigung.'], 403);
|
||||
}
|
||||
if ($bookRecommendation->cover_image) {
|
||||
Storage::delete($bookRecommendation->cover_image);
|
||||
}
|
||||
$bookRecommendation->delete();
|
||||
return response()->json(null, 204);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ class BookRecommendation extends Model
|
|||
'recommended_by',
|
||||
'cover_image',
|
||||
'status',
|
||||
'published_at',
|
||||
];
|
||||
|
||||
/**
|
||||
|
|
@ -31,4 +32,9 @@ class BookRecommendation extends Model
|
|||
{
|
||||
return $this->hasMany(Vote::class);
|
||||
}
|
||||
|
||||
public function deadlines()
|
||||
{
|
||||
return $this->hasMany(Deadline::class);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ class BookRecommendationsTableSeeder extends Seeder
|
|||
public function run(): void
|
||||
{
|
||||
// Let's say we want to create 50 fake book recommendations
|
||||
for ($i = 0; $i < 50; $i++) {
|
||||
/*for ($i = 0; $i < 50; $i++) {
|
||||
BookRecommendation::create([
|
||||
'book_name' => fake()->sentence($nbWords = 3, $variableNbWords = true),
|
||||
'author' => fake()->name,
|
||||
|
|
@ -24,6 +24,107 @@ class BookRecommendationsTableSeeder extends Seeder
|
|||
'recommended_by' => 1, // Adjust the range as necessary
|
||||
'cover_image' => null, // You could also simulate image paths if needed
|
||||
]);
|
||||
}
|
||||
}*/
|
||||
|
||||
BookRecommendation::create(
|
||||
[
|
||||
'book_name' => '100 Jahre Einsamkeit',
|
||||
'author' => 'Gabriel García Márquez',
|
||||
'description' => 'Die Geschichte der Familie Buendía und ihres Dorfes Macondo, das sie gründeten, ist ein Epos voller Leidenschaft, Tragik und Komik. Die Geschichte der Familie Buendía und ihres Dorfes Macondo, das sie gründeten, ist ein Epos voller Leidenschaft, Tragik und Komik.',
|
||||
'isbn' => '978-3-462-05021-9',
|
||||
'pages' => 528,
|
||||
'recommended_by' => 1,
|
||||
'cover_image' => null,
|
||||
'published_at' => '1967-05-30'
|
||||
]
|
||||
);
|
||||
BookRecommendation::create(
|
||||
[
|
||||
'book_name' => 'Die Mitternachtsbibliothek',
|
||||
'author' => 'Matt Haig',
|
||||
'description' => 'Nora Seed erkennt, dass sie viele Leben gelebt hat. Nicht die, die sie sich erhofft hatte. In der Mitternachtsbibliothek erhält sie die Möglichkeit, diese zu ändern.',
|
||||
'isbn' => '978-3-426-28256-4',
|
||||
'pages' => 320,
|
||||
'recommended_by' => 1,
|
||||
'cover_image' => null,
|
||||
'published_at' => '2020-08-13'
|
||||
]
|
||||
);
|
||||
BookRecommendation::create(
|
||||
[
|
||||
'book_name' => 'Die Schwarze Königin',
|
||||
'author' => 'Markus Heitz',
|
||||
'description' => 'Blutig, actionreich, dramatisch: Bestseller-Autor Markus Heitz kehrt mit seinem Dark-Fantasy-Roman »Die Schwarze Königin« zu den Vampiren zurück!',
|
||||
'isbn' => '978-3-426-22781-7',
|
||||
'pages' => 544,
|
||||
'recommended_by' => 4,
|
||||
'cover_image' => null,
|
||||
'published_at' => '2023-08-21'
|
||||
]
|
||||
);
|
||||
BookRecommendation::create(
|
||||
[
|
||||
'book_name' => 'The Stand - Das letzte Gefecht',
|
||||
'author' => 'Stephen King',
|
||||
'description' => 'In einem entvölkerten Amerika versucht eine Handvoll Überlebende die Zivilisation zu retten. Ihr Gegenspieler ist eine mythische Gestalt, die man den Dunklen Mann nennt, eine Verkörperung des absolut Bösen. In der Wüste Nevada kommt es zum Entscheidungskampf um das Schicksal der Menschheit.',
|
||||
'isbn' => '978-3-45343818-7',
|
||||
'pages' => 1712,
|
||||
'recommended_by' => 4,
|
||||
'cover_image' => null,
|
||||
'published_at' => '1978-09-01'
|
||||
]
|
||||
);
|
||||
BookRecommendation::create([
|
||||
'book_name' => 'Der Fremde',
|
||||
'author' => 'Albert Camus',
|
||||
'description' => 'Die Geschichte eines jungen Franzosen in Algerien, den ein lächerlicher Zufall zum Mörder macht, wurde 1942 im besetzten Frankreich zu einer literarischen Sensation. Der Roman bedeutete den schriftstellerischen Durchbruch für Albert Camus und gilt heute als einer der Haupttexte des Existenzialismus.',
|
||||
'isbn' => '978-3-49922189-7',
|
||||
'pages' => 160,
|
||||
'recommended_by' => 2,
|
||||
'cover_image' => null,
|
||||
'published_at' => '1942-06-01'
|
||||
]);
|
||||
BookRecommendation::create([
|
||||
'book_name' => 'No Longer Human',
|
||||
'author' => 'Osamu Dazai',
|
||||
'description' => 'No Longer Human is a Japanese novel by Osamu Dazai. It is considered Dazai\'s masterpiece and ranks as the second-best selling novel in Japan, behind Natsume Sōseki\'s Kokoro.',
|
||||
'isbn' => '978-0-81120481-1',
|
||||
'pages' => 177,
|
||||
'recommended_by' => 2,
|
||||
'cover_image' => null,
|
||||
'published_at' => '1948-06-01'
|
||||
]);
|
||||
BookRecommendation::create([
|
||||
'book_name' => 'After Dark',
|
||||
'author' => 'Haruki Murakami',
|
||||
'description' => 'Geschichten zwischen Mitternacht und Morgengrauen: Murakami begleitet seine Helden eine Nacht lang und zeichnet ein eindrucksvolles, geheimnisvoll schillerndes Großstadtporträt: Die 19-jährige Mari, ihre schöne, aber unglückliche Schwester Eri, der unscheinbare Posaunist, die Prostituierte aus einem Love Hotel und ein gewissenloser Freier streifen durch das nächtliche Tokyo.',
|
||||
'isbn' => '978-3-44273564-8',
|
||||
'pages' => 191,
|
||||
'recommended_by' => 2,
|
||||
'cover_image' => null,
|
||||
'published_at' => '2004-01-01'
|
||||
]);
|
||||
BookRecommendation::create([
|
||||
'book_name' => 'Futu.re',
|
||||
'author' => 'Dmitry Glukhovsky',
|
||||
'description' => 'Moskau 2038: Der junge Student Innokenti wächst in einer Welt auf, die von Technologie und künstlicher Intelligenz bestimmt wird. Doch er ist ein Träumer und glaubt an die Kraft der Literatur. Als er eines Tages auf die geheimnisvolle Chiski trifft, die in einer Parallelwelt lebt, gerät sein Leben aus den Fugen. Chiski ist auf der Flucht vor einer mächtigen Organisation, die die Welt beherrscht und die Literatur vernichten will. Innokenti wird in einen Strudel aus Gewalt und Intrigen gezogen und muss sich entscheiden: Wird er zum Helden oder zum Verräter?',
|
||||
'isbn' => '978-3-45331758-1',
|
||||
'pages' => 928,
|
||||
'recommended_by' => 3,
|
||||
'cover_image' => null,
|
||||
'published_at' => '2017-02-06'
|
||||
]);
|
||||
BookRecommendation::create([
|
||||
'book_name' => 'Die Seele des Königs',
|
||||
'author' => 'Brandon Sanderson',
|
||||
'description' => 'Die Seele des Königs ist der erste Band der neuen Serie von Bestsellerautor Brandon Sanderson. Die Serie spielt in einer Welt, in der die Magie auf dem Konzept der Metalle basiert. Die Serie spielt in einer Welt, in der die Magie auf dem Konzept der Metalle basiert.',
|
||||
'isbn' => '978-3-45331524-2',
|
||||
'pages' => 448,
|
||||
'recommended_by' => 3,
|
||||
'cover_image' => null,
|
||||
'published_at' => '2012-10-10'
|
||||
]);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue