forked from loafle/openapi-generator-original
Adds isDateTime to CodegenModel (#7657)
This reverts commit 2ec96f7f9057ea67f7362d7d23d39a00e430410a.
This commit is contained in:
parent
2ec96f7f90
commit
8fd9991ec2
@ -64,7 +64,7 @@ public class CodegenModel implements IJsonSchemaValidationProperties {
|
||||
public String defaultValue;
|
||||
public String arrayModelType;
|
||||
public boolean isAlias; // Is this effectively an alias of another simple type
|
||||
public boolean isString, isInteger, isLong, isNumber, isNumeric, isFloat, isDouble, isDate;
|
||||
public boolean isString, isInteger, isLong, isNumber, isNumeric, isFloat, isDouble, isDate, isDateTime;
|
||||
public List<CodegenProperty> vars = new ArrayList<CodegenProperty>(); // all properties (without parent's properties)
|
||||
public List<CodegenProperty> allVars = new ArrayList<CodegenProperty>(); // all properties (with parent's properties)
|
||||
public List<CodegenProperty> requiredVars = new ArrayList<CodegenProperty>(); // a list of required properties
|
||||
@ -578,6 +578,14 @@ public class CodegenModel implements IJsonSchemaValidationProperties {
|
||||
this.isDate = isDate;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getIsDateTime() { return isDateTime; }
|
||||
|
||||
@Override
|
||||
public void setIsDateTime(boolean isDateTime) {
|
||||
this.isDateTime = isDateTime;
|
||||
}
|
||||
|
||||
// indicates if the model component has validation on the root level schema
|
||||
// this will be true when minItems or minProperties is set
|
||||
public boolean hasValidation() {
|
||||
@ -679,6 +687,7 @@ public class CodegenModel implements IJsonSchemaValidationProperties {
|
||||
isFloat == that.isFloat &&
|
||||
isDouble == that.isDouble &&
|
||||
isDate == that.isDate &&
|
||||
isDateTime == that.isDateTime &&
|
||||
hasVars == that.hasVars &&
|
||||
emptyVars == that.emptyVars &&
|
||||
hasMoreModels == that.hasMoreModels &&
|
||||
@ -755,7 +764,7 @@ public class CodegenModel implements IJsonSchemaValidationProperties {
|
||||
getDescription(), getClassVarName(), getModelJson(), getDataType(), getXmlPrefix(), getXmlNamespace(),
|
||||
getXmlName(), getClassFilename(), getUnescapedDescription(), getDiscriminator(), getDefaultValue(),
|
||||
getArrayModelType(), isAlias, isString, isInteger, isLong, isNumber, isNumeric, isFloat, isDouble,
|
||||
isDate,
|
||||
isDate, isDateTime,
|
||||
getVars(), getAllVars(), getRequiredVars(), getOptionalVars(), getReadOnlyVars(), getReadWriteVars(),
|
||||
getParentVars(), getAllowableValues(), getMandatory(), getAllMandatory(), getImports(), hasVars,
|
||||
isEmptyVars(), hasMoreModels, hasEnums, isEnum, isNullable, hasRequired, hasOptional, isArrayModel,
|
||||
@ -802,6 +811,7 @@ public class CodegenModel implements IJsonSchemaValidationProperties {
|
||||
sb.append(", isFloat=").append(isFloat);
|
||||
sb.append(", isDouble=").append(isDouble);
|
||||
sb.append(", isDate=").append(isDate);
|
||||
sb.append(", isDateTime=").append(isDateTime);
|
||||
sb.append(", vars=").append(vars);
|
||||
sb.append(", allVars=").append(allVars);
|
||||
sb.append(", requiredVars=").append(requiredVars);
|
||||
|
@ -503,5 +503,13 @@ public class CodegenParameter implements IJsonSchemaValidationProperties {
|
||||
public void setIsDate(boolean isDate) {
|
||||
this.isDate = isDate;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getIsDateTime() { return isDateTime; }
|
||||
|
||||
@Override
|
||||
public void setIsDateTime(boolean isDateTime) {
|
||||
this.isDateTime = isDateTime;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -477,6 +477,14 @@ public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperti
|
||||
this.isDate = isDate;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getIsDateTime() { return isDateTime; }
|
||||
|
||||
@Override
|
||||
public void setIsDateTime(boolean isDateTime) {
|
||||
this.isDateTime = isDateTime;
|
||||
}
|
||||
|
||||
public Map<String, Object> getVendorExtensions() {
|
||||
return vendorExtensions;
|
||||
}
|
||||
|
@ -298,6 +298,14 @@ public class CodegenResponse implements IJsonSchemaValidationProperties {
|
||||
this.isDate = isDate;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getIsDateTime() { return isDateTime; }
|
||||
|
||||
@Override
|
||||
public void setIsDateTime(boolean isDateTime) {
|
||||
this.isDateTime = isDateTime;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
final StringBuilder sb = new StringBuilder("CodegenResponse{");
|
||||
|
@ -2520,6 +2520,11 @@ public class DefaultCodegen implements CodegenConfig {
|
||||
} else { // int32 format
|
||||
m.isInteger = Boolean.TRUE;
|
||||
}
|
||||
} else if (ModelUtils.isDateTimeSchema(schema)) {
|
||||
// NOTE: DateTime schemas as CodegenModel is a rare use case and may be removed at a later date.
|
||||
// Sync of properties is done for consistency with other data types like CodegenParameter/CodegenProperty.
|
||||
ModelUtils.syncValidationProperties(schema, m);
|
||||
m.isDateTime = Boolean.TRUE;
|
||||
} else if (ModelUtils.isDateSchema(schema)) {
|
||||
// NOTE: Date schemas as CodegenModel is a rare use case and may be removed at a later date.
|
||||
// Sync of properties is done for consistency with other data types like CodegenParameter/CodegenProperty.
|
||||
|
@ -64,4 +64,8 @@ public interface IJsonSchemaValidationProperties {
|
||||
boolean getIsDate();
|
||||
|
||||
void setIsDate(boolean isDate);
|
||||
|
||||
boolean getIsDateTime();
|
||||
|
||||
void setIsDateTime(boolean isDateTime);
|
||||
}
|
||||
|
@ -2386,5 +2386,37 @@ public class DefaultCodegenTest {
|
||||
assertEquals(co.bodyParams.get(0).isDate, true);
|
||||
assertEquals(co.responses.get(0).isString, false);
|
||||
assertEquals(co.responses.get(0).isDate, true);
|
||||
|
||||
modelName = "DateTimeWithValidation";
|
||||
sc = openAPI.getComponents().getSchemas().get(modelName);
|
||||
cm = codegen.fromModel(modelName, sc);
|
||||
assertEquals(cm.isString, false);
|
||||
assertEquals(cm.isDateTime, true);
|
||||
|
||||
modelName = "ObjectWithDateTimeWithValidation";
|
||||
sc = openAPI.getComponents().getSchemas().get(modelName);
|
||||
cm = codegen.fromModel(modelName, sc);
|
||||
assertEquals(cm.getVars().get(0).isString, false);
|
||||
assertEquals(cm.getVars().get(0).isDateTime, true);
|
||||
|
||||
path = "/ref_date_time_with_validation/{dateTime}";
|
||||
operation = openAPI.getPaths().get(path).getPost();
|
||||
co = codegen.fromOperation(path, "POST", operation, null);
|
||||
assertEquals(co.pathParams.get(0).isString, false);
|
||||
assertEquals(co.pathParams.get(0).isDateTime, true);
|
||||
assertEquals(co.bodyParams.get(0).isString, false);
|
||||
assertEquals(co.bodyParams.get(0).isDateTime, true);
|
||||
assertEquals(co.responses.get(0).isString, false);
|
||||
assertEquals(co.responses.get(0).isDateTime, true);
|
||||
|
||||
path = "/date_time_with_validation/{dateTime}";
|
||||
operation = openAPI.getPaths().get(path).getPost();
|
||||
co = codegen.fromOperation(path, "POST", operation, null);
|
||||
assertEquals(co.pathParams.get(0).isString, false);
|
||||
assertEquals(co.pathParams.get(0).isDateTime, true);
|
||||
assertEquals(co.bodyParams.get(0).isString, false);
|
||||
assertEquals(co.bodyParams.get(0).isDateTime, true);
|
||||
assertEquals(co.responses.get(0).isString, false);
|
||||
assertEquals(co.responses.get(0).isDateTime, true);
|
||||
}
|
||||
}
|
||||
|
@ -66,6 +66,60 @@ paths:
|
||||
type: string
|
||||
format: date
|
||||
pattern: '^2020.*'
|
||||
/ref_date_time_with_validation/{dateTime}:
|
||||
post:
|
||||
tags:
|
||||
- isX
|
||||
operationId: refDateTimeWithValidation
|
||||
parameters:
|
||||
- name: dateTime
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
$ref: '#/components/schemas/DateTimeWithValidation'
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/DateTimeWithValidation'
|
||||
required: true
|
||||
responses:
|
||||
200:
|
||||
description: success
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/DateTimeWithValidation'
|
||||
/date_time_with_validation/{dateTime}:
|
||||
post:
|
||||
tags:
|
||||
- isX
|
||||
operationId: dateTimeWithValidation
|
||||
parameters:
|
||||
- name: dateTime
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
format: date-time
|
||||
pattern: '^2020.*'
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: string
|
||||
format: date-time
|
||||
pattern: '^2020.*'
|
||||
required: true
|
||||
responses:
|
||||
200:
|
||||
description: success
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: string
|
||||
format: date-time
|
||||
pattern: '^2020.*'
|
||||
components:
|
||||
schemas:
|
||||
DateWithValidation:
|
||||
@ -79,4 +133,15 @@ components:
|
||||
type: string
|
||||
format: date
|
||||
pattern: '^2020.*'
|
||||
DateTimeWithValidation:
|
||||
type: string
|
||||
format: date-time
|
||||
pattern: '^2020.*'
|
||||
ObjectWithDateTimeWithValidation:
|
||||
type: object
|
||||
properties:
|
||||
dateWithValidation:
|
||||
type: string
|
||||
format: date-time
|
||||
pattern: '^2020.*'
|
||||
securitySchemes: {}
|
Loading…
x
Reference in New Issue
Block a user