diff options
author | Frederick Muriuki Muriithi | 2023-05-10 15:28:11 +0300 |
---|---|---|
committer | Frederick Muriuki Muriithi | 2023-05-10 15:28:11 +0300 |
commit | e373450236e05a4be79b42e99615af20e8b8e536 (patch) | |
tree | adcecf21509f125a66882b8aeaa149c25d4aa9bc /gn3/auth/authorisation/users/views.py | |
parent | 1d6a4ad6b41c01a06d8ee8984c41e07a36484590 (diff) | |
download | genenetwork3-e373450236e05a4be79b42e99615af20e8b8e536.tar.gz |
auth: Add the /oauth2/user/collections/list endpoint
Add an endpoint to list a user's collections. This only works for logged in
users.
Diffstat (limited to 'gn3/auth/authorisation/users/views.py')
-rw-r--r-- | gn3/auth/authorisation/users/views.py | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/gn3/auth/authorisation/users/views.py b/gn3/auth/authorisation/users/views.py index f343e77..0a82de3 100644 --- a/gn3/auth/authorisation/users/views.py +++ b/gn3/auth/authorisation/users/views.py @@ -4,6 +4,7 @@ from typing import Any from functools import partial import sqlite3 +from redis import Redis from email_validator import validate_email, EmailNotValidError from flask import request, jsonify, Response, Blueprint, current_app @@ -11,7 +12,9 @@ from gn3.auth import db from gn3.auth.dictify import dictify from gn3.auth.db_utils import with_db_connection -from ..users.models import list_users +from .models import list_users +from .collections import user_collections, old_user_collections + from ..groups.models import user_group as _user_group from ..resources.models import user_resources as _user_resources from ..roles.models import assign_default_roles, user_roles as _user_roles @@ -169,3 +172,14 @@ def list_all_users() -> Response: with require_oauth.acquire("profile group") as _the_token: return jsonify(tuple( dictify(user) for user in with_db_connection(list_users))) + +@users.route("collections/list") +@require_oauth("profile user") +def list_user_collections() -> Response: + """Retrieve the user ids""" + with (require_oauth.acquire("profile user") as the_token, + Redis.from_url(current_app.config["REDIS_URI"], + decode_responses=True) as redisconn): + return jsonify( + user_collections(redisconn, the_token.user) or + old_user_collections(redisconn, the_token.user)) |