Skip to content

Commit 1d56488

Browse files
committed
add rfc datetime
1 parent 063ae2d commit 1d56488

File tree

6 files changed

+26
-1
lines changed

6 files changed

+26
-1
lines changed

src/aaz_dev/cli/controller/az_arg_group_generator.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -357,6 +357,13 @@ def render_arg_base(arg, cmd_ctx, arg_kwargs=None):
357357
arg_type = "AAZDateArg"
358358
elif isinstance(arg, CMDDateTimeArgBase):
359359
arg_type = "AAZDateTimeArg"
360+
if arg.is_rfc:
361+
arg_kwargs['fmt'] = {
362+
"cls": "AAZDateTimeFormat",
363+
"kwargs": {
364+
"protocol": "rfc"
365+
}
366+
}
360367
elif isinstance(arg, CMDTimeArgBase):
361368
arg_type = "AAZTimeArg"
362369
elif isinstance(arg, CMDUuidArgBase):

src/aaz_dev/command/model/configuration/_arg.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -422,6 +422,15 @@ class CMDDateArg(CMDDateArgBase, CMDStringArg):
422422
# date-time: As defined by date-time - https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14
423423
class CMDDateTimeArgBase(CMDStringArgBase):
424424
TYPE_VALUE = "dateTime"
425+
# date-time-rfc1123: https://www.apimatic.io/openapi/string-type-format
426+
is_rfc = CMDBooleanField()
427+
428+
@classmethod
429+
def build_arg_base(cls, builder):
430+
arg = super().build_arg_base(builder)
431+
assert isinstance(arg, CMDDateTimeArgBase)
432+
arg.is_rfc = builder.get_is_rfc()
433+
return arg
425434

426435

427436
class CMDDateTimeArg(CMDDateTimeArgBase, CMDStringArg):

src/aaz_dev/command/model/configuration/_arg_builder.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -348,6 +348,11 @@ def get_hide(self):
348348
def get_var(self):
349349
return self._arg_var
350350

351+
def get_is_rfc(self):
352+
if getattr(self.schema, "is_rfc", False):
353+
return True
354+
return False
355+
351356
@staticmethod
352357
def _build_option_name(name):
353358
name = name.replace('_', '-')

src/aaz_dev/command/model/configuration/_schema.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -532,6 +532,7 @@ class CMDDateSchema(CMDDateSchemaBase, CMDStringSchema):
532532
class CMDDateTimeSchemaBase(CMDStringSchemaBase):
533533
TYPE_VALUE = "dateTime"
534534
ARG_TYPE = CMDDateTimeArgBase
535+
is_rfc = CMDBooleanField()
535536

536537

537538
class CMDDateTimeSchema(CMDDateTimeSchemaBase, CMDStringSchema):

src/aaz_dev/swagger/model/schema/cmd_builder.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,11 +119,13 @@ def build_schema(self, schema):
119119
model = CMDDateSchemaBase()
120120
else:
121121
model = CMDDateSchema()
122-
elif schema.format == "date-time":
122+
elif schema.format == "date-time" or schema.format == "date-time-rfc1123":
123123
if self.in_base:
124124
model = CMDDateTimeSchemaBase()
125125
else:
126126
model = CMDDateTimeSchema()
127+
if schema.format == "date-time-rfc1123":
128+
model.is_rfc = True
127129
elif schema.format == "time":
128130
if self.in_base:
129131
model = CMDTimeSchemaBase()

src/aaz_dev/swagger/model/schema/fields.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ class DataTypeFormatEnum(StringType):
66
"int32", "int64",
77
"float", "double",
88
"byte", "binary", "date", "date-time", "time", "password",
9+
"date-time-rfc1123",
910
# additional formats
1011
"duration", "uuid",
1112
"file", "uri",

0 commit comments

Comments
 (0)