aboutsummaryrefslogtreecommitdiff
path: root/server/szurubooru/api
diff options
context:
space:
mode:
authorrr-2016-08-14 20:06:49 +0200
committerrr-2016-08-16 21:51:25 +0200
commit80af79779d01fe949af84fdb43f6b82085cd4a9c (patch)
tree5353b010afb89292ea5ab693ead355dc2426fb65 /server/szurubooru/api
parent03a7bd0d5cbf52a9de8ad6aacad5f173c2e56785 (diff)
server/snapshots: rewrite
Diffstat (limited to 'server/szurubooru/api')
-rw-r--r--server/szurubooru/api/post_api.py18
-rw-r--r--server/szurubooru/api/snapshot_api.py2
-rw-r--r--server/szurubooru/api/tag_api.py10
-rw-r--r--server/szurubooru/api/tag_category_api.py8
4 files changed, 21 insertions, 17 deletions
diff --git a/server/szurubooru/api/post_api.py b/server/szurubooru/api/post_api.py
index 53bbcd2..b661322 100644
--- a/server/szurubooru/api/post_api.py
+++ b/server/szurubooru/api/post_api.py
@@ -1,5 +1,5 @@
import datetime
-from szurubooru import search
+from szurubooru import search, db
from szurubooru.rest import routes
from szurubooru.func import (
auth, tags, posts, snapshots, favorites, scores, util, versions)
@@ -44,6 +44,9 @@ def create_post(ctx, _params=None):
content, tag_names, None if anonymous else ctx.user)
if len(new_tags):
auth.verify_privilege(ctx.user, 'tags:create')
+ db.session.flush()
+ for tag in new_tags:
+ snapshots.create(tag, ctx.user)
posts.update_post_safety(post, safety)
posts.update_post_source(post, source)
posts.update_post_relations(post, relations)
@@ -52,7 +55,7 @@ def create_post(ctx, _params=None):
if ctx.has_file('thumbnail'):
posts.update_post_thumbnail(post, ctx.get_file('thumbnail'))
ctx.session.add(post)
- snapshots.save_entity_creation(post, ctx.user)
+ snapshots.create(post, ctx.user)
ctx.session.commit()
tags.export_to_json()
return _serialize_post(ctx, post)
@@ -78,6 +81,9 @@ def update_post(ctx, params):
new_tags = posts.update_post_tags(post, ctx.get_param_as_list('tags'))
if len(new_tags):
auth.verify_privilege(ctx.user, 'tags:create')
+ db.session.flush()
+ for tag in new_tags:
+ snapshots.create(tag, ctx.user)
if ctx.has_param('safety'):
auth.verify_privilege(ctx.user, 'posts:edit:safety')
posts.update_post_safety(post, ctx.get_param_as_string('safety'))
@@ -100,7 +106,7 @@ def update_post(ctx, params):
posts.update_post_thumbnail(post, ctx.get_file('thumbnail'))
post.last_edit_time = datetime.datetime.utcnow()
ctx.session.flush()
- snapshots.save_entity_modification(post, ctx.user)
+ snapshots.modify(post, ctx.user)
ctx.session.commit()
tags.export_to_json()
return _serialize_post(ctx, post)
@@ -111,7 +117,7 @@ def delete_post(ctx, params):
auth.verify_privilege(ctx.user, 'posts:delete')
post = posts.get_post_by_id(params['post_id'])
versions.verify_version(post, ctx)
- snapshots.save_entity_deletion(post, ctx.user)
+ snapshots.delete(post, ctx.user)
posts.delete(post)
ctx.session.commit()
tags.export_to_json()
@@ -134,9 +140,7 @@ def set_featured_post(ctx, _params=None):
raise posts.PostAlreadyFeaturedError(
'Post %r is already featured.' % post_id)
posts.feature_post(post, ctx.user)
- if featured_post:
- snapshots.save_entity_modification(featured_post, ctx.user)
- snapshots.save_entity_modification(post, ctx.user)
+ snapshots.modify(post, ctx.user)
ctx.session.commit()
return _serialize_post(ctx, post)
diff --git a/server/szurubooru/api/snapshot_api.py b/server/szurubooru/api/snapshot_api.py
index 1a5f589..009d8c9 100644
--- a/server/szurubooru/api/snapshot_api.py
+++ b/server/szurubooru/api/snapshot_api.py
@@ -10,4 +10,4 @@ _search_executor = search.Executor(search.configs.SnapshotSearchConfig())
def get_snapshots(ctx, _params=None):
auth.verify_privilege(ctx.user, 'snapshots:list')
return _search_executor.execute_and_serialize(
- ctx, snapshots.serialize_snapshot)
+ ctx, lambda snapshot: snapshots.serialize_snapshot(snapshot, ctx.user))
diff --git a/server/szurubooru/api/tag_api.py b/server/szurubooru/api/tag_api.py
index 4daf7e5..81872de 100644
--- a/server/szurubooru/api/tag_api.py
+++ b/server/szurubooru/api/tag_api.py
@@ -20,7 +20,7 @@ def _create_if_needed(tag_names, user):
auth.verify_privilege(user, 'tags:create')
db.session.flush()
for tag in new_tags:
- snapshots.save_entity_creation(tag, user)
+ snapshots.create(tag, user)
@routes.get('/tags/?')
@@ -50,7 +50,7 @@ def create_tag(ctx, _params=None):
tags.update_tag_description(tag, description)
ctx.session.add(tag)
ctx.session.flush()
- snapshots.save_entity_creation(tag, ctx.user)
+ snapshots.create(tag, ctx.user)
ctx.session.commit()
tags.export_to_json()
return _serialize(ctx, tag)
@@ -91,7 +91,7 @@ def update_tag(ctx, params):
tags.update_tag_implications(tag, implications)
tag.last_edit_time = datetime.datetime.utcnow()
ctx.session.flush()
- snapshots.save_entity_modification(tag, ctx.user)
+ snapshots.modify(tag, ctx.user)
ctx.session.commit()
tags.export_to_json()
return _serialize(ctx, tag)
@@ -102,7 +102,7 @@ def delete_tag(ctx, params):
tag = tags.get_tag_by_name(params['tag_name'])
versions.verify_version(tag, ctx)
auth.verify_privilege(ctx.user, 'tags:delete')
- snapshots.save_entity_deletion(tag, ctx.user)
+ snapshots.delete(tag, ctx.user)
tags.delete(tag)
ctx.session.commit()
tags.export_to_json()
@@ -120,7 +120,7 @@ def merge_tags(ctx, _params=None):
versions.bump_version(target_tag)
auth.verify_privilege(ctx.user, 'tags:merge')
tags.merge_tags(source_tag, target_tag)
- snapshots.save_entity_deletion(source_tag, ctx.user)
+ snapshots.merge(source_tag, target_tag, ctx.user)
ctx.session.commit()
tags.export_to_json()
return _serialize(ctx, target_tag)
diff --git a/server/szurubooru/api/tag_category_api.py b/server/szurubooru/api/tag_category_api.py
index 27efb1c..882af10 100644
--- a/server/szurubooru/api/tag_category_api.py
+++ b/server/szurubooru/api/tag_category_api.py
@@ -25,7 +25,7 @@ def create_tag_category(ctx, _params=None):
category = tag_categories.create_category(name, color)
ctx.session.add(category)
ctx.session.flush()
- snapshots.save_entity_creation(category, ctx.user)
+ snapshots.create(category, ctx.user)
ctx.session.commit()
tags.export_to_json()
return _serialize(ctx, category)
@@ -52,7 +52,7 @@ def update_tag_category(ctx, params):
tag_categories.update_category_color(
category, ctx.get_param_as_string('color'))
ctx.session.flush()
- snapshots.save_entity_modification(category, ctx.user)
+ snapshots.modify(category, ctx.user)
ctx.session.commit()
tags.export_to_json()
return _serialize(ctx, category)
@@ -64,7 +64,7 @@ def delete_tag_category(ctx, params):
versions.verify_version(category, ctx)
auth.verify_privilege(ctx.user, 'tag_categories:delete')
tag_categories.delete_category(category)
- snapshots.save_entity_deletion(category, ctx.user)
+ snapshots.delete(category, ctx.user)
ctx.session.commit()
tags.export_to_json()
return {}
@@ -75,7 +75,7 @@ def set_tag_category_as_default(ctx, params):
auth.verify_privilege(ctx.user, 'tag_categories:set_default')
category = tag_categories.get_category_by_name(params['category_name'])
tag_categories.set_default_category(category)
- snapshots.save_entity_modification(category, ctx.user)
+ snapshots.modify(category, ctx.user)
ctx.session.commit()
tags.export_to_json()
return _serialize(ctx, category)

© 2015 - 2026 Jakob L. Kreuze