Minor code review

This commit is contained in:
Dion Moult
2021-08-12 17:56:58 +10:00
parent 7a5b15e5a2
commit 199bc86a88
3 changed files with 36 additions and 71 deletions
+1
View File
@@ -139,6 +139,7 @@ class BcfClient:
self.baseurl = version["api_base_url"] self.baseurl = version["api_base_url"]
def get(self, endpoint, params=None, is_auth_required=False): def get(self, endpoint, params=None, is_auth_required=False):
# TODO: handle error http status codes and raise exception. Follow error.json standard.
headers = {"Authorization": "Bearer " + self.foundation_client.get_access_token()} headers = {"Authorization": "Bearer " + self.foundation_client.get_access_token()}
return requests.get(f"{self.baseurl}{endpoint}", headers=headers, params=params or None).json() return requests.get(f"{self.baseurl}{endpoint}", headers=headers, params=params or None).json()
+10 -13
View File
@@ -1,19 +1,16 @@
# Server-Test # Server-Test
1. Cd to the server directory i.e cd `IfcOpenShell\src\bcfserver` ```
$ pip install -r requirements.txt
$ cd bcfserver/
$ python
>>> from run import db
>>> db.create_all()
$ export FLASK_APP=run.py
$ flask run
```
2. Set up the server by installing the dependencies Go to [http://localhost:5000](http://localhost:5000) to see the server
3. Run `pip install -r requirements.txt` to install the dependencies
4. In Python Shell, do the following
- from run import db
- db.create_all() to setup the database table
5. Run `set FLASK_APP=run.py`
6. Run `flask run` to start the server
7. Go to [http://localhost:5000](http://localhost:5000) to see the server
# Register the user # Register the user
+25 -58
View File
@@ -26,38 +26,23 @@ def validate_client(request):
def invalid_user(): def invalid_user():
message = {"error": "User not recognized"} response = jsonify({"error": "User not recognized"})
response = app.response_class( response.status = 401
response=json.dumps(message),
status=200,
mimetype="application/json",
)
return response return response
def invalid_project(): def invalid_project():
message = {"error": "Project not found"} response = jsonify({"message": "Project not found"})
response = app.response_class( response.status = 404
response=json.dumps(message),
status=400,
mimetype="application/json",
)
return response return response
@bcf.route("/projects") @bcf.route("/projects")
def projects(): def projects():
access_token = validate_client(request) return invalid_user()
if access_token: if validate_client(request):
response = app.response_class( return jsonify(jdata["Projects"])
response=jdata["Projects"], return invalid_user()
status=200,
mimetype="application/json",
)
return response
else:
response = invalid_user()
return response
@bcf.route("/") @bcf.route("/")
@@ -68,21 +53,12 @@ def bcf_3():
@bcf.route("/projects/<project_id>") @bcf.route("/projects/<project_id>")
def project_details(project_id): def project_details(project_id):
access_token = validate_client(request) if validate_client(request):
if access_token: for project in jdata["Projects"]:
for i in jdata["Projects"]: if project["project_id"] == project_id:
if (i["project_id"]) == project_id: return jsonify(project)
response = app.response_class( return invalid_project()
response=i, return invalid_user()
status=200,
mimetype="application/json",
)
return response
response = invalid_project()
return response
else:
response = invalid_user()
return response
@bcf.route("/projects/<project_id>", methods=["PUT"]) @bcf.route("/projects/<project_id>", methods=["PUT"])
@@ -107,24 +83,15 @@ def update_project(project_id):
@bcf.route("/projects/<project_id>/extensions") @bcf.route("/projects/<project_id>/extensions")
def extensions(project_id): def extensions(project_id):
access_token = validate_client(request) if validate_client(request):
if access_token: for project in jdata["Projects"]:
for i in jdata["Projects"]: if project["project_id"] == project_id:
if (i["project_id"]) == project_id: return jsonify(jdata["Extensions"])
response = app.response_class( return invalid_project()
response=jdata["Extensions"], return invalid_user()
status=200,
mimetype="application/json",
)
return response
response = invalid_project()
return response
else:
response = invalid_user()
return response
@bcf.routes("/projects/<project_id>/topics") @bcf.route("/projects/<project_id>/topics")
def topics(project_id): def topics(project_id):
access_token = validate_client(request) access_token = validate_client(request)
if access_token: if access_token:
@@ -143,8 +110,8 @@ def topics(project_id):
return response return response
@bcf.routes("/projects/<project_id>/topics/<topic_id>", methods=["POST"]) @bcf.route("/projects/<project_id>/topics/<topic_id>", methods=["POST"])
def topic_details(project_id, topic_id): def create_topic(project_id, topic_id):
access_token = validate_client(request) access_token = validate_client(request)
if access_token and request.method == "POST": if access_token and request.method == "POST":
body = request.form["data"] body = request.form["data"]
@@ -165,7 +132,7 @@ def topic_details(project_id, topic_id):
return response return response
@bcf.routes("/projects/<project_id>/topics/<topic_id>") @bcf.route("/projects/<project_id>/topics/<topic_id>")
def topic_details(project_id, topic_id): def topic_details(project_id, topic_id):
access_token = validate_client(request) access_token = validate_client(request)
if access_token: if access_token:
@@ -598,7 +565,7 @@ def get_documents(project_id, topic_id):
return response return response
@bcf.routes("/projects/<project_id>/topics/<topic_id>/documents", methods=["POST"]) @bcf.route("/projects/<project_id>/topics/<topic_id>/documents", methods=["POST"])
def create_documents(project_id, topic_id): def create_documents(project_id, topic_id):
access_token = validate_client(request) access_token = validate_client(request)
if access_token and request.method == "POST": if access_token and request.method == "POST":