mirror of
https://github.com/alopexc0de/Simple-Bookmarking-Service.git
synced 2024-12-22 14:22:39 +00:00
Add ability to update bookmarks
This commit is contained in:
parent
74161608df
commit
60a839a328
58
api/api.py
58
api/api.py
@ -31,6 +31,19 @@ class API:
|
|||||||
self.response_type = 'application/json'
|
self.response_type = 'application/json'
|
||||||
self.format_date = datetime.datetime.strftime
|
self.format_date = datetime.datetime.strftime
|
||||||
|
|
||||||
|
def _get_bookmark_object(self, bookmark):
|
||||||
|
"""
|
||||||
|
Shortcut to return the `bookmark_object` that several methods return
|
||||||
|
"""
|
||||||
|
# Maybe I need to use `sqlite3.Cursor.description` or `sqlite3.Row.keys()`
|
||||||
|
return {
|
||||||
|
'uuid': bookmark[0].hex,
|
||||||
|
'uri': bookmark[1],
|
||||||
|
'title': bookmark[2],
|
||||||
|
'date_created': self.format_date(bookmark[3], self.dt_fmt),
|
||||||
|
'date_updated': self.format_date(bookmark[4], self.dt_fmt) if bookmark[4] != None else '',
|
||||||
|
}
|
||||||
|
|
||||||
def save_bookmark(self, title, uri):
|
def save_bookmark(self, title, uri):
|
||||||
"""
|
"""
|
||||||
Save the bookmark with `title` and `uri`
|
Save the bookmark with `title` and `uri`
|
||||||
@ -59,16 +72,7 @@ class API:
|
|||||||
if bookmark == None:
|
if bookmark == None:
|
||||||
return abort(404, "Provided bookmark doesn't exist or has been deleted")
|
return abort(404, "Provided bookmark doesn't exist or has been deleted")
|
||||||
|
|
||||||
# Maybe I need to use `sqlite3.Cursor.description` or `sqlite3.Row.keys()`
|
return json.dumps(self._get_bookmark_object(bookmark))
|
||||||
bookmark_object = {
|
|
||||||
'uuid': bookmark[0].hex,
|
|
||||||
'uri': bookmark[1],
|
|
||||||
'title': bookmark[2],
|
|
||||||
'date_created': self.format_date(bookmark[3], self.dt_fmt),
|
|
||||||
'date_updated': self.format_date(bookmark[4], self.dt_fmt) if bookmark[4] != None else '',
|
|
||||||
}
|
|
||||||
|
|
||||||
return json.dumps(bookmark_object)
|
|
||||||
|
|
||||||
def get_all_bookmarks(self):
|
def get_all_bookmarks(self):
|
||||||
"""
|
"""
|
||||||
@ -107,3 +111,37 @@ class API:
|
|||||||
'uuid': bookmark_id,
|
'uuid': bookmark_id,
|
||||||
'bookmark_deleted': self.database.delete_bookmark(UUID(bookmark_id)),
|
'bookmark_deleted': self.database.delete_bookmark(UUID(bookmark_id)),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
def update_bookmark_title(self, bookmark_id, title):
|
||||||
|
"""
|
||||||
|
Updates the bookmark that is associated
|
||||||
|
with `bookmark_id` with the provided `title`
|
||||||
|
|
||||||
|
Returns a JSON object containing
|
||||||
|
everything about the bookmark
|
||||||
|
"""
|
||||||
|
response.content_type = self.response_type
|
||||||
|
bookmark = self.database.update_bookmark_title(bookmark_id, title)
|
||||||
|
|
||||||
|
if bookmark == None:
|
||||||
|
return abort(404, "Provided bookmark doesn't exist or has been deleted")
|
||||||
|
|
||||||
|
return json.dumps(self._get_bookmark_object(bookmark))
|
||||||
|
|
||||||
|
def update_bookmark_uri(self, bookmark_id, uri):
|
||||||
|
"""
|
||||||
|
Updates the bookmark that is associated
|
||||||
|
with `bookmark_id` with the provided `uri`
|
||||||
|
|
||||||
|
This action will change the `bookmark_id`
|
||||||
|
|
||||||
|
Returns a JSON object containing
|
||||||
|
everything about the bookmark
|
||||||
|
"""
|
||||||
|
response.content_type = self.response_type
|
||||||
|
bookmark = self.database.update_bookmark_uri(bookmark_id, uri)
|
||||||
|
|
||||||
|
if bookmark == None:
|
||||||
|
return abort(404, "Provided bookmark doesn't exist or has been deleted")
|
||||||
|
|
||||||
|
return json.dumps(self._get_bookmark_object(bookmark))
|
||||||
|
@ -33,5 +33,13 @@ def get_bookmark(bookmark_id):
|
|||||||
def delete_bookmark(bookmark_id):
|
def delete_bookmark(bookmark_id):
|
||||||
return _api.delete_bookmark(bookmark_id)
|
return _api.delete_bookmark(bookmark_id)
|
||||||
|
|
||||||
|
@route('/update/title/<bookmark_id>/<title>')
|
||||||
|
def update_bookmark_title(bookmark_id, title):
|
||||||
|
return _api.update_bookmark_title(bookmark_id, title)
|
||||||
|
|
||||||
|
@route('/update/uri/<bookmark_id>/<uri:path>')
|
||||||
|
def update_bookmark_uri(bookmark_id, uri):
|
||||||
|
return _api.update_bookmark_uri(bookmark_id, uri)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
run(host='localhost', port=8080)
|
run(host='localhost', port=8080)
|
||||||
|
Loading…
Reference in New Issue
Block a user