|
| 1 | +openapi-generator-version:=6.0.1 |
| 2 | +openapi-generator-url:=https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/$(openapi-generator-version)/openapi-generator-cli-$(openapi-generator-version).jar |
| 3 | +openapi-generator-jar:=target/openapi-generator-cli.jar |
| 4 | +openapi-generator-cli:=java -jar $(openapi-generator-jar) |
| 5 | + |
| 6 | +generator:=java |
| 7 | +library:=okhttp-gson |
| 8 | +services:=payments |
| 9 | +models:=src/main/java/com/adyen/model |
| 10 | +output:=target/out |
| 11 | + |
| 12 | + |
| 13 | +# Generate models (for each service) |
| 14 | +models: $(services) |
| 15 | + |
| 16 | +binlookup: spec=BinLookupService-v52 |
| 17 | +checkout: spec=CheckoutService-v69 |
| 18 | +storedValue: spec=StoredValueService-v46 |
| 19 | +posterminalmanagement: spec=TfmAPIService-v1 |
| 20 | +payments: spec=PaymentService-v68 |
| 21 | +recurring: spec=RecurringService-v68 |
| 22 | +payout: spec=PayoutService-v68 |
| 23 | +management: spec=ManagementService-v1 |
| 24 | +balanceplatform: spec=BalancePlatformService-v2 |
| 25 | +transfers: spec=TransferService-v3 |
| 26 | +# Classic Platforms |
| 27 | +marketpay/account: spec=AccountService-v6 |
| 28 | +marketpay/fund: spec=FundService-v6 |
| 29 | +marketpay/configuration: spec=NotificationConfigurationService-v6 |
| 30 | +marketpay/webhooks: spec=MarketPayNotificationService-v6 |
| 31 | +hop: spec=HopService-v6 |
| 32 | + |
| 33 | +$(services): target/spec $(openapi-generator-jar) |
| 34 | + rm -rf $(models)/$@ $(output) |
| 35 | + $(openapi-generator-cli) generate \ |
| 36 | + -i target/spec/json/$(spec).json \ |
| 37 | + -g $(generator) \ |
| 38 | + -t templates \ |
| 39 | + -o $(output) \ |
| 40 | + --ignore-file-override ./.openapi-generator-ignore \ |
| 41 | + --skip-validate-spec \ |
| 42 | + --model-package $(subst /,.,com.adyen.model.$@) \ |
| 43 | + --library $(library) \ |
| 44 | + --global-property models \ |
| 45 | + --global-property modelDocs=false \ |
| 46 | + --global-property modelTests=false \ |
| 47 | + --additional-properties=dateLibrary=legacy |
| 48 | + mv $(output)/$(models)/$@ $(models)/$@ |
| 49 | + |
| 50 | + |
| 51 | +# Checkout spec (and patch version) |
| 52 | +target/spec: |
| 53 | + git clone https://github.com/Adyen/adyen-openapi.git target/spec |
| 54 | + perl -i -pe's/"openapi" : "3.[0-9].[0-9]"/"openapi" : "3.0.0"/' target/spec/json/*.json |
| 55 | + |
| 56 | + |
| 57 | +# Extract templates (copy them for modifications) |
| 58 | +templates: $(openapi-generator-jar) |
| 59 | + $(openapi-generator-cli) author template -g $(generator) --library $(library) -o target/templates |
| 60 | + |
| 61 | + |
| 62 | +# Download the generator |
| 63 | +$(openapi-generator-jar): |
| 64 | + wget --quiet -o /dev/null $(openapi-generator-url) -O $(openapi-generator-jar) |
| 65 | + |
| 66 | + |
| 67 | +# Discard generated artifacts and changed models |
| 68 | +clean: |
| 69 | + rm -rf $(output) |
| 70 | + git checkout $(models) |
| 71 | + git clean -f -d $(models) |
| 72 | + |
| 73 | + |
| 74 | +.PHONY: templates models $(services) |
0 commit comments