diff options
| author | Hunternif | 2019-04-23 02:08:05 +0700 |
|---|---|---|
| committer | Hunternif | 2019-04-23 02:08:05 +0700 |
| commit | 7ae11f483ff1e1fc3cf44775b07d666a7fe28a7f (patch) | |
| tree | 0d899410f8a0fb4e38ad65e9b01aad7afeb2f2a8 /server/szurubooru/api | |
| parent | f020db29d17e2c34d1776132532828553277639a (diff) | |
server: delete metrics
Diffstat (limited to 'server/szurubooru/api')
| -rw-r--r-- | server/szurubooru/api/metric_api.py | 19 |
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: |