Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

[PHP] Bug missing commas in key-value arrays of generated models and parameter of function calls #12404

Open
that-ambuj opened this issue May 24, 2024 · 0 comments

Comments

@that-ambuj
Copy link

Description

The code generated contains arrays like $swaggerTypes as members of Model types but the arrays do not
seem to contain any commas to seperate different key value pairs

Swagger-codegen version
3.0.0-rc1
Swagger declaration file content or url

This is the schema for the User object in the first snippet

"User": {
  "type": "object",
  "description": "User",
  "required": [
    "firstName",
    "email",
    "userGroupId"
  ],
  "properties": {
    "email": {
      "type": "string",
      "description": "Email"
    },
    "firstName": {
      "type": "string",
      "description": "First name"
    },
    "lastName": {
      "type": "string",
      "description": "Last name",
      "nullable": true
    },
    "userGroupId": {
      "type": "string",
      "format": "uuid",
      "description": "User group id"
    }
  }
}
Command line used for generation
java --add-opens=java.base/java.util=ALL-UNNAMED -jar ./swagger-codegen-cli-3.0.0-rc1.jar generate -i http://localhost:8080/api-docs/openapi.json -l php
# I know it's not supposed to be localhost but it should not be related to the spec.
Steps to reproduce
  1. Run the above command
Related issues/PRs

Issue

It generates this invalid code for arrays in PHP:

    /**
      * Array of property to type mappings. Used for (de)serialization
      *
      * @var string[]
      */
    protected static $swaggerTypes = [
        'email' => 'string''first_name' => 'string''last_name' => 'string''user_group_id' => 'string'
    ];

    /**
      * Array of property to format mappings. Used for (de)serialization
      *
      * @var string[]
      */
    protected static $swaggerFormats = [
        'email' => null'first_name' => null'last_name' => null'user_group_id' => 'uuid'
    ];

The commas are missing between key-value pairs.

In some functions for API code, it calls the functions without commas.

    public function getGroupsWithHttpInfo($user_id, $first = null, $max = null)
    {
        $returnType = '\Swagger\Client\Model\InlineResponse20020';
        $request = $this->getGroupsRequest($user_id$first$max); // See the parameters in this line of code.
Suggest a fix/enhancement
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant