Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • O openapi-generator
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 3,476
    • Issues 3,476
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 402
    • Merge requests 402
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • OpenAPI Tools
  • openapi-generator
  • Merge requests
  • !4855

[Slim4] Add ModelUtils and StringUtils

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Administrator requested to merge github/fork/ybelenko/slim4_utils into master Dec 22, 2019
  • Overview 0
  • Commits 2
  • Pipelines 0
  • Changes 13

Created by: ybelenko

PR checklist

  • Read the contribution guidelines.
  • If contributing template-only or documentation-only changes which will change sample output, build the project before.
  • Run the shell script(s) under ./bin/ (or Windows batch scripts under.\bin\windows) to update Petstore samples related to your fix. This is important, as CI jobs will verify all generator outputs of your HEAD commit, and these must match the expectations made by your contribution. You only need to run ./bin/{LANG}-petstore.sh, ./bin/openapi3/{LANG}-petstore.sh if updating the code or mustache templates for a language ({LANG}) (e.g. php, ruby, python, etc).
  • File the PR against the correct branch: master, 4.3.x, 5.0.x. Default: master.
  • Copy the technical committee to review the pull request if your PR is targeting a particular programming language.

My first version of DataMocker is almost finished. The only thing that makes everything difficult is refs. For example, to mock schema like:

{
  "type": "object",
  "properties": {
    "Objects": {
      "minItems": 1,
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/_foobar_Objects"
      }
    }
  }
}

then I need to parse $ref value, convert it to model name and find FoobarObjects model. The most closes method that I found is ModelUtils::getSimpleRef https://github.com/OpenAPITools/openapi-generator/blob/27bf120d8729b7e0b4250ad1147ad1a186b4b054/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java#L326-L339

So I've recreated this method with PHP... and three other methods(AbstractPhpCodegen ::toModelName, AbstractPhpCodegen::camelize, AbstractPhpCodegen::isReservedWord). I'm sure that I don't need to add links to these methods, core team knows them well.

Btw, it's hard to understand what this block of code does https://github.com/OpenAPITools/openapi-generator/blob/27bf120d8729b7e0b4250ad1147ad1a186b4b054/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/StringUtils.java#L90-L97 especially this line https://github.com/OpenAPITools/openapi-generator/blob/27bf120d8729b7e0b4250ad1147ad1a186b4b054/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/StringUtils.java#L95

How to test

Show boring command line instructions
  1. Checkout into feature branch
$ git checkout -b ybelenko-slim4_utils master
$ git pull https://github.com/ybelenko/openapi-generator.git slim4_utils
  1. Generate new Slim4 samples and go to just created build
$ mvn clean package
$ bin/php-slim4-server-petstore.sh
$ cd samples/server/petstore/php-slim4
  1. Start Composer installation and run unit tests
$ composer install
$ composer test
$ composer phpcs

Test fixtures wanted ❗️

Show details

Right now Java methods ModelUtils::getSimpleRef,AbstractPhpCodegen::toModelName and AbstractPhpCodegen::camelize are not covered with tests. If somebody can provide fixtures for any of these methods I would love to submit PR with related unit tests.

Related to #3545 (closed)

cc @jebentier, @dkarlovi, @mandrean, @jfastnacht, @ackintosh, @renepardon

Special welcome to @jimschubert 😄

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: github/fork/ybelenko/slim4_utils