[ 'name' => ['required', 'string'], ], ]; } /** * Get a list of tag names used in the system. * Only the name field can be used in filters. */ public function listNames(): JsonResponse { $tagQuery = $this->tagRepo ->queryWithTotalsForApi(''); return $this->apiListingResponse($tagQuery, [ 'name', 'values', 'usages', 'page_count', 'chapter_count', 'book_count', 'shelf_count', ], [], [ 'name' ]); } /** * Get a list of tag values, which have been set for the given tag name, * which must be provided as a query parameter on the request. * Only the value field can be used in filters. */ public function listValues(Request $request): JsonResponse { $data = $this->validate($request, $this->rules()['listValues']); $name = $data['name']; $tagQuery = $this->tagRepo->queryWithTotalsForApi($name); return $this->apiListingResponse($tagQuery, [ 'name', 'value', 'usages', 'page_count', 'chapter_count', 'book_count', 'shelf_count', ], [], [ 'value', ]); } }