#24 Implement REST API (#32)

* #24 Implement readonly bookmark API

* #24 Implement create/update bookmark API

* #24 Fix title, description not allowing blank values

* #24 Code cleanup

* #24 Add modification dates to response

* #24 Add API docs

* #24 Implement delete bookmark API

* #24 Fix API docs link

* #24 Fix API docs link

* #24 Implement tag API

Co-authored-by: Sascha Ißbrücker <sissbruecker@lyska.io>
This commit is contained in:
Sascha Ißbrücker
2020-09-27 09:34:56 +02:00
committed by GitHub
parent 7fb73111b2
commit e497bcb5c0
15 changed files with 349 additions and 16 deletions

View File

@@ -61,7 +61,7 @@ def new(request):
auto_close = form.data['auto_close']
if form.is_valid():
current_user = request.user
create_bookmark(form, current_user)
create_bookmark(form.save(commit=False), form.data['tag_string'], current_user)
if auto_close:
return HttpResponseRedirect(reverse('bookmarks:close'))
else:
@@ -92,7 +92,7 @@ def edit(request, bookmark_id: int):
form = BookmarkForm(request.POST, instance=bookmark)
return_url = form.data['return_url']
if form.is_valid():
update_bookmark(form, request.user)
update_bookmark(form.save(commit=False), form.data['tag_string'], request.user)
return HttpResponseRedirect(return_url)
else:
return_url = request.GET.get('return_url')

View File

@@ -5,6 +5,7 @@ from django.contrib.auth.decorators import login_required
from django.http import HttpResponseRedirect, HttpResponse
from django.shortcuts import render
from django.urls import reverse
from rest_framework.authtoken.models import Token
from bookmarks.queries import query_bookmarks
from bookmarks.services.exporter import export_netscape_html
@@ -17,9 +18,11 @@ logger = logging.getLogger(__name__)
def index(request):
import_success_message = _find_message_with_tag(messages.get_messages(request), 'bookmark_import_success')
import_errors_message = _find_message_with_tag(messages.get_messages(request), 'bookmark_import_errors')
api_token = Token.objects.get_or_create(user=request.user)[0]
return render(request, 'settings/index.html', {
'import_success_message': import_success_message,
'import_errors_message': import_errors_message,
'api_token': api_token.key
})