mirror of
https://github.com/sissbruecker/linkding.git
synced 2025-08-07 10:58:25 +02:00
Remove legacy API (#55)
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
from django.urls import reverse
|
||||||
from rest_framework import viewsets, mixins, status
|
from rest_framework import viewsets, mixins, status
|
||||||
from rest_framework.decorators import action
|
from rest_framework.decorators import action
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
@@ -7,6 +8,7 @@ from bookmarks import queries
|
|||||||
from bookmarks.api.serializers import BookmarkSerializer, TagSerializer
|
from bookmarks.api.serializers import BookmarkSerializer, TagSerializer
|
||||||
from bookmarks.models import Bookmark, Tag
|
from bookmarks.models import Bookmark, Tag
|
||||||
from bookmarks.services.bookmarks import archive_bookmark, unarchive_bookmark
|
from bookmarks.services.bookmarks import archive_bookmark, unarchive_bookmark
|
||||||
|
from bookmarks.services.website_loader import load_website_metadata
|
||||||
|
|
||||||
|
|
||||||
class BookmarkViewSet(viewsets.GenericViewSet,
|
class BookmarkViewSet(viewsets.GenericViewSet,
|
||||||
@@ -41,17 +43,36 @@ class BookmarkViewSet(viewsets.GenericViewSet,
|
|||||||
return self.get_paginated_response(data)
|
return self.get_paginated_response(data)
|
||||||
|
|
||||||
@action(methods=['post'], detail=True)
|
@action(methods=['post'], detail=True)
|
||||||
def archive(self, request, pk):
|
def archive(self, _request, _pk):
|
||||||
bookmark = self.get_object()
|
bookmark = self.get_object()
|
||||||
archive_bookmark(bookmark)
|
archive_bookmark(bookmark)
|
||||||
return Response(status=status.HTTP_204_NO_CONTENT)
|
return Response(status=status.HTTP_204_NO_CONTENT)
|
||||||
|
|
||||||
@action(methods=['post'], detail=True)
|
@action(methods=['post'], detail=True)
|
||||||
def unarchive(self, request, pk):
|
def unarchive(self, _request, _pk):
|
||||||
bookmark = self.get_object()
|
bookmark = self.get_object()
|
||||||
unarchive_bookmark(bookmark)
|
unarchive_bookmark(bookmark)
|
||||||
return Response(status=status.HTTP_204_NO_CONTENT)
|
return Response(status=status.HTTP_204_NO_CONTENT)
|
||||||
|
|
||||||
|
@action(methods=['get'], detail=False)
|
||||||
|
def check(self, request):
|
||||||
|
url = request.GET.get('url')
|
||||||
|
bookmark = Bookmark.objects.filter(owner=request.user, url=url).first()
|
||||||
|
existing_bookmark_data = None
|
||||||
|
|
||||||
|
if bookmark is not None:
|
||||||
|
existing_bookmark_data = {
|
||||||
|
'id': bookmark.id,
|
||||||
|
'edit_url': reverse('bookmarks:edit', args=[bookmark.id])
|
||||||
|
}
|
||||||
|
|
||||||
|
metadata = load_website_metadata(url)
|
||||||
|
|
||||||
|
return Response({
|
||||||
|
'bookmark': existing_bookmark_data,
|
||||||
|
'metadata': metadata.to_dict()
|
||||||
|
}, status=status.HTTP_200_OK)
|
||||||
|
|
||||||
|
|
||||||
class TagViewSet(viewsets.GenericViewSet,
|
class TagViewSet(viewsets.GenericViewSet,
|
||||||
mixins.ListModelMixin,
|
mixins.ListModelMixin,
|
||||||
|
@@ -97,7 +97,7 @@
|
|||||||
toggleIcon(descriptionInput, true);
|
toggleIcon(descriptionInput, true);
|
||||||
|
|
||||||
const websiteUrl = encodeURIComponent(urlInput.value);
|
const websiteUrl = encodeURIComponent(urlInput.value);
|
||||||
const requestUrl = `{% url 'bookmarks:api.check_url' %}?url=${websiteUrl}`;
|
const requestUrl = `{% url 'bookmarks:api-root' %}bookmarks/check?url=${websiteUrl}`;
|
||||||
fetch(requestUrl)
|
fetch(requestUrl)
|
||||||
.then(response => response.json())
|
.then(response => response.json())
|
||||||
.then(data => {
|
.then(data => {
|
||||||
|
@@ -23,6 +23,5 @@ urlpatterns = [
|
|||||||
path('settings/import', views.settings.bookmark_import, name='settings.import'),
|
path('settings/import', views.settings.bookmark_import, name='settings.import'),
|
||||||
path('settings/export', views.settings.bookmark_export, name='settings.export'),
|
path('settings/export', views.settings.bookmark_export, name='settings.export'),
|
||||||
# API
|
# API
|
||||||
path('api/check_url', views.api.check_url, name='api.check_url'),
|
|
||||||
path('api/', include(router.urls), name='api')
|
path('api/', include(router.urls), name='api')
|
||||||
]
|
]
|
||||||
|
@@ -1,3 +1,2 @@
|
|||||||
from .api import *
|
|
||||||
from .bookmarks import *
|
from .bookmarks import *
|
||||||
from .settings import *
|
from .settings import *
|
||||||
|
@@ -1,27 +0,0 @@
|
|||||||
from django.contrib.auth.decorators import login_required
|
|
||||||
from django.forms import model_to_dict
|
|
||||||
from django.http import JsonResponse
|
|
||||||
from django.urls import reverse
|
|
||||||
|
|
||||||
from bookmarks.services.website_loader import load_website_metadata
|
|
||||||
from bookmarks.models import Bookmark
|
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
|
||||||
def check_url(request):
|
|
||||||
url = request.GET.get('url')
|
|
||||||
bookmark = Bookmark.objects.filter(owner=request.user, url=url).first()
|
|
||||||
existing_bookmark_data = None
|
|
||||||
|
|
||||||
if bookmark is not None:
|
|
||||||
existing_bookmark_data = {
|
|
||||||
'id': bookmark.id,
|
|
||||||
'edit_url': reverse('bookmarks:edit', args=[bookmark.id])
|
|
||||||
}
|
|
||||||
|
|
||||||
metadata = load_website_metadata(url)
|
|
||||||
|
|
||||||
return JsonResponse({
|
|
||||||
'bookmark': existing_bookmark_data,
|
|
||||||
'metadata': metadata.to_dict()
|
|
||||||
})
|
|
Reference in New Issue
Block a user