aboutsummaryrefslogtreecommitdiff
path: root/server/szurubooru/api
diff options
context:
space:
mode:
authorHunternif2019-04-23 02:08:05 +0700
committerHunternif2019-04-23 02:08:05 +0700
commit7ae11f483ff1e1fc3cf44775b07d666a7fe28a7f (patch)
tree0d899410f8a0fb4e38ad65e9b01aad7afeb2f2a8 /server/szurubooru/api
parentf020db29d17e2c34d1776132532828553277639a (diff)
server: delete metrics
Diffstat (limited to 'server/szurubooru/api')
-rw-r--r--server/szurubooru/api/metric_api.py19
1 files changed, 18 insertions, 1 deletions
diff --git a/server/szurubooru/api/metric_api.py b/server/szurubooru/api/metric_api.py
index 12babbd..15f48d7 100644
--- a/server/szurubooru/api/metric_api.py
+++ b/server/szurubooru/api/metric_api.py
@@ -1,6 +1,8 @@
from typing import Optional, List, Dict
from szurubooru import db, model, search, rest
-from szurubooru.func import auth, metrics, snapshots, serialization, tags
+from szurubooru.func import (
+ auth, metrics, snapshots, serialization, tags, versions
+)
_search_executor_config = search.configs.PostMetricSearchConfig()
@@ -21,6 +23,10 @@ def _serialize_post_metric(
)
+def _get_metric(params: Dict[str, str]) -> model.Tag:
+ return metrics.get_metric_by_tag_name(params['tag_name'])
+
+
@rest.routes.get('/metrics/?')
def get_metrics(
ctx: rest.Context, params: Dict[str, str] = {}) -> rest.Response:
@@ -47,6 +53,17 @@ def create_metric(
return _serialize_metric(ctx, metric)
+@rest.routes.delete('/metric/(?P<tag_name>.+)')
+def delete_metric(ctx: rest.Context, params: Dict[str, str]) -> rest.Response:
+ metric = _get_metric(params)
+ versions.verify_version(metric, ctx)
+ auth.verify_privilege(ctx.user, 'metrics:delete')
+ # snapshots.delete(metric, ctx.user)
+ metrics.delete_metric(metric)
+ ctx.session.commit()
+ return {}
+
+
@rest.routes.get('/post-metrics/?')
def get_post_metrics(
ctx: rest.Context, params: Dict[str, str] = {}) -> rest.Response:

© 2015 - 2026 Jakob L. Kreuze