electrode-native icon indicating copy to clipboard operation
electrode-native copied to clipboard

ern regen-api does not support events and requests simultaneously

Open cdaringe opened this issue 4 years ago • 0 comments

problem

i am using an api with paths.events/. when adding requests to paths and/or paths.requests/, the generated requests classes are missing their expected methods.

ern version: 0.38.10

stack:

✖ An error occurred: Cannot use 'in' operator to search for '$ref' in ​
TypeError: Cannot use 'in' operator to search for '$ref' in ​
    at asParameter (/Users/c0d01a5/.ern/versions/0.38.10/node_modules/ern-api-gen/src/java/Swagger.ts:34:29)
    at Array.map (<anonymous>)
    at Operation.getParameters (/Users/c0d01a5/.ern/versions/0.38.10/node_modules/ern-api-gen/src/java/Swagger.ts:50:52)
    at InlineModelResolver.flatten (/Users/c0d01a5/.ern/versions/0.38.10/node_modules/ern-api-gen/src/InlineModelResolver.ts:39:40)
    at DefaultGenerator.generate (/Users/c0d01a5/.ern/versions/0.38.10/node_modules/ern-api-gen/src/DefaultGenerator.ts:283:25)
    at Object.<anonymous> (/Users/c0d01a5/.ern/versions/0.38.10/node_modules/ern-api-gen/src/generateProject.ts:42:39)
    at Generator.next (<anonymous>)
    at fulfilled (/Users/c0d01a5/.ern/versions/0.38.10/node_modules/ern-api-gen/dist/generateProject.js:5:58)

model:

{
  "swagger": "2.0",
  "info": {
    "description": "SomePkg SomeDataModel Module",
    "title": "SomePkgSomeDataModel",
    "contact": {
      "name": "some team"
    }
  },
  "paths": {
    "/getSomeDataModelValues": {
      "get": {
        "tags": [
          "SomePkgSomeDataModel"
        ],
        "description": "Gets SomeDataModel values on demand",
        "operationId": "getSomeDataModelValues",
        "parameters": [
​
        ],
        "responses": {
          "200": {
            "description": "SomeDataModel Values",
            "schema": {
              "type": "string"
            }
          }
        }
      }
    },
    "/events": {
      "event": {
        "tags": [
          "SomePkgSomeDataModel"
        ],
        "operationId": "SomeDataModelConfigUpdated",
        "parameters": [
          {
            "name": "newConfig",
            "in": "path",
            "description": "Notifies all registered listeners when a new SomeDataModel configuraiton is updated",
            "required": true,
            "type": "string"
          }
        ]
      }
    }
  },
  "definitions": {}
}

discussion

removing events produces expected Request/Response classes

cdaringe avatar Jan 14 '20 21:01 cdaringe