generate all script, service integration and injection
This commit is contained in:
25
generate.py
25
generate.py
@ -4,9 +4,9 @@ import glob
|
||||
import argparse
|
||||
import os
|
||||
import re
|
||||
|
||||
import json
|
||||
from yaml.loader import SafeLoader
|
||||
from generateHelper import CsOperationNameConverter, OpenApiExtractRefType
|
||||
from generateHelper import CsOperationNameConverter, OpenApiExtractRefType, CsTypeConverter
|
||||
|
||||
parser = argparse.ArgumentParser(description="generate.py")
|
||||
parser.add_argument('--apiDefinitionFile', '-a',
|
||||
@ -91,9 +91,18 @@ for path in apiDefinition['paths'].values():
|
||||
if not statementChecker[method].match(statement):
|
||||
raise Exception(f"Invalid statement {statement} for method {method}")
|
||||
|
||||
inputType = None
|
||||
bodyInputType = {}
|
||||
if 'requestBody' in operation:
|
||||
inputType = OpenApiExtractRefType(operation['requestBody']['content']['application/json']['schema']['$ref'])
|
||||
bodyInputTypeName = OpenApiExtractRefType(operation['requestBody']['content']['application/json']['schema']['$ref'])
|
||||
bodyInputType = { 'apiName': bodyInputTypeName, 'csName': CsOperationNameConverter(bodyInputTypeName) }
|
||||
paramsInputTypes =[]
|
||||
if 'parameters' in operation:
|
||||
for paramsInputType in operation['parameters']:
|
||||
paramsInputType['type'] = CsTypeConverter(paramsInputType['schema']['type'])
|
||||
del paramsInputType['schema']
|
||||
paramsInputTypes.append(paramsInputType)
|
||||
|
||||
|
||||
operations.append({
|
||||
'description': description,
|
||||
'method':method,
|
||||
@ -103,9 +112,10 @@ for path in apiDefinition['paths'].values():
|
||||
'allSelector': operation['operationId'].endswith('all'),
|
||||
'byIdSelector': operation['operationId'].endswith('byid'),
|
||||
'statement': statement,
|
||||
'inputType': { 'apiName': inputType, 'csName': CsOperationNameConverter(inputType) } if inputType else {}
|
||||
'bodyInputType': bodyInputType,
|
||||
'paramsInputTypes': paramsInputTypes
|
||||
})
|
||||
print(f"{operations=}")
|
||||
#print(f"{operations=}")
|
||||
apiDefinition["operations"] = operations
|
||||
|
||||
types = {}
|
||||
@ -123,9 +133,10 @@ for (typeName, typeDefinition) in apiDefinition['components']['schemas'].items()
|
||||
'csName': typeName.capitalize(),
|
||||
'properties': typeProperties
|
||||
}
|
||||
print(f"{types=}")
|
||||
#print(f"{types=}")
|
||||
apiDefinition['types'] = types
|
||||
|
||||
print(json.dumps(apiDefinition, indent=4))
|
||||
for f in glob.glob(args.template, recursive=True):
|
||||
print(f"process {f}")
|
||||
tmpl = Template(file=f, searchList=[apiDefinition])
|
||||
|
Reference in New Issue
Block a user