Commit Graph

283 Commits

Author SHA1 Message Date
fc6c6179b8 Added E-Mail send logic (untested yet) 2024-12-13 11:36:21 +01:00
7548de7609 Prepare to send E-mail notifications 2024-12-12 16:06:32 +01:00
e5d9d051ea Added notification generation for next 24hrs shipcalls 2024-12-12 11:10:05 +01:00
50cecc6a9d fixed bug in participant API GET with user_id parameter 2024-12-11 12:10:37 +01:00
ebb2182c4c Create assignment and un-assignment notifications 2024-12-10 10:30:26 +01:00
dd3f000f84 fixed missing shipcall id in backend result 2024-12-07 15:17:25 +01:00
573ab2d808 Scheduler setup for notification level evaluation 2024-12-06 10:08:24 +01:00
be46e79a67 Cosmetics and bumped version to 1.7.0.0 2024-12-05 18:46:04 +01:00
7d4f202692 Fixed error in validation when not all fields are transmitted. Added UI for Notification flags. 2024-12-05 18:39:28 +01:00
44f5d07ed7 Adjusted yaml spec and fixed user interface for storing notification flags 2024-12-05 17:25:01 +01:00
941b5e70fb Fixed ship add in backend 2024-12-05 14:47:20 +01:00
3775d6775c adding missing defaults when shipcall is not yet created 2024-11-14 11:47:57 +01:00
2576127b79 serverside fixes for detecting unchanged time values 2024-11-14 11:45:24 +01:00
b070979723 Allow new shipcalls up to 1 day in the past for serverside validation 2024-11-08 09:41:04 +01:00
d6e3ae20c1 Allow new shipcalls up to 1 day in the past for serverside validation 2024-11-08 09:37:46 +01:00
72d3ad05bf Added validation rules regarding port_id (for berth and participant assignment) 2024-10-23 09:55:56 +02:00
0d7861ec36 If a PUT or DELETE operation is attempted on a non-existant object, 404 is returned 2024-10-21 10:37:35 +02:00
4531eda8f1 more validation input fixes 2024-10-19 19:59:38 +02:00
b5b78a9c7e Fixed tidal window validation and description output 2024-10-19 19:59:17 +02:00
f0720b9b1d Fixed some more small bugs in validation when only a partial times dataset is put 2024-10-19 19:58:46 +02:00
11098da25b bugfix for shipcall PUT validation 2024-10-19 19:56:29 +02:00
scopesorting
fb8b732b1d regardless of the BSMD flag, BSMD users are now able to perform shipc… (#51)
* regardless of the BSMD flag, BSMD users are now able to perform shipcall PUT-requests

* regardless of the BSMD flag, BSMD users are now able to perform shipcall PUT-requests

* docstrings and BSMD-flag handling
2024-10-19 19:56:08 +02:00
1d64a83d32 Fixed error in validation when times data was updated for operations 2024-09-30 08:32:18 +02:00
f3c5111265 Upgrade to python 3.12 on the server, exported current requirements 2024-09-23 08:09:59 +02:00
ed6f5ab648 essential bugfixes 2024-09-20 09:46:48 +02:00
Max Metz
7abf0e26e2 when a ship is deleted, the IMO is no longer considered to exist 2024-09-18 08:34:21 +02:00
Max Metz
cc29320c87 BSMD-flag check was executed on the wrong ID. Now, it correctly uses the assigned agency's ID to determine the presence of a BSMD flag 2024-09-18 08:33:59 +02:00
5ce866936d unified return structure to use error_field instead of message key to correspond to API specification 2024-09-16 14:17:30 +02:00
a68a768277 fixed bug in ports GET 2024-09-15 16:13:47 +02:00
489dfc2ed6 added port_id and ports endpoint to flask app (no validation yet!), reading works 2024-09-13 17:45:31 +02:00
cc17e6c33a Merge branch 'feature/1.6_database_changes' into develop 2024-09-12 11:48:56 +02:00
5625cbac49 reverted settings for test version 2024-09-12 11:31:16 +02:00
Max Metz
aaea8441f6 shifting the ship-id check into the validation object 2024-09-12 10:22:27 +02:00
Max Metz
82ad56812e correcting an issue in the DELETE methods for SHIPS and TIMES, where the ID may have been provided as a null value or was incorrectly converted (string instead of integer) 2024-09-12 10:19:26 +02:00
Max Metz
7c5bc626d0 improving documentation 2024-09-10 17:47:44 +02:00
Max Metz
6505ad758f bsmd authorization for times PUT 2024-09-10 17:45:32 +02:00
Max Metz
5b68ef95cb adapting exception handling and error responses for 400 responses. Using a simplified format, which only uses the keys 'error_field' and 'error_description' 2024-09-10 17:37:08 +02:00
Max Metz
590df30fef A ship's IMO-validation was used in POST and PUT requests. This caused an issue for POST requests. 2024-09-10 14:48:20 +02:00
Max Metz
c90b002806 Times POST no longer raises a ValidationError when the provided time is in the past. 2024-09-10 14:17:03 +02:00
Max Metz
7a97cd7d95 format of exceptions now always follows baseline format. 'errors'-key is always a list of dictionaries. 2024-09-10 13:50:13 +02:00
Max Metz
9127cdeac8 BSMD users are now allowed to POST times entry, if they are assigned to the ShipcallParticipantMap or the special BSMD-flag-clause takes place 2024-09-09 17:06:03 +02:00
Max Metz
d2cd233f13 creating default handlers for every kind of Exception in the /api/ routes. Those default functions also create automatic logging with the .warning level. Relocated the .impl-calls into the Try-Exception-blocks, so they are properly logged and avoid system failures. 2024-09-09 12:46:55 +02:00
Max Metz
85973ad848 creating a default error response format for each API route 2024-09-09 12:21:32 +02:00
Max Metz
61b00b8b22 auto-converting non-lists to list values. 2024-09-09 11:55:58 +02:00
Max Metz
ab7b1ed34f every ValidationError is defined to return a dictionary. In case of validation errors without such a call, a function enforces a default with an undefined key to ensure the correct format. 2024-09-05 12:46:04 +02:00
Max Metz
c7371a945a adapting traffic light validation 0002-C. This no longer requires ETA verification. Adapted the description when the error occurs and renamed the function. 2024-09-04 12:21:22 +02:00
Max Metz
e4d0ea2301 fixed serialization of marshmallow.ValidationErrors. This was caused by the 'valid_data' containing datetime objects, which were not serializable natively. 2024-09-04 12:11:32 +02:00
Max Metz
2f678267c8 time estimations are no longer dependency on times POST requests. This refers to eta_berth, etd_berth, operations_start, operations_end. 2024-09-04 11:41:03 +02:00
Max Metz
2c0a73113b shipcall PUTs may no longer change the shipcall type 2024-09-04 11:17:32 +02:00
Max Metz
3d2405e8fb maintenance of API Input Validation (ship & times) 2024-09-04 10:27:46 +02:00
Max Metz
1ff972883f adding input validation for time intervals 2024-09-04 10:27:38 +02:00
Max Metz
4b5ff90b34 properly serializing ValidationError exceptions. 2024-09-04 08:30:46 +02:00
6cfd311bbb Version bump to 1.6 2024-09-04 08:09:13 +02:00
ed7c4fbfbb Created test version including version bump to 1.5.0 2024-08-30 11:27:10 +02:00
Max Metz
2ac2bc196c potentially resolving the 'Unknown column ... in 'field list' issue 2024-08-28 18:44:45 +02:00
Max Metz
a51b830cf6 removed the 'canceled may not be set on post'-issue. 2024-08-28 13:06:36 +02:00
Max Metz
1be7d68f5c participant flag also resolved 2024-08-27 21:16:49 +02:00
Max Metz
cc2a54c1c6 added extensive logging for an open, unresolved issue. The issue-log may make clear, where the issue originates 2024-08-27 21:14:30 +02:00
Max Metz
e1d9570268 solving the concatenation issue of a list and a None-type. 2024-08-27 20:52:10 +02:00
Max Metz
8082100b7e using the @classmethod _missing_ function in an IntFlag creates an incorrect resolution of intflags. 127 was resolved as 0 due to the _missing_ function. Without that method, 127 becomes a proper multi-flag 2024-08-27 20:33:33 +02:00
Max Metz
6eab98d2a1 correcting the issue with participant_id authorization (BSMD or AGENCY check). 2024-08-27 19:23:37 +02:00
Max Metz
fcc03b2ade adaptation of traffic validation (resolving open issue) 2024-08-14 19:09:35 +02:00
Max Metz
c4e5764601 /ships GET no longer blocks deleted ships from being returned. 2024-08-14 15:53:37 +02:00
Max Metz
b60874cbb0 shipcall, ship, times and user verify the validity of JSON data when receiving POST/PUT requests. 2024-08-14 15:49:28 +02:00
Max Metz
e488501837 debugging the missing column '.PORT_ADMINISTRATION' issue 2024-08-14 14:58:03 +02:00
Max Metz
4f3686e00f marshmallow.fields incorrectly resolved the 'required' field. Adapted each field to ensure that missing data properly raises an error. 2024-08-14 13:59:26 +02:00
Max Metz
0e8faf499d GET ships no longer returns deleted ships 2024-08-12 20:35:37 +02:00
Max Metz
22009eb469 resolving an issue where missing values for 'flags' in the Shipcall would cause rule-violations 2024-08-12 19:56:26 +02:00
Max Metz
e526337c6a added a reference check to PUT-requests (shipcall), so each provided ID must exist. Corrected some input validation functions to solve known bugs 2024-08-12 19:43:19 +02:00
Max Metz
d54fed9160 corrected open issues of the API validation functions. Made some validation errors more verbose, improved robustness, refactored some of the methods and adapted many unit tests to the novel format. 2024-08-06 20:46:40 +02:00
Max Metz
3ce2fc829d correcting a validation issue for 'voyage' 2024-08-01 18:34:56 +02:00
Max Metz
5769889fea resolving the validation issue in shipcalls, which was caused by a faulty fields type in the ShipcallSchema. 2024-07-31 14:59:59 +02:00
Max Metz
cd8c246d72 adapting times POST, PUT, DELETE to properly include the special case, where a BSMD user should also be allowed to handle times entries of an AGENCY, if the agency has the flag set. 2024-07-25 10:42:44 +02:00
83520a2bc7 Fixed small issues for ships endpoint validation 2024-07-25 10:42:44 +02:00
Max Metz
3d2e1f5158 Added input validation for API requests. Refactored some methods, added docstrings. Solved marshmallow-warnings in BreCal.schemas.model. Added unit tests, now totaling 215. Added proposals to refactor all SQL queries into an object at BreCal.database.sql_queries.SQLQuery for better standardization. Created a helper-object to handle Emails, which prepares the notification-feature. 2024-07-25 10:42:44 +02:00
d7de35236c Version bump to 1.4 2024-07-22 10:40:08 +02:00
1bb4cc5225 Increased version to 1.3 2024-05-06 13:45:05 +02:00
8698d3a1f5 increased 1 hour comparison by 60 seconds to avoid seconds deviation 2024-05-05 11:18:35 +02:00
f07cadef80 fixed another SQL typo 2024-05-05 11:18:13 +02:00
f7604b055e fixed schedule sql 2024-05-05 11:17:58 +02:00
76bf4f01bd Maximum threshold should still be allowed (e.g. 1 hour) 2024-05-05 11:17:36 +02:00
3b01dbb7aa set schedule logging to INFO and using correct query for schedule test calls 2024-05-02 09:44:00 +02:00
Max Metz
105718e2a6 fixing: generator didn't stop after throw() 2024-04-29 16:51:41 +02:00
Max Metz
7f50624d23 adapting validation rules for version 1.2. Rules 0002: the time-difference threshold for 'disagreement' is expanded to 1 hour. There is now element-wise comparison of elements to circumvent instabilities from rounding pd.Timestamp objects. Rules 0001 L&M and 0003: created a feature flag, which skips the evaluation of Terminal times altogether. For version 1.2, this feature flag is enabled. 2024-04-29 12:59:14 +02:00
15eb7615a6 Bugfix for creating new shipcalls 2024-04-13 16:00:42 +02:00
921062e38b fix for ship logical delete server-side 2024-04-13 15:59:51 +02:00
08dd104284 fixed POST when a null evaluation enum is sent 2024-04-08 14:00:49 +02:00
40fd77bf6c fixed serialization in case of null values read 2024-04-08 14:00:31 +02:00
4106b9a0ef For intervals there are now 2 fields in the times object: eta_interval_end and etd_interval_end 2024-04-03 10:39:32 +02:00
d42b3753e7 split up ata_atd in two separate fields ata and atd 2024-03-31 21:58:56 +02:00
11f72b370d fixed a bug where shipcall id was not set on times delete 2024-03-30 21:41:03 +01:00
ac2ad3bc18 fixed bug for POST new shipcalls 2024-03-30 19:48:53 +01:00
a845135650 Bugfix for saving shipcall values 2024-03-28 09:46:23 +01:00
fb3413cac0 Version bump to 1.2.0.0 2024-03-28 08:06:49 +01:00
a5b16154c6 Fixed saving of shipcall by correctly interpreting enums now
The trick was to use a helper-field and a (decorated) @post_load method in the model that allows to fill the helper
fields with the values (ints) instead of strings for enums.
Trouble is: We are parsing strings from API/JSON and want to serialize as int (value in IntEnum). The helper
fields also must be skipped when setting up the query. Pretty convoluted, but gets the jon done (finally).

Also extended the database by new field 'interval_end' which is a preparation to allow not only timestamps but also
intervals when specifying times for participants.
2024-03-27 19:20:54 +01:00
f311d75c73 added ata_atd and time_point_ref fields to database, yaml and python access layer 2024-03-27 10:52:12 +01:00
862ef9fe88 Merge branch 'feature/api_enhancements' into develop 2024-03-27 10:08:48 +01:00
63b815c274 fixed enum serialization by using custom optional to_json() method 2024-02-27 07:31:04 +01:00
e88f3fa1de synched enum fields to lower case like yaml 2024-02-26 07:23:09 +01:00
06e9c9b8ae log incoming message 2024-02-24 10:05:43 +01:00