summaryrefslogtreecommitdiff
path: root/opendc-web/opendc-web-api/opendc/api/v2/projects/endpoint.py
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2021-05-14 16:50:23 +0200
committerFabian Mastenbroek <mail.fabianm@gmail.com>2021-05-17 17:06:51 +0200
commit05d2318538eba71ac0555dc5ec146499d9cb0592 (patch)
tree6163e6429879109e322a4c0883fab168031aa109 /opendc-web/opendc-web-api/opendc/api/v2/projects/endpoint.py
parent0c6ccca5fac44ab40671627fd3181e9b138672fa (diff)
api: Remove user handling from OpenDC API server
This change removes any of the user handling and endpoints from the OpenDC API server. The API server does not need to store user information other than an identifier in the database.
Diffstat (limited to 'opendc-web/opendc-web-api/opendc/api/v2/projects/endpoint.py')
-rw-r--r--opendc-web/opendc-web-api/opendc/api/v2/projects/endpoint.py14
1 files changed, 9 insertions, 5 deletions
diff --git a/opendc-web/opendc-web-api/opendc/api/v2/projects/endpoint.py b/opendc-web/opendc-web-api/opendc/api/v2/projects/endpoint.py
index dacbe6a4..b381d689 100644
--- a/opendc-web/opendc-web-api/opendc/api/v2/projects/endpoint.py
+++ b/opendc-web/opendc-web-api/opendc/api/v2/projects/endpoint.py
@@ -2,15 +2,22 @@ from datetime import datetime
from opendc.models.project import Project
from opendc.models.topology import Topology
-from opendc.models.user import User
from opendc.util.database import Database
from opendc.util.rest import Response
+def GET(request):
+ """Get the authorized projects of the user"""
+ user_id = request.current_user['sub']
+ projects = Project.get_for_user(user_id)
+ return Response(200, 'Successfully retrieved projects', projects)
+
+
def POST(request):
"""Create a new project, and return that new project."""
request.check_required_parameters(body={'project': {'name': 'string'}})
+ user_id = request.current_user['sub']
topology = Topology({'name': 'Default topology', 'rooms': []})
topology.insert()
@@ -20,13 +27,10 @@ def POST(request):
project.set_property('datetimeLastEdited', Database.datetime_to_string(datetime.now()))
project.set_property('topologyIds', [topology.get_id()])
project.set_property('portfolioIds', [])
+ project.set_property('authorizations', [{'userId': user_id, 'authorizationLevel': 'OWN'}])
project.insert()
topology.set_property('projectId', project.get_id())
topology.update()
- user = User.from_google_id(request.current_user['sub'])
- user.obj['authorizations'].append({'projectId': project.get_id(), 'authorizationLevel': 'OWN'})
- user.update()
-
return Response(200, 'Successfully created project.', project.obj)