diff options
Diffstat (limited to 'web-server')
7 files changed, 17 insertions, 16 deletions
diff --git a/web-server/opendc/api/v2/experiments/experimentId/endpoint.py b/web-server/opendc/api/v2/experiments/experimentId/endpoint.py index 103c24ac..5120368e 100644 --- a/web-server/opendc/api/v2/experiments/experimentId/endpoint.py +++ b/web-server/opendc/api/v2/experiments/experimentId/endpoint.py @@ -60,6 +60,6 @@ def DELETE(request): simulation.obj['experimentIds'].remove(request.params_path['experimentId']) simulation.update() - experiment.delete() + old_object = experiment.delete() - return Response(200, 'Successfully deleted experiment.', experiment.obj) + return Response(200, 'Successfully deleted experiment.', old_object) diff --git a/web-server/opendc/api/v2/simulations/endpoint.py b/web-server/opendc/api/v2/simulations/endpoint.py index c978fad7..bcdea650 100644 --- a/web-server/opendc/api/v2/simulations/endpoint.py +++ b/web-server/opendc/api/v2/simulations/endpoint.py @@ -15,7 +15,7 @@ def POST(request): topology = Topology({'name': 'Default topology', 'rooms': []}) topology.insert() - simulation = Simulation({'simulation': request.params_body['simulation']}) + simulation = Simulation(request.params_body['simulation']) simulation.set_property('datetimeCreated', Database.datetime_to_string(datetime.now())) simulation.set_property('datetimeLastEdited', Database.datetime_to_string(datetime.now())) simulation.set_property('topologyIds', [topology.get_id()]) diff --git a/web-server/opendc/api/v2/simulations/simulationId/endpoint.py b/web-server/opendc/api/v2/simulations/simulationId/endpoint.py index 05b38686..93617ea8 100644 --- a/web-server/opendc/api/v2/simulations/simulationId/endpoint.py +++ b/web-server/opendc/api/v2/simulations/simulationId/endpoint.py @@ -55,6 +55,6 @@ def DELETE(request): experiment = Experiment.from_id(experiment_id) experiment.delete() - simulation.delete() + old_object = simulation.delete() - return Response(200, 'Successfully deleted simulation.', simulation.obj) + return Response(200, 'Successfully deleted simulation.', old_object) diff --git a/web-server/opendc/api/v2/topologies/topologyId/endpoint.py b/web-server/opendc/api/v2/topologies/topologyId/endpoint.py index 84f20903..1dcccb3e 100644 --- a/web-server/opendc/api/v2/topologies/topologyId/endpoint.py +++ b/web-server/opendc/api/v2/topologies/topologyId/endpoint.py @@ -51,6 +51,6 @@ def DELETE(request): simulation.obj['topologyIds'].remove(request.params_path['topologyId']) simulation.update() - topology.delete() + old_object = topology.delete() - return Response(200, 'Successfully deleted topology.', topology.obj) + return Response(200, 'Successfully deleted topology.', old_object) diff --git a/web-server/opendc/api/v2/users/userId/endpoint.py b/web-server/opendc/api/v2/users/userId/endpoint.py index 660083b6..eedb2e3c 100644 --- a/web-server/opendc/api/v2/users/userId/endpoint.py +++ b/web-server/opendc/api/v2/users/userId/endpoint.py @@ -46,6 +46,6 @@ def DELETE(request): user.check_exists() user.check_correct_user(request.google_id) - user.delete() + old_object = user.delete() - return Response(200, 'Successfully deleted user.', user.obj) + return Response(200, 'Successfully deleted user.', old_object) diff --git a/web-server/opendc/models/model.py b/web-server/opendc/models/model.py index f42134bf..cab283c9 100644 --- a/web-server/opendc/models/model.py +++ b/web-server/opendc/models/model.py @@ -46,5 +46,10 @@ class Model: DB.update(self.get_id(), self.obj, self.collection_name) def delete(self): - """Deletes the enclosed object in the database.""" + """Deletes the enclosed object in the database, if it existed.""" + if self.obj is None: + return None + + old_object = self.obj.copy() DB.delete_one({'_id': self.get_id()}, self.collection_name) + return old_object diff --git a/web-server/opendc/util/database.py b/web-server/opendc/util/database.py index 0402c2e1..80cdcbab 100644 --- a/web-server/opendc/util/database.py +++ b/web-server/opendc/util/database.py @@ -63,18 +63,14 @@ class Database: The query needs to be in json format, i.e.: `{'name': prefab_name}`. """ - bson = getattr(self.opendc_db, collection).delete_one(query) - - return self.convert_bson_to_json(bson) + getattr(self.opendc_db, collection).delete_one(query) def delete_all(self, query, collection): """Deletes all objects matching the given query. The query needs to be in json format, i.e.: `{'name': prefab_name}`. """ - bson = getattr(self.opendc_db, collection).delete_many(query) - - return self.convert_bson_to_json(bson) + getattr(self.opendc_db, collection).delete_many(query) @staticmethod def convert_bson_to_json(bson): |
