Skip to content

Commit 783a95c

Browse files
authored
Merge pull request #18 from crescat-io/feature/develop
DTO Generator + tests
2 parents 64338f6 + 8cda3d2 commit 783a95c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+94816
-989
lines changed

README.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ composer global require crescat-io/saloon-sdk-generator
3131

3232
## Usage
3333

34+
### Generate SDK from OpenAPI or Postman Collection
35+
3436
To generate the PHP SDK from an API specification file, run the following command:
3537

3638
```shell
@@ -67,6 +69,25 @@ sdkgenerator generate:sdk ./tests/Samples/paddle.json
6769
--namespace=Your\\Sdk\\Namespace # <-- Note the "\\"
6870
```
6971

72+
## Converting Swagger v1 or v2 definitions to the OpenAPI 3.0 format
73+
74+
For convenience, we've included a command that allows you to convert Swagger v1 or v2 definitions to the OpenAPI 3.0
75+
The command will send your api definition file to the [Swagger Converter API](https://converter.swagger.io/) and save the output in the specified path.
76+
77+
if no output file is specified, the output location will be the original filepath with the `.converted.json` extension.
78+
79+
To use it, run the following command:
80+
81+
```shell
82+
sdkgenerator convert old.json [output.json]
83+
84+
## e.g.
85+
sdkgenerator convert tests/Samples/tripletex.json tests/Samples/tripletex.converted.json
86+
```
87+
88+
Only OpenAPI is supported for now.
89+
90+
7091
## Using the Code Generator and Parser Programmatically
7192

7293
1. **Configure Your Generator:**

builds/sdkgenerator

1.1 MB
Binary file not shown.

composer.json

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,21 @@
1414
}
1515
],
1616
"require": {
17-
"php": "^8.1",
17+
"php": "^8.2",
1818
"ext-zip": "*",
1919
"cebe/php-openapi": "^1.7",
2020
"laravel-zero/phar-updater": "^1.3",
2121
"nette/php-generator": "^4.0",
2222
"nunomaduro/termwind": "^1.15.1",
23+
"saloonphp/laravel-plugin": "^3.2",
2324
"saloonphp/saloon": "^3.0",
24-
"saloonphp/laravel-plugin": "^3.0"
25+
"spatie/laravel-data": "^3.10"
2526
},
2627
"require-dev": {
27-
"laravel-zero/framework": "^10.0.2",
28-
"laravel/pint": "^1.8",
28+
"laravel-zero/framework": "^10.3.0",
29+
"laravel/pint": "^1.13",
2930
"mockery/mockery": "^1.5.1",
30-
"pestphp/pest": "^2.5"
31+
"pestphp/pest": "^2.28.0"
3132
},
3233
"autoload": {
3334
"psr-4": {
@@ -40,26 +41,22 @@
4041
}
4142
},
4243
"scripts": {
43-
"build": "php ./codegen app:build sdkgenerator --build-version=1.0",
44+
"build": "php ./codegen app:build sdkgenerator --build-version=1.1",
4445
"clean": "rm -rf ./tests/Output/*",
4546
"generate:fiken": "./codegen generate:sdk --force --namespace=Crescat\\\\Fiken --type=openapi --name=Fiken tests/Samples/fiken.yml --output tests/Output/Fiken",
46-
"generate:gocardless": "./codegen generate:sdk --force --namespace=Crescat\\\\GoCardless --type=openapi --name=GoCardlessBankAccountData tests/Samples/gocardless.json --output tests/Output/GoCardless",
47+
"generate:gocardless": "./codegen generate:sdk --force --namespace=Crescat\\\\GoCardless --type=openapi --name=GoCardless tests/Samples/gocardless.json --output tests/Output/GoCardless",
4748
"generate:openai": "./codegen generate:sdk --force --namespace=Crescat\\\\OpenAI --type=postman --name=OpenAI tests/Samples/openai.json --output tests/Output/Openai",
4849
"generate:paddle": "./codegen generate:sdk --force --namespace=Crescat\\\\Paddle --type=postman --name=Paddle tests/Samples/paddle.json --output tests/Output/Paddle",
4950
"generate:stripe": "./codegen generate:sdk --force --namespace=Crescat\\\\Stripe --type=postman --name=Stripe tests/Samples/stripe.json --output tests/Output/Stripe",
5051
"generate:tableau": "./codegen generate:sdk --force --namespace=Crescat\\\\Tableau --type=postman --name=Tableau tests/Samples/tableau.json --output tests/Output/Tableau",
51-
"generate:tripletex": "./codegen generate:sdk --force --namespace=Crescat\\\\Tripletex --type=openapi --name=Tripletex tests/Samples/tripletex.json --output tests/Output/Tripletex",
52+
"generate:tripletex": "./codegen generate:sdk --force --namespace=Crescat\\\\Tripletex --type=openapi --name=Tripletex tests/Samples/tripletex.converted.json --output tests/Output/Tripletex",
5253
"generate:checkmango": "./codegen generate:sdk --force --namespace=Checkmango\\\\Sdk --type=openapi --name=Checkmango tests/Samples/checkmango.json --output tests/Output/Checkmango",
5354
"generate:kassalapp": "./codegen generate:sdk --force --namespace=Kassalapp\\\\Sdk --type=openapi --name=Kassalapp tests/Samples/kassalapp.json --output tests/Output/Kassalapp",
5455
"generate:altinn": "./codegen generate:sdk --force --namespace=Altinn\\\\Sdk --type=postman --name=Altinn tests/Samples/altinn.json --output tests/Output/Altinn",
5556
"generate:crescat": "./codegen generate:sdk --force --namespace=Crescat\\\\Sdk --type=openapi --name=Crescat tests/Samples/crescat.yaml --output tests/Output/Crescat",
56-
"generate:zip:fiken": "./codegen generate:sdk --force --type=openapi --name=Fiken tests/Samples/fiken.yml --output tests/Output --zip",
57-
"generate:zip:gocardless": "./codegen generate:sdk --force --type=openapi --name=GoCardlessBankAccountData tests/Samples/gocardless.json --output tests/Output --zip",
58-
"generate:zip:openai": "./codegen generate:sdk --force --type=postman --name=OpenAI tests/Samples/openai.json --output tests/Output --zip",
59-
"generate:zip:paddle": "./codegen generate:sdk --force --type=postman --name=Paddle tests/Samples/paddle.json --output tests/Output --zip",
60-
"generate:zip:stripe": "./codegen generate:sdk --force --type=postman --name=Stripe tests/Samples/stripe.json --output tests/Output --zip",
61-
"generate:zip:tableau": "./codegen generate:sdk --force --type=postman --name=Tableau tests/Samples/tableau.json --output tests/Output --zip",
62-
"generate:zip:tripletex": "./codegen generate:sdk --force --type=openapi --name=Tripletex tests/Samples/tripletex.json --output tests/Output --zip",
57+
"generate:bigcommerce": "./codegen generate:sdk --force --namespace=BigCommerce\\\\Sdk --type=openapi --name=BigCommerce tests/samples/bigcommerce_abandoned_carts.v3.yml --output tests/Output/BigCommerce",
58+
"generate:vegvesen": "./codegen generate:sdk --force --namespace=Vegvesen\\\\Sdk --type=openapi --name=Vegvesen tests/samples/vegvesen.json --output tests/Output/Vegvesen",
59+
"generate:spotify": "./codegen generate:sdk --force --namespace=Spotify\\\\Sdk --type=openapi --name=Spotify tests/samples/spotify.yml --output tests/Output/Spotify",
6360
"generate:all": [
6461
"@generate:fiken",
6562
"@generate:gocardless",
@@ -70,9 +67,10 @@
7067
"@generate:stripe",
7168
"@generate:checkmango",
7269
"@generate:kassalapp",
73-
"@generate:crescat"
70+
"@generate:crescat",
71+
"@generate:bigcommerce"
7472
],
75-
"test": "vendor/bin/pest",
73+
"test": "vendor/bin/pest tests",
7674
"test-coverage": "vendor/bin/pest --coverage",
7775
"format": "vendor/bin/pint"
7876
},

0 commit comments

Comments
 (0)