Skip to content

[BUG][DART] Bad support for extension x-enum-varnames #5794

@selankon

Description

@selankon

Description

Enums that has the x-enum-varnames extension defined are not processed correctly and the enum var names seems to be generated automatically instead of get the names defined.

openapi-generator version
➜ openapi-generator version
4.2.3
OpenAPI declaration file content or url
openapi: 3.0.0
info:
    title: RetroShare OpenApi wrapper
    version: 0.0.1
    description: RetroShare OpenApi wrapper generated using Doxygen documentation
    license:
        name: AGPLv3
servers:
    - url: http://127.0.0.1:9092/
    
paths:
    /jsonApiServer/version:
        post:
            summary: blahblah             
            responses:
                '200':
                    description: >
                            return: 
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/FileChunksInfo'

components:      
    schemas:
        FileChunksInfo:
            type: object
            properties:
                chunks:
                    type: array
                    items:
                        $ref: '#/components/schemas/ChunkState'
        ChunkState:
            type: integer
            enum:
                
                    - 0
                    - 1
                    - 2
                    - 3
            x-enum-varnames:
                
                    - CHUNK_OUTSTANDING
                    - CHUNK_ACTIVE
                    - CHUNK_DONE
                    - CHUNK_CHECKING
Command line used for generation
➜ openapi-generator generate -i definition.yml -g dart -o openapi-dart-retroshare-api-wrapper
Steps to reproduce

Just copy the .yml definition and run the command.

After the code is generated be sure that all the dependencies are installed. I us VSCodium with Dart extension for that.

If you see a build error see: #4887.

The generated name for the enum values are like:

  static const ChunkState number0_ = const ChunkState._internal(0);
  static const ChunkState number1_ = const ChunkState._internal(1);
  static const ChunkState number2_ = const ChunkState._internal(2);
  static const ChunkState number3_ = const ChunkState._internal(3);
Suggest a fix

I check the template and all seems correct, the problem should be on the Java generator file on modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartClientCodegen.java but I'm not sure of how this work...

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions