Implemented view

This commit is contained in:
2021-04-14 21:07:48 +02:00
parent 85fc2aeecb
commit eb8959dab4
3 changed files with 63 additions and 8 deletions

View File

@@ -1 +1,2 @@
#!/usr/bin/env python3
#!/usr/bin/env python3
from .program_schema import ProgramSchema

View 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