Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

[BUG] [cpp-ue4] Missing AnyType declaration for any-type objects #10266

Closed
5 of 6 tasks
madrazzl3 opened this issue Aug 25, 2021 · 0 comments · Fixed by #10267
Closed
5 of 6 tasks

[BUG] [cpp-ue4] Missing AnyType declaration for any-type objects #10266

madrazzl3 opened this issue Aug 25, 2021 · 0 comments · Fixed by #10267

Comments

@madrazzl3
Copy link
Contributor

Bug Report Checklist

  • Have you provided a full/minimal spec to reproduce the issue?
  • Have you validated the input using an OpenAPI validator (example)?
  • Have you tested with the latest master to confirm the issue still exists?
  • Have you searched for related issues/PRs?
  • What's the actual output vs expected output?
  • [Optional] Sponsorship to speed up the bug fix or feature request (example)
Description

The UE4 code generator produces invalid code (code that cannot be compiled) for arbitrary-type objects:

#pragma once

#include "BaseModel.h"
#include "AnyType.h"

 ...

AnyType MyValue;

 ...

Neither a header with name AnyType.h is generated nor type AnyType declared anywhere in a project.

openapi-generator version

master - 5.3.0

OpenAPI declaration file content or url

Full scheme

arrayOfSomething:
          type: array
          items: {}
          nullable: true
Generation Details
openapi-generator  generate -i https://gist.githubusercontent.com/madrazzl3/da2502b6816aaa98713cba75e595f373/raw/d53da8c6098167768c3e5b1ad1381467397d6a51/example-scheme.yaml -g cpp-ue4 -o generated-client/ --additional-properties=cppNamespace='api',unrealModuleName='MyAPI',modelNamePrefix=''
Steps to reproduce
  1. Generate UE4 client with any of available tools
  2. Try to build generated module
Related issues/PRs

Similar problem with other generators:

Suggest a fix

Add type mapping AnyType -> TSharedPtr<FJsonValue> to keep ability to parse fields later.

mlebihan added a commit to mlebihan/openapi-generator that referenced this issue May 2, 2024
…fined "Object.h" (OpenAPITools#2769)

Should handle Object.h, AnyType.h correctly. Set.h also tested.

   - #include Object.h removed and replaced by a typeMapping.put(object, nlohmann::json) like suggested in other issues
   - object had an invalid syntax: ':' instead of '::' in types with namespace
   - extra include of #include nlohmann/json.h removed when there's already #include <nlohmann/json.hpp>
   - nlohmann::json is excluded from model namespace

Tested with custom petstore played, with suggested openapi specs coming from issues OpenAPITools#2769, OpenAPITools#10266, OpenAPITools#14234

   ```bash
   rm -rf samples/server/petstore/cpp-pistache-everything/ && ./bin/generate-samples.sh ./bin/configs/cpp-pistache-server-cpp-pistache-everything.yaml  && cd samples/server/petstore/cpp-pistache-everything/ && mkdir build && cd build && cmake .. && cmake --build . --parallel
   ```
mlebihan added a commit to mlebihan/openapi-generator that referenced this issue May 2, 2024
…fined "Object.h" (OpenAPITools#2769)

Should handle Object.h, AnyType.h correctly. Set.h also tested.

   - #include Object.h removed and replaced by a typeMapping.put(object, nlohmann::json) like suggested in other issues
   - object had an invalid syntax: ':' instead of '::' in types with namespace
   - extra include of #include nlohmann/json.h removed when there's already #include <nlohmann/json.hpp>
   - nlohmann::json is excluded from model namespace

Tested with custom petstore played, with suggested openapi specs coming from issues OpenAPITools#2769, OpenAPITools#10266, OpenAPITools#14234

   ```bash
   rm -rf samples/server/petstore/cpp-pistache-everything/ && ./bin/generate-samples.sh ./bin/configs/cpp-pistache-server-cpp-pistache-everything.yaml  && cd samples/server/petstore/cpp-pistache-everything/ && mkdir build && cd build && cmake .. && cmake --build . --parallel
   ```
wing328 pushed a commit that referenced this issue May 4, 2024
#18553)

* [BUG] [C++][Pistache] cpp-pistache-server generating API include undefined "Object.h" (#2769)

Should handle Object.h, AnyType.h correctly. Set.h also tested.

   - #include Object.h removed and replaced by a typeMapping.put(object, nlohmann::json) like suggested in other issues
   - object had an invalid syntax: ':' instead of '::' in types with namespace
   - extra include of #include nlohmann/json.h removed when there's already #include <nlohmann/json.hpp>
   - nlohmann::json is excluded from model namespace

Tested with custom petstore played, with suggested openapi specs coming from issues #2769, #10266, #14234

   ```bash
   rm -rf samples/server/petstore/cpp-pistache-everything/ && ./bin/generate-samples.sh ./bin/configs/cpp-pistache-server-cpp-pistache-everything.yaml  && cd samples/server/petstore/cpp-pistache-everything/ && mkdir build && cd build && cmake .. && cmake --build . --parallel
   ```

* - Adding to samples/server/petstore cpp-pistache-everything

* - .md and FILES missing
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant