diff --git a/packages/dynamite/lib/src/openapi_builder.dart b/packages/dynamite/lib/src/openapi_builder.dart index 14a857c6..83aa04d6 100644 --- a/packages/dynamite/lib/src/openapi_builder.dart +++ b/packages/dynamite/lib/src/openapi_builder.dart @@ -1383,7 +1383,10 @@ TypeResult resolveType( if (schema.discriminator!.mapping != null && schema.discriminator!.mapping!.isNotEmpty) ...[ for (final key in schema.discriminator!.mapping!.entries - .where((final entry) => entry.value.endsWith('/${result.name}')) + .where( + (final entry) => + entry.value.endsWith('/${result.name.replaceFirst(state.prefix, '')}'), + ) .map((final entry) => entry.key)) ...[ " || data['${schema.discriminator!.propertyName}'] == '$key'", ], diff --git a/tool/generate-nextcloud.sh b/tool/generate-nextcloud.sh index 8e67faf8..879da4ba 100755 --- a/tool/generate-nextcloud.sh +++ b/tool/generate-nextcloud.sh @@ -19,7 +19,7 @@ for i in $(seq 0 $((${#codenames[@]} - 1))); do -s \ '.[] | .components.schemas = (.components.schemas | with_entries(.key = if .key == "OCSMeta" or .key == "EmptyOCS" then .key else $prefix + .key end)) - | walk(if type == "object" and has("$ref") and ."$ref" != "#/components/schemas/OCSMeta" and ."$ref" != "#/components/schemas/EmptyOCS" then ."$ref" |= sub("^#/components/schemas/";"#/components/schemas/" + $prefix) else . end)' \ + | walk(if type == "string" and . != "#/components/schemas/OCSMeta" and . != "#/components/schemas/EmptyOCS" then . |= sub("^#/components/schemas/";"#/components/schemas/" + $prefix) else . end)' \ /tmp/nextcloud-neon/"$codename".json \ > /tmp/nextcloud-neon/"$codename"-prefixed.json