From d56c2627f4d13261d8818e4085996f15e5720416 Mon Sep 17 00:00:00 2001 From: benarc Date: Mon, 15 Jun 2020 16:30:24 +0100 Subject: [PATCH] Endpoint for updating user extensions vie usermanager --- .../templates/usermanager/_api_docs.html | 18 ++++++++++++++++++ lnbits/extensions/usermanager/views_api.py | 19 ++++++++++++++++++- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/lnbits/extensions/usermanager/templates/usermanager/_api_docs.html b/lnbits/extensions/usermanager/templates/usermanager/_api_docs.html index e692388..6419c33 100644 --- a/lnbits/extensions/usermanager/templates/usermanager/_api_docs.html +++ b/lnbits/extensions/usermanager/templates/usermanager/_api_docs.html @@ -212,4 +212,22 @@ + + + + POST + /usermanager/api/v1/extensions +
Headers
+ {"X-Api-Key": <string>} +
Curl example
+ curl -X POST {{ request.url_root }}usermanager/api/v1/extensions -d + '{"userid": <string>, "extension": <string>, "active": <integer>}' -H "X-Api-Key: {{ + g.user.wallets[0].inkey }}" -H "Content-type: application/json" + +
+
+
diff --git a/lnbits/extensions/usermanager/views_api.py b/lnbits/extensions/usermanager/views_api.py index d64c54d..b86cfde 100644 --- a/lnbits/extensions/usermanager/views_api.py +++ b/lnbits/extensions/usermanager/views_api.py @@ -11,6 +11,9 @@ from base64 import urlsafe_b64encode from uuid import uuid4 from lnbits.db import open_ext_db +from ...core import ( + update_user_extension, +) ###Users @@ -37,13 +40,27 @@ def api_usermanager_users_create(): @usermanager_ext.route("/api/v1/users/", methods=["DELETE"]) @api_check_wallet_key(key_type="invoice") def api_usermanager_users_delete(user_id): - print("cunt") user = get_usermanager_user(user_id) if not user: return jsonify({"message": "User does not exist."}), HTTPStatus.NOT_FOUND delete_usermanager_user(user_id) return "", HTTPStatus.NO_CONTENT +###Activate Extension + +@usermanager_ext.route("/api/v1/extensions", methods=["POST"]) +@api_check_wallet_key(key_type="invoice") +@api_validate_post_request(schema={ + "extension": {"type": "string", "empty": False, "required": True}, + "userid": {"type": "string", "empty": False, "required": True}, + "active": {"type": "boolean", "required": True} +}) +def api_usermanager_activate_extension(): + user = get_user(g.data["userid"]) + if not user: + return jsonify({"error": "no such user"}), HTTPStatus.NO_CONTENT + user = update_user_extension(user_id=g.data["userid"], extension=g.data["extension"], active=g.data["active"]) + return jsonify({"extension": "updated"}), HTTPStatus.CREATED ###Wallets