Comments (4)
yeah ... that's my bad for not debuging this more deeply first ... I didn't realize that we are already using Instant at that point, so the actual date validation is done by Server when parsing. The issue is, that those throw DateTimeParseException
which leads to a HTTP 500, instead of a client side error.
dateFrom = dateFrom?.let { Instant.parse(it) },
dateTo = dateTo?.let { Instant.parse(it) },
Simply adding another catch on the server side wouldn't help, as we wouldn't be able to distinguish between client and server error, in case this happens somewhere else. Similar issue with the .toInt()
calls.
I'd suggest we add a few helpers for extracting specific types from params, so that we can produce proper response ... eg
fun HttpRequest.queryParamAsInstant(key: String): Instant?
fun HttpRequest.queryParamAsInt(key: String): Int?
they could convert numberformat and date format exceptions, and turn them into validation exceptions
from ocpi-toolkit.
You are absolutely right, this is an issue
from ocpi-toolkit.
Actually, what should we validate if only dateFrom
is set or dateTo
is set? validateDates
currently only checks if to
is after from
from ocpi-toolkit.
You are right, your suggestion is great, we should implement it
from ocpi-toolkit.
Related Issues (20)
- Request Parameter vs. Owned Object values validation
- DELETE endpoint of Credentials module HOT 1
- Credentials PUT/DELETE methods should return 405 METHOD NOT ALLOWED when the partner is not registered
- If there is an exception, the debug headers are not included in the response.
- Question on the validation of objects HOT 3
- Implement CDR module HOT 3
- Java compatibility
- Module separation HOT 2
- Don't publish annotation-processor & common module to maven central HOT 5
- Credentials sample does not work
- DateTime without the timezone cannot be parsed
- UTF-8 validator only allows for ASCII characters
- If there is an exception, the Message Routing Headers are not included in the response.
- Parsing errors in the JSON request body are not reported to the requester
- Not Base64-encoded authorization token results in HTTP 500 error
- Ignore unknown properties.
- Skip NULL values in Connector.tariff_ids HOT 1
- (discussion) OcpiResponseBody fields in snake_case HOT 1
- date_from in Sessions Sender Interface must be required HOT 1
- twentyforseven should be "twentyforseven" not "twenty_for_seven" HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ocpi-toolkit.