| Line 0
          
      
      
        Link Here | 
          
            
              | 0 | -  | 1 | use Modern::Perl; | 
            
              |  |  | 2 |  | 
            
              | 3 | use List::MoreUtils qw( uniq duplicates ); | 
            
              | 4 | use YAML; | 
            
              | 5 | use File::Slurp qw( write_file ); | 
            
              | 6 |  | 
            
              | 7 | my @files = qx{ls api/v1/**/**/*.yaml}; | 
            
              | 8 | for my $file ( @files ) { | 
            
              | 9 |     chomp $file; | 
            
              | 10 |     say "Processing $file"; | 
            
              | 11 |     my $hash = YAML::LoadFile($file); | 
            
              | 12 |  | 
            
              | 13 |     ss($hash); | 
            
              | 14 |     my $yaml = YAML::Dump($hash); | 
            
              | 15 |     $yaml =~ s|-\snull|- "null"|xmsg; | 
            
              | 16 |     write_file($file, $yaml); | 
            
              | 17 | } | 
            
              | 18 |  | 
            
              | 19 | sub ss { | 
            
              | 20 |     my ($hash) = @_; | 
            
              | 21 |     return unless ref($hash); | 
            
              | 22 |     return if ref($hash) eq "ARRAY"; | 
            
              | 23 |     for my $k ( keys %$hash ) { | 
            
              | 24 |         ss($hash->{$k}); | 
            
              | 25 |     } | 
            
              | 26 |     my @sorted_keys = qw( swagger basePath definitions paths info x-mojo-to operationId tags summary produces parameters responses x-koha-authorization); | 
            
              | 27 |     push @sorted_keys, qw( description type properties additionalProperties ); | 
            
              | 28 |     my @existing_keys = sort keys %$hash; | 
            
              | 29 |     my @dup = duplicates( @sorted_keys, @existing_keys ); | 
            
              | 30 |     my @uniq = uniq( @dup, @existing_keys ); | 
            
              | 31 |     push @dup, @uniq; | 
            
              | 32 |     @dup = uniq( @dup ); | 
            
              | 33 |  | 
            
              | 34 |     YAML::Bless($hash)->keys(\@dup); | 
            
              | 35 | } |