Implemented view
This commit is contained in:
@@ -1 +1,2 @@
|
||||
#!/usr/bin/env python3
|
||||
#!/usr/bin/env python3
|
||||
from .program_schema import ProgramSchema
|
||||
|
||||
28
program_service/schemas/program_schema.py
Normal file
28
program_service/schemas/program_schema.py
Normal file
@@ -0,0 +1,28 @@
|
||||
from marshmallow import Schema, fields
|
||||
from marshmallow.validate import Length, Equal
|
||||
from marshmallow import RAISE
|
||||
|
||||
from datetime import datetime
|
||||
|
||||
SUPPORTED_PROGRAM_STRUCTURE_VERSION = 1
|
||||
|
||||
|
||||
class CommandSchema(Schema):
|
||||
command = fields.Str(required=True)
|
||||
args = fields.Dict(required=True)
|
||||
|
||||
class Meta:
|
||||
unknown = RAISE
|
||||
|
||||
|
||||
class ProgramSchema(Schema):
|
||||
_id = fields.Str(required=False)
|
||||
created_at = fields.DateTime(required=False, missing=datetime.now)
|
||||
name = fields.Str()
|
||||
|
||||
version = fields.Int(required=True, validate=Equal(SUPPORTED_PROGRAM_STRUCTURE_VERSION))
|
||||
load_plugins = fields.List(fields.Str(), required=True)
|
||||
program = fields.Nested(CommandSchema, many=True, required=True, validate=Length(min=1))
|
||||
|
||||
class Meta:
|
||||
unknown = RAISE
|
||||
Reference in New Issue
Block a user