1 <?php namespace BookStack\Http\Controllers;
3 use BookStack\Repos\TagRepo;
4 use Illuminate\Http\Request;
5 use BookStack\Http\Requests;
7 class TagController extends Controller
13 * TagController constructor.
16 public function __construct(TagRepo $tagRepo)
18 $this->tagRepo = $tagRepo;
22 * Get all the Tags for a particular entity
26 public function getForEntity($entityType, $entityId)
28 $tags = $this->tagRepo->getForEntity($entityType, $entityId);
29 return response()->json($tags);
33 * Update the tags for a particular entity.
36 * @param Request $request
39 public function updateForEntity($entityType, $entityId, Request $request)
41 $entity = $this->tagRepo->getEntity($entityType, $entityId, 'update');
42 if ($entity === null) return $this->jsonError("Entity not found", 404);
44 $inputTags = $request->input('tags');
45 $tags = $this->tagRepo->saveTagsToEntity($entity, $inputTags);
46 return response()->json([
48 'message' => 'Tags successfully updated'
53 * Get tag name suggestions from a given search term.
54 * @param Request $request
56 public function getNameSuggestions(Request $request)
58 $searchTerm = $request->has('search') ? $request->get('search') : false;
59 $suggestions = $this->tagRepo->getNameSuggestions($searchTerm);
60 return response()->json($suggestions);
64 * Get tag value suggestions from a given search term.
65 * @param Request $request
67 public function getValueSuggestions(Request $request)
69 $searchTerm = $request->has('search') ? $request->get('search') : false;
70 $tagName = $request->has('name') ? $request->get('name') : false;
71 $suggestions = $this->tagRepo->getValueSuggestions($searchTerm, $tagName);
72 return response()->json($suggestions);