diff options
| author | rr- | 2016-08-14 20:06:49 +0200 |
|---|---|---|
| committer | rr- | 2016-08-16 21:51:25 +0200 |
| commit | 80af79779d01fe949af84fdb43f6b82085cd4a9c (patch) | |
| tree | 5353b010afb89292ea5ab693ead355dc2426fb65 /server/szurubooru/api | |
| parent | 03a7bd0d5cbf52a9de8ad6aacad5f173c2e56785 (diff) | |
server/snapshots: rewrite
Diffstat (limited to 'server/szurubooru/api')
| -rw-r--r-- | server/szurubooru/api/post_api.py | 18 | ||||
| -rw-r--r-- | server/szurubooru/api/snapshot_api.py | 2 | ||||
| -rw-r--r-- | server/szurubooru/api/tag_api.py | 10 | ||||
| -rw-r--r-- | server/szurubooru/api/tag_category_api.py | 8 |
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) |