diff options
| author | Hunternif | 2019-04-19 03:54:25 +0700 |
|---|---|---|
| committer | Hunternif | 2019-04-19 04:07:27 +0700 |
| commit | 7948feb98556a13b8be8305233c13e67c858c327 (patch) | |
| tree | a1ab03ff433a73d31b9e7640ca551da33446a12b /server/szurubooru/api | |
| parent | 4ddb39eea7d937c97e2a99c3bae1eca988b8c460 (diff) | |
server/metrics: implement metrics search config + api + tests
Diffstat (limited to 'server/szurubooru/api')
| -rw-r--r-- | server/szurubooru/api/__init__.py | 1 | ||||
| -rw-r--r-- | server/szurubooru/api/metric_api.py | 16 |
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) |