File tree Expand file tree Collapse file tree 1 file changed +38
-1
lines changed
src/dms/core/EdFi.DataManagementService.Core/OpenApi Expand file tree Collapse file tree 1 file changed +38
-1
lines changed Original file line number Diff line number Diff line change @@ -402,11 +402,48 @@ private static JsonObject CreateFilteredExtension(
402
402
JsonObject filteredProperties
403
403
)
404
404
{
405
- return new JsonObject
405
+ var filteredExtension = new JsonObject
406
406
{
407
407
[ "type" ] = originalExtension [ "type" ] ? . DeepClone ( ) ?? "object" ,
408
408
[ "properties" ] = filteredProperties . DeepClone ( ) ,
409
409
} ;
410
+
411
+ // Copy additional schema properties that should be preserved
412
+ var propertiesToCopy = new [ ] { "description" , "required" } ;
413
+
414
+ foreach ( var propertyName in propertiesToCopy )
415
+ {
416
+ if ( originalExtension [ propertyName ] != null )
417
+ {
418
+ // For "required" array, filter to only include properties that exist in filteredProperties
419
+ if ( propertyName == "required" && originalExtension [ propertyName ] is JsonArray requiredArray )
420
+ {
421
+ var filteredRequired = new JsonArray ( ) ;
422
+ foreach ( JsonNode ? item in requiredArray )
423
+ {
424
+ if (
425
+ item ? . GetValue < string > ( ) is string requiredProp
426
+ && filteredProperties . ContainsKey ( requiredProp )
427
+ )
428
+ {
429
+ filteredRequired . Add ( requiredProp ) ;
430
+ }
431
+ }
432
+
433
+ // Only add required if it has items
434
+ if ( filteredRequired . Count > 0 )
435
+ {
436
+ filteredExtension [ propertyName ] = filteredRequired ;
437
+ }
438
+ }
439
+ else
440
+ {
441
+ filteredExtension [ propertyName ] = originalExtension [ propertyName ] ! . DeepClone ( ) ;
442
+ }
443
+ }
444
+ }
445
+
446
+ return filteredExtension ;
410
447
}
411
448
412
449
/// <summary>
You can’t perform that action at this time.
0 commit comments