Feat: Add createSighting mutation and validation #56
+759
−36
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add createSighting(input: CreateSightingInput!): Sighting! for #37. Input is validated on the server: required fields, text lengths that match the VARCHAR columns, latitude -90..90, longitude -180..180, duration 1 s to 1 year, and a real local datetime from 1900 that is not in the future. All invalid fields are reported at once as a BAD_USER_INPUT error with fieldErrors in the extensions.
Add IS_USER_SUBMITTED to UFO_SIGHTINGS, exposed as Sighting.userSubmitted, so user rows can be told apart from NUFORC rows without a login. Add a backend test script (node --test) with unit tests for the validation.
TODO: