From c3fe24900ed1828aa28df4d3c17226b9cdaf770a Mon Sep 17 00:00:00 2001 From: PointSource <47544779+point-source@users.noreply.github.com> Date: Wed, 30 Sep 2020 19:25:27 -0700 Subject: [PATCH 1/3] Fix #899: Only modify ops keys if they exist --- aqueduct/lib/src/http/managed_object_controller.dart | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/aqueduct/lib/src/http/managed_object_controller.dart b/aqueduct/lib/src/http/managed_object_controller.dart index ba743eb43..01d1c7549 100644 --- a/aqueduct/lib/src/http/managed_object_controller.dart +++ b/aqueduct/lib/src/http/managed_object_controller.dart @@ -419,12 +419,12 @@ class ManagedObjectController ?.length ?? 0) > 0) { - ops["get"].id = "get$entityName"; - ops["put"].id = "update$entityName"; - ops["delete"].id = "delete$entityName"; + ops["get"]?.id = "get$entityName"; + ops["put"]?.id = "update$entityName"; + ops["delete"]?.id = "delete$entityName"; } else { - ops["get"].id = "get${entityName}s"; - ops["post"].id = "create$entityName"; + ops["get"]?.id = "get${entityName}s"; + ops["post"]?.id = "create$entityName"; } return ops; From 4d838432fd5de71931923033d4c8c036889bda36 Mon Sep 17 00:00:00 2001 From: PointSource <47544779+point-source@users.noreply.github.com> Date: Fri, 2 Oct 2020 13:52:16 -0700 Subject: [PATCH 2/3] Don't create erroneously duplicated params --- .../src/http/managed_object_controller.dart | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/aqueduct/lib/src/http/managed_object_controller.dart b/aqueduct/lib/src/http/managed_object_controller.dart index 01d1c7549..c3c856d63 100644 --- a/aqueduct/lib/src/http/managed_object_controller.dart +++ b/aqueduct/lib/src/http/managed_object_controller.dart @@ -414,17 +414,18 @@ class ManagedObjectController final entityName = _query.entity.name; - if ((path.parameters - ?.where((p) => p.location == APIParameterLocation.path) - ?.length ?? - 0) > - 0) { - ops["get"]?.id = "get$entityName"; - ops["put"]?.id = "update$entityName"; - ops["delete"]?.id = "delete$entityName"; - } else { - ops["get"]?.id = "get${entityName}s"; - ops["post"]?.id = "create$entityName"; + final int paramLength = path.parameters + ?.where((p) => p.location == APIParameterLocation.path) + ?.length ?? + 0; + + if (paramLength == 0) { + ops["get"].id = "get${entityName}s"; + ops["post"].id = "create$entityName"; + } else if (paramLength == 1) { + ops["get"].id = "get$entityName"; + ops["put"].id = "update$entityName"; + ops["delete"].id = "delete$entityName"; } return ops; From ebcc20b9885c859ece6755441081c6ca37243ea8 Mon Sep 17 00:00:00 2001 From: PointSource <47544779+point-source@users.noreply.github.com> Date: Fri, 2 Oct 2020 15:38:07 -0700 Subject: [PATCH 3/3] Explicit > implicit --- .../src/http/managed_object_controller.dart | 28 ++++++++++++++----- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/aqueduct/lib/src/http/managed_object_controller.dart b/aqueduct/lib/src/http/managed_object_controller.dart index c3c856d63..5108436ad 100644 --- a/aqueduct/lib/src/http/managed_object_controller.dart +++ b/aqueduct/lib/src/http/managed_object_controller.dart @@ -419,13 +419,27 @@ class ManagedObjectController ?.length ?? 0; - if (paramLength == 0) { - ops["get"].id = "get${entityName}s"; - ops["post"].id = "create$entityName"; - } else if (paramLength == 1) { - ops["get"].id = "get$entityName"; - ops["put"].id = "update$entityName"; - ops["delete"].id = "delete$entityName"; + if (paramLength < 2) { + for (var o in ops.keys) { + switch (ops[o].id) { + case "getObject": + ops[o].id = "get$entityName"; + break; + case "getObjects": + ops[o].id = "get${entityName}s"; + break; + case "createObject": + ops[o].id = "create$entityName"; + break; + case "updateObject": + ops[o].id = "update$entityName"; + break; + case "deleteObject": + ops[o].id = "delete$entityName"; + break; + default: + } + } } return ops;