Skip to content
Snippets Groups Projects
Commit 2c7f9500 authored by Jennifer Lindgren's avatar Jennifer Lindgren
Browse files

Backend: Remove user projects when removing user.

parent ae23c5ce
No related branches found
No related tags found
No related merge requests found
...@@ -193,6 +193,7 @@ def delete_user(): ...@@ -193,6 +193,7 @@ def delete_user():
'message': 'No user with that username' 'message': 'No user with that username'
}), BAD_REQUEST_STATUS_CODE) }), BAD_REQUEST_STATUS_CODE)
else: else:
db.delete_user_projects(user.id)
db.delete_user(user.id) db.delete_user(user.id)
return generate_response(jsonify({ return generate_response(jsonify({
'success': True, 'success': True,
...@@ -219,12 +220,6 @@ def update_editor_settings_request(id): ...@@ -219,12 +220,6 @@ def update_editor_settings_request(id):
return generate_response(db.user_schema.jsonify(db.update_user(id, user)), return generate_response(db.user_schema.jsonify(db.update_user(id, user)),
OK_STATUS_CODE) OK_STATUS_CODE)
@app.route('/api/user/<id>', methods=['DELETE'])
@jwt_required
def delete_user_request(id):
return generate_response(db.user_schema.jsonify(db.delete_user(id)),
OK_STATUS_CODE)
@app.route('/api/project', methods=['GET']) @app.route('/api/project', methods=['GET'])
@jwt_required @jwt_required
def get_projects_request(): def get_projects_request():
...@@ -294,6 +289,17 @@ def update_project_request(id): ...@@ -294,6 +289,17 @@ def update_project_request(id):
return generate_response(db.project_schema.jsonify( return generate_response(db.project_schema.jsonify(
db.update_project(updated_project)), OK_STATUS_CODE) db.update_project(updated_project)), OK_STATUS_CODE)
@app.route('/api/project/<id>', methods=['DELETE'])
@jwt_required
def delete_project_request(id):
project = json.loads(request.json['project'])
# TODO: Check that the user trying to delete the project is the creator!
db.delete_project(project['id'])
return generate_response(db.project_schema.jsonify({
'success': True,
'message': 'Successfully deleted project'
}), OK_STATUS_CODE)
if __name__ == '__main__': if __name__ == '__main__':
#app.run(debug=True) #app.run(debug=True)
......
...@@ -2,6 +2,7 @@ import os ...@@ -2,6 +2,7 @@ import os
from __init__ import app from __init__ import app
import json
from datetime import datetime from datetime import datetime
from flask import Flask, request, jsonify from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy from flask_sqlalchemy import SQLAlchemy
...@@ -220,6 +221,17 @@ def delete_project(id): ...@@ -220,6 +221,17 @@ def delete_project(id):
db.session.commit() db.session.commit()
return project return project
def delete_user_projects(id):
""" Deletes all projects owned by user with id. """
user = User.query.get(id)
projects = Project.query.all()
app.logger.error(projects)
for project in projects:
creatorObj = json.loads(project.creator.replace('\'', '"'))
if creatorObj['id'] == id:
db.session.delete(project)
db.session.commit()
def delete_all_projects(): def delete_all_projects():
num_projects_deleted = db.session.query(Project).delete() num_projects_deleted = db.session.query(Project).delete()
db.session.commit() db.session.commit()
......
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment