aboutsummaryrefslogtreecommitdiff
path: root/server/szurubooru/api
diff options
context:
space:
mode:
authorHunternif2019-04-19 03:54:25 +0700
committerHunternif2019-04-19 04:07:27 +0700
commit7948feb98556a13b8be8305233c13e67c858c327 (patch)
treea1ab03ff433a73d31b9e7640ca551da33446a12b /server/szurubooru/api
parent4ddb39eea7d937c97e2a99c3bae1eca988b8c460 (diff)
server/metrics: implement metrics search config + api + tests
Diffstat (limited to 'server/szurubooru/api')
-rw-r--r--server/szurubooru/api/__init__.py1
-rw-r--r--server/szurubooru/api/metric_api.py16
2 files changed, 16 insertions, 1 deletions
diff --git a/server/szurubooru/api/__init__.py b/server/szurubooru/api/__init__.py
index 0d7f75f..a888a19 100644
--- a/server/szurubooru/api/__init__.py
+++ b/server/szurubooru/api/__init__.py
@@ -8,3 +8,4 @@ import szurubooru.api.comment_api
import szurubooru.api.password_reset_api
import szurubooru.api.snapshot_api
import szurubooru.api.upload_api
+import szurubooru.api.metric_api
diff --git a/server/szurubooru/api/metric_api.py b/server/szurubooru/api/metric_api.py
index 9f0cd27..b86ea23 100644
--- a/server/szurubooru/api/metric_api.py
+++ b/server/szurubooru/api/metric_api.py
@@ -3,14 +3,28 @@ from szurubooru import db, model, search, rest
from szurubooru.func import auth, metrics, snapshots, serialization, tags
+_search_executor_config = search.configs.PostSearchConfig()
+_search_executor = search.Executor(_search_executor_config)
+
+
def _serialize(ctx: rest.Context, metric: model.Metric) -> rest.Response:
return metrics.serialize_metric(
metric, options=serialization.get_serialization_options(ctx)
)
+@rest.routes.get('/metrics/?')
+def get_post_metrics(
+ ctx: rest.Context, params: Dict[str, str] = {}) -> rest.Response:
+ auth.verify_privilege(ctx.user, 'metrics:list')
+ _search_executor_config.user = ctx.user
+ return _search_executor.execute_and_serialize(
+ ctx, lambda post_metric: _serialize(ctx, post_metric))
+
+
@rest.routes.post('/metrics/?')
-def create_metric(ctx: rest.Context, params: Dict[str, str] = {}) -> rest.Response:
+def create_metric(
+ ctx: rest.Context, params: Dict[str, str] = {}) -> rest.Response:
auth.verify_privilege(ctx.user, 'metrics:create')
tag_name = ctx.get_param_as_string('tag_name')
tag = tags.get_tag_by_name(tag_name)

© 2015 - 2026 Jakob L. Kreuze