1
0
mirror of https://github.com/Kovah/LinkAce.git synced 2025-02-24 19:22:35 +01:00
LinkAce/app/Http/Controllers/FetchController.php

80 lines
2.0 KiB
PHP
Raw Normal View History

<?php
namespace App\Http\Controllers;
use App\Models\Link;
use App\Models\LinkList;
use App\Models\Tag;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class FetchController extends Controller
{
public function getTags(Request $request): JsonResponse
2018-09-09 21:24:08 +02:00
{
$query = $request->get('query', false);
if (!$query) {
return response()->json([]);
}
$tags = Tag::byUser(auth()->user()->id)
->where('name', 'like', '%' . $query . '%')
->orderBy('name', 'asc')
->get();
if (!$tags->isEmpty()) {
// Properly format the results to be used by Selectize
$tags = $tags->map(function ($item) {
return [
'value' => $item->name,
'text' => $item->name,
];
});
}
return response()->json($tags);
}
public function getLists(Request $request): JsonResponse
{
$query = $request->get('query', false);
if (!$query) {
return response()->json([]);
}
$tags = LinkList::byUser(auth()->user()->id)
->where('name', 'like', '%' . $query . '%')
->orderBy('name', 'asc')
->get();
if (!$tags->isEmpty()) {
// Properly format the results to be used by Selectize
2018-09-09 21:24:08 +02:00
$tags = $tags->map(function ($item) {
return [
'value' => $item->name,
'text' => $item->name,
];
});
}
return response()->json($tags);
}
public function searchExistingUrls(Request $request): JsonResponse
{
$query = $request->get('query', false);
if (!$query) {
return response()->json([]);
}
$linkCount = Link::byUser(auth()->user()->id)
->where('url', trim($query))
->count();
return response()->json(['linkFound' => $linkCount > 0]);
}
}