From 81c93412ad39464c0469d14d85e1b9235c1099f6 Mon Sep 17 00:00:00 2001 From: scopesorting Date: Mon, 15 Apr 2024 12:06:48 +0200 Subject: [PATCH] updating STUB objects, slightly adapting data models --- src/server/BreCal/schemas/model.py | 115 +++++++++++------------- src/server/BreCal/stubs/notification.py | 2 - src/server/BreCal/stubs/times_full.py | 9 ++ src/server/BreCal/stubs/user.py | 9 ++ 4 files changed, 71 insertions(+), 64 deletions(-) diff --git a/src/server/BreCal/schemas/model.py b/src/server/BreCal/schemas/model.py index c429777..0df42c8 100644 --- a/src/server/BreCal/schemas/model.py +++ b/src/server/BreCal/schemas/model.py @@ -1,5 +1,5 @@ from dataclasses import field, dataclass -from marshmallow import Schema, fields, INCLUDE, ValidationError, validate, validates +from marshmallow import Schema, fields, INCLUDE, ValidationError, validate, validates, post_load from marshmallow.fields import Field from marshmallow_enum import EnumField from enum import IntEnum @@ -105,7 +105,7 @@ class History: return self(id, participant_id, shipcall_id, timestamp, eta, ObjectType(type), OperationType(operation)) class Error(Schema): - message = fields.String(required=True) + message = fields.String(metadata={'required':True}) class GetVerifyInlineResp(Schema): @@ -164,41 +164,34 @@ class ShipcallSchema(Schema): id = fields.Integer() ship_id = fields.Integer() type = fields.Integer() - eta = fields.DateTime(Required = False, allow_none=True) + eta = fields.DateTime(metadata={'required':False}, allow_none=True) voyage = fields.String(allow_none=True, metadata={'Required':False}, validate=[validate.Length(max=16)]) # Solving: RemovedInMarshmallow4Warning: Passing field metadata as keyword arguments is deprecated. Use the explicit `metadata=...` argument instead. Additional metadata: {'Required': False} - etd = fields.DateTime(Required = False, allow_none=True) - arrival_berth_id = fields.Integer(Required = False, allow_none=True) - departure_berth_id = fields.Integer(Required = False, allow_none=True) - tug_required = fields.Bool(Required = False, allow_none=True) - pilot_required = fields.Bool(Required = False, allow_none=True) - flags = fields.Integer(Required = False, allow_none=True) - pier_side = fields.Bool(Required = False, allow_none=True) - bunkering = fields.Bool(Required = False, allow_none=True) - replenishing_terminal = fields.Bool(Required = False, allow_none=True) - replenishing_lock = fields.Bool(Required = False, allow_none=True) - draft = fields.Float(Required = False, allow_none=True, validate=[validate.Range(min=0, max=20, min_inclusive=False, max_inclusive=True)]) - tidal_window_from = fields.DateTime(Required = False, allow_none=True) - tidal_window_to = fields.DateTime(Required = False, allow_none=True) - rain_sensitive_cargo = fields.Bool(Required = False, allow_none=True) - recommended_tugs = fields.Integer(Required = False, allow_none=True) - anchored = fields.Bool(Required = False, allow_none=True) - moored_lock = fields.Bool(Required = False, allow_none=True) - canceled = fields.Bool(Required = False, allow_none=True) -<<<<<<< HEAD - evaluation = fields.Enum(EvaluationType, required=False, allow_none=True, default=EvaluationType.undefined) + etd = fields.DateTime(metadata={'required':False}, allow_none=True) + arrival_berth_id = fields.Integer(metadata={'required':False}, allow_none=True) + departure_berth_id = fields.Integer(metadata={'required':False}, allow_none=True) + tug_required = fields.Bool(metadata={'required':False}, allow_none=True) + pilot_required = fields.Bool(metadata={'required':False}, allow_none=True) + flags = fields.Integer(metadata={'required':False}, allow_none=True) + pier_side = fields.Bool(metadata={'required':False}, allow_none=True) + bunkering = fields.Bool(metadata={'required':False}, allow_none=True) + replenishing_terminal = fields.Bool(metadata={'required':False}, allow_none=True) + replenishing_lock = fields.Bool(metadata={'required':False}, allow_none=True) + draft = fields.Float(metadata={'required':False}, allow_none=True, validate=[validate.Range(min=0, max=20, min_inclusive=False, max_inclusive=True)]) + tidal_window_from = fields.DateTime(metadata={'required':False}, allow_none=True) + tidal_window_to = fields.DateTime(metadata={'required':False}, allow_none=True) + rain_sensitive_cargo = fields.Bool(metadata={'required':False}, allow_none=True) + recommended_tugs = fields.Integer(metadata={'required':False}, allow_none=True) + anchored = fields.Bool(metadata={'required':False}, allow_none=True) + moored_lock = fields.Bool(metadata={'required':False}, allow_none=True) + canceled = fields.Bool(metadata={'required':False}, allow_none=True) + evaluation = fields.Enum(EvaluationType, metadata={'required':False}, allow_none=True, default=EvaluationType.undefined) evaluation_message = fields.Str(allow_none=True, metadata={'Required':False}) # Solving: RemovedInMarshmallow4Warning: Passing field metadata as keyword arguments is deprecated. Use the explicit `metadata=...` argument instead. Additional metadata: {'Required': False} - evaluation_time = fields.DateTime(Required = False, allow_none=True) - evaluation_notifications_sent = fields.Bool(Required = False, allow_none=True) - time_ref_point = fields.Int(Required = False, allow_none=True) -======= - evaluation = fields.Integer(Required = False, allow_none=True) - evaluation_message = fields.String(allow_none=True, metadata={'Required':False}) # Solving: RemovedInMarshmallow4Warning: Passing field metadata as keyword arguments is deprecated. Use the explicit `metadata=...` argument instead. Additional metadata: {'Required': False} - evaluation_time = fields.DateTime(Required = False, allow_none=True) - evaluation_notifications_sent = fields.Bool(Required = False, allow_none=True) ->>>>>>> a5284a4 (implementing notifications, working on input validation) + evaluation_time = fields.DateTime(metadata={'required':False}, allow_none=True) + evaluation_notifications_sent = fields.Bool(metadata={'required':False}, allow_none=True) + time_ref_point = fields.Integer(metadata={'required':False}, allow_none=True) participants = fields.List(fields.Nested(ParticipantAssignmentSchema)) - created = fields.DateTime(Required = False, allow_none=True) - modified = fields.DateTime(Required = False, allow_none=True) + created = fields.DateTime(metadata={'required':False}, allow_none=True) + modified = fields.DateTime(metadata={'required':False}, allow_none=True) @post_load def make_shipcall(self, data, **kwargs): @@ -258,8 +251,6 @@ class Shipcall: created: datetime modified: datetime participants: List[Participant_Assignment] = field(default_factory=list) - evaluation_time : datetime = None - evaluation_notifications_sent : bool = None def to_json(self): return { @@ -313,30 +304,30 @@ class TimesSchema(Schema): super().__init__(unknown=None) pass - id = fields.Integer(Required=False) - eta_berth = fields.DateTime(Required = False, allow_none=True) - eta_berth_fixed = fields.Bool(Required = False, allow_none=True) - etd_berth = fields.DateTime(Required = False, allow_none=True) - etd_berth_fixed = fields.Bool(Required = False, allow_none=True) - lock_time = fields.DateTime(Required = False, allow_none=True) - lock_time_fixed = fields.Bool(Required = False, allow_none=True) - zone_entry = fields.DateTime(Required = False, allow_none=True) - zone_entry_fixed = fields.Bool(Required = False, allow_none=True) - operations_start = fields.DateTime(Required = False, allow_none=True) - operations_end = fields.DateTime(Required = False, allow_none=True) - remarks = fields.String(Required = False, allow_none=True, validate=[validate.Length(max=256)]) - participant_id = fields.Integer(Required = True) - berth_id = fields.Integer(Required = False, allow_none = True) - berth_info = fields.String(Required = False, allow_none=True, validate=[validate.Length(max=256)]) - pier_side = fields.Bool(Required = False, allow_none = True) - shipcall_id = fields.Integer(Required = True) - participant_type = fields.Integer(Required = False, allow_none=True) - ata = fields.DateTime(Required = False, allow_none=True) - atd = fields.DateTime(Required = False, allow_none=True) - eta_interval_end = fields.DateTime(Required = False, allow_none=True) - etd_interval_end = fields.DateTime(Required = False, allow_none=True) - created = fields.DateTime(Required = False, allow_none=True) - modified = fields.DateTime(Required = False, allow_none=True) + id = fields.Integer(metadata={'required':False}) + eta_berth = fields.DateTime(metadata={'required':False}, allow_none=True) + eta_berth_fixed = fields.Bool(metadata={'required':False}, allow_none=True) + etd_berth = fields.DateTime(metadata={'required':False}, allow_none=True) + etd_berth_fixed = fields.Bool(metadata={'required':False}, allow_none=True) + lock_time = fields.DateTime(metadata={'required':False}, allow_none=True) + lock_time_fixed = fields.Bool(metadata={'required':False}, allow_none=True) + zone_entry = fields.DateTime(metadata={'required':False}, allow_none=True) + zone_entry_fixed = fields.Bool(metadata={'required':False}, allow_none=True) + operations_start = fields.DateTime(metadata={'required':False}, allow_none=True) + operations_end = fields.DateTime(metadata={'required':False}, allow_none=True) + remarks = fields.String(metadata={'required':False}, allow_none=True, validate=[validate.Length(max=256)]) + participant_id = fields.Integer(metadata={'required':True}) + berth_id = fields.Integer(metadata={'required':False}, allow_none = True) + berth_info = fields.String(metadata={'required':False}, allow_none=True, validate=[validate.Length(max=256)]) + pier_side = fields.Bool(metadata={'required':False}, allow_none = True) + shipcall_id = fields.Integer(metadata={'required':True}) + participant_type = fields.Integer(metadata={'required':False}, allow_none=True) + ata = fields.DateTime(metadata={'required':False}, allow_none=True) + atd = fields.DateTime(metadata={'required':False}, allow_none=True) + eta_interval_end = fields.DateTime(metadata={'required':False}, allow_none=True) + etd_interval_end = fields.DateTime(metadata={'required':False}, allow_none=True) + created = fields.DateTime(metadata={'required':False}, allow_none=True) + modified = fields.DateTime(metadata={'required':False}, allow_none=True) @validates("eta_berth") def validate_eta_berth(self, value): @@ -351,7 +342,7 @@ class UserSchema(Schema): def __init__(self): super().__init__(unknown=None) pass - id = fields.Integer(required=True) + id = fields.Integer(metadata={'required':True}) first_name = fields.String(allow_none=True, metadata={'Required':False}, validate=[validate.Length(max=64)]) last_name = fields.String(allow_none=True, metadata={'Required':False}, validate=[validate.Length(max=64)]) user_phone = fields.String(allow_none=True, metadata={'Required':False}) @@ -439,7 +430,7 @@ class ShipSchema(Schema): super().__init__(unknown=None) pass - id = fields.Int(Required=False) + id = fields.Int(metadata={'required':False}) name = fields.String(allow_none=False, metadata={'Required':True}) imo = fields.Int(allow_none=False, metadata={'Required':True}) callsign = fields.String(allow_none=True, metadata={'Required':False}) diff --git a/src/server/BreCal/stubs/notification.py b/src/server/BreCal/stubs/notification.py index 63df90f..8971a76 100644 --- a/src/server/BreCal/stubs/notification.py +++ b/src/server/BreCal/stubs/notification.py @@ -7,7 +7,6 @@ def get_notification_simple(): """creates a default notification, where 'created' is now, and modified is now+10 seconds""" notification_id = generate_uuid1_int() # uid? times_id = generate_uuid1_int() # uid? - acknowledged = False level = 10 type = 0 message = "hello world" @@ -17,7 +16,6 @@ def get_notification_simple(): notification = Notification( notification_id, times_id, - acknowledged, level, type, message, diff --git a/src/server/BreCal/stubs/times_full.py b/src/server/BreCal/stubs/times_full.py index f0176a1..774cc9f 100644 --- a/src/server/BreCal/stubs/times_full.py +++ b/src/server/BreCal/stubs/times_full.py @@ -27,6 +27,11 @@ def get_times_full_simple(): zone_entry = etd_berth+datetime.timedelta(hours=0, minutes=15) zone_entry_fixed = False + + ata = eta_berth+datetime.timedelta(hours=0, minutes=15) + atd = etd_berth+datetime.timedelta(hours=0, minutes=15) + eta_interval_end = eta_berth + datetime.timedelta(hours=0, minutes=25) + etd_interval_end = etd_berth + datetime.timedelta(hours=0, minutes=25) operations_start = zone_entry+datetime.timedelta(hours=1, minutes=30) operations_end = operations_start+datetime.timedelta(hours=4, minutes=30) @@ -63,6 +68,10 @@ def get_times_full_simple(): pier_side=pier_side, participant_type=participant_type, shipcall_id=shipcall_id, + ata=ata, + atd=atd, + eta_interval_end=eta_interval_end, + etd_interval_end=etd_interval_end, created=created, modified=modified, ) diff --git a/src/server/BreCal/stubs/user.py b/src/server/BreCal/stubs/user.py index e469c55..908f512 100644 --- a/src/server/BreCal/stubs/user.py +++ b/src/server/BreCal/stubs/user.py @@ -18,6 +18,11 @@ def get_user_simple(): created = datetime.datetime.now() modified = created+datetime.timedelta(seconds=10) + + notify_email = True + notify_whatsapp = True + notify_signal = True + notify_popup = True user = User( user_id, @@ -29,6 +34,10 @@ def get_user_simple(): user_phone, password_hash, api_key, + notify_email, + notify_whatsapp, + notify_signal, + notify_popup, created, modified )