1
0
Эх сурвалжийг харах

Add AdminDiscoverController

Daniel Supernault 6 жил өмнө
parent
commit
52c8f60a95

+ 105 - 0
app/Http/Controllers/Admin/AdminDiscoverController.php

@@ -0,0 +1,105 @@
+<?php
+
+namespace App\Http\Controllers\Admin;
+
+use DB, Cache;
+use App\{
+	DiscoverCategory, 
+	DiscoverCategoryHashtag, 
+	Hashtag, 
+	Media, 
+	Profile, 
+	StatusHashtag
+};
+use Carbon\Carbon;
+use Illuminate\Http\Request;
+use Illuminate\Validation\Rule;
+
+trait AdminDiscoverController
+{
+	public function discoverHome()
+	{
+		$categories = DiscoverCategory::orderByDesc('id')->paginate(10);
+		return view('admin.discover.home', compact('categories'));
+	}
+
+	public function discoverCreateCategory()
+	{
+		return view('admin.discover.create-category');
+	}
+
+	public function discoverCreateCategoryStore(Request $request)
+	{
+		$this->validate($request, [
+			'name' => 'required|string|min:1',
+			'active' => 'required|boolean',
+			'media' => 'nullable|integer|min:1'
+		]);
+
+		$name = $request->input('name');
+		$slug = str_slug($name);
+		$active = $request->input('active');
+		$media = (int) $request->input('media');
+
+		$media = Media::findOrFail($media);
+
+		$category = DiscoverCategory::firstOrNew(['slug' => $slug]);
+		$category->name = $name;
+		$category->active = $active;
+		$category->media_id = $media->id;
+		$category->save();
+		return $category;
+	}
+
+	public function discoverCategoryEdit(Request $request, $id)
+	{
+		$category = DiscoverCategory::findOrFail($id);
+		return view('admin.discover.show', compact('category'));
+	}
+
+	public function discoverCategoryUpdate(Request $request, $id)
+	{
+		$this->validate($request, [
+			'name' => 'required|string|min:1',
+			'active' => 'required|boolean',
+			'media' => 'nullable|integer|min:1',
+			'hashtags' => 'nullable|string'
+		]);
+		$name = $request->input('name');
+		$slug = str_slug($name);
+		$active = $request->input('active');
+		$media = (int) $request->input('media');
+		$media = Media::findOrFail($media);
+
+		$category = DiscoverCategory::findOrFail($id);
+		$category->name = $name;
+		$category->active = $active;
+		$category->media_id = $media->id;
+		$category->save();
+
+		return $category;
+	}
+
+	public function discoveryCategoryTagStore(Request $request)
+	{
+		$this->validate($request, [
+			'category_id' => 'required|integer|min:1',
+			'hashtag' => 'required|string',
+			'action' => 'required|string|min:1|max:6'
+		]);
+		$category_id = $request->input('category_id');
+		$category = DiscoverCategory::findOrFail($category_id);
+		$hashtag = Hashtag::whereName($request->input('hashtag'))->firstOrFail();
+
+		$tag = DiscoverCategoryHashtag::firstOrCreate([
+			'hashtag_id' => $hashtag->id,
+			'discover_category_id' => $category->id
+		]);
+
+		if($request->input('action') == 'delete') {
+			$tag->delete();
+			return [];
+		}
+		return $tag;
+	}
+}