Commit Graph

65 Commits

Author SHA1 Message Date
Sergio Benitez
47edc65d34 Rename data_type to data and don't export inner types. 2016-09-20 20:02:33 -07:00
Sergio Benitez
a3218192dd Add contrib crate. Add JSON to contrib. Add JSON example. 2016-09-19 16:24:01 -07:00
Sergio Benitez
8824d498d1 Add streaming responder and example. 2016-09-12 02:43:34 -07:00
Sergio Benitez
4e03bb6107 Add NamedFile response type. 2016-09-12 01:51:02 -07:00
Sergio Benitez
21e26c32c0 Bump version numbers. Approaching release! 2016-09-11 18:57:47 -07:00
Sergio Benitez
e8e85f09cd Add support for flash cookie. Revamp cookie support. 2016-09-11 18:57:04 -07:00
Sergio Benitez
9a9d07f044 Improve default catcher error messages. 2016-09-09 01:00:51 -07:00
Sergio Benitez
f259593727 Use a generic ToString object in new. 2016-09-08 00:25:40 -07:00
Sergio Benitez
b755e53f63 Add trailing params. 2016-09-08 00:02:17 -07:00
Sergio Benitez
a6967cb48f Strip lifetimes for generated param types. 2016-09-06 23:24:20 -07:00
Sergio Benitez
327b28a98e Add query params to Rocket. Use Ident for attribute params. 2016-09-04 19:18:08 -07:00
Sergio Benitez
7f54c9036f Return HTML for default catchers. 2016-09-04 14:24:36 -07:00
Sergio Benitez
4d301eebbd Complete overhaul complete. 2016-09-04 04:06:28 -07:00
Sergio Benitez
a42d7f8668 Complete rewrite of macro parsing and item generation. 2016-09-04 01:05:17 -07:00
Sergio Benitez
bb9faeb344 Version bump. 2016-08-27 05:34:06 -07:00
Sergio Benitez
8b99016af4 Add rank to route attribute. Macrofy is_some ContentType methods. 2016-08-27 05:10:29 -07:00
Sergio Benitez
2fe13b2fe8 Clippyfied the library. 2016-08-26 22:05:33 -07:00
Sergio Benitez
c058694bd0 Add more ranked routing tests. 2016-08-26 21:48:16 -07:00
Sergio Benitez
a34374d913 Output all matching routes, not just first ranked. 2016-08-26 21:34:28 -07:00
Sergio Benitez
860b302793 Change rank meaning: lower means higher priority. 2016-08-26 19:03:21 -07:00
Sergio Benitez
a1ad05e879 This commit is a squash of the following commits:
* Add content-type responsers for JSON, HTML, and plain text.
  * Use content-type responders in content_type example.
  * Conditionally create Request `from` HypRequest.
  * Clean-up dispatching and handling in main rocket.
  * Change Level enum to Logging Level and reexport.
  * Allow users to set logging level before launch.
  * Fix content_type example error handling.
  * Percent decode params when user requests `String`.
2016-08-26 18:37:28 -07:00
Sergio Benitez
90d8621adf Major overhual: Request, ErrorHandler, ContentType. 2016-08-26 01:55:11 -07:00
Sergio Benitez
81bc2466eb Add missing logger file. 2016-08-24 01:34:00 -07:00
Sergio Benitez
868448c4b3 Use log crate for cleaner, more flexible logging. 2016-08-24 01:30:09 -07:00
Sergio Benitez
b51cb22f87 Fix Route::ranked type signature. 2016-08-22 20:38:39 -07:00
Sergio Benitez
bd9d553050 New type: ContentType. Parse ContentType from attribute. 2016-08-22 20:34:22 -07:00
Sergio Benitez
3a89cb8e2b Can now retrieve cookies from a handler. SWEET! Bumped version to 0.0.5. 2016-08-08 03:48:00 -07:00
Sergio Benitez
95a8a51b76 Added FromRequest and modified macro to use it: any parameters not declared by the user in the attributes will automatically be retrieved using FromRequest. 2016-08-08 03:10:23 -07:00
Sergio Benitez
bceb1ecfb6 Added Cookied as a response: can now set cookies. Added example of setting cookies. Working on retrieving them. 2016-08-06 23:14:05 -07:00
Sergio Benitez
578b50b1f9 Fully working todo example. Apparently didn't commit in a while. Need to be better at that. 2016-08-01 19:07:36 -07:00
Sergio Benitez
92671a0cba Overhealed route decorator. URI struct now understands query part. 2016-07-18 21:11:22 -07:00
Sergio Benitez
26b7b814f4 Progress on errors. Started Todo example.
The error function now takes in a "RoutingError" structure. The idea is that the
structure includes all of the information necessary for a user to processor the
error as they wish. This interface is very incomplete and may change. At a
minimum, the error structure should include:

  1) The request that failed.
  2) Why the request failed.
  3) The chain of attempted route matches, if any.
  4) Something else?
2016-07-15 21:09:08 -07:00
Sergio Benitez
9db5f5811f Fixed all valid Clippy warnings. Removed deprecated method call. 2016-04-22 19:48:03 -07:00
Sergio Benitez
d1a54e9c0e Remove unnecessary mut. 2016-04-11 04:02:39 -07:00
Sergio Benitez
b8b44a0594 Can now assign outcome to response. Route mismatches now forward.
This means we have almost all of the infrastructure in place to properly use
ranked requests. At the moment, we only use this to allow user error handlers
when a responder fails. But, soon enough, we'll try the next highest ranked
route until there are no more matching routes. Yipee!
2016-04-11 03:57:23 -07:00
Sergio Benitez
3f2954ab5c Added Response::with_status. Using it for catchers. 2016-04-11 02:12:45 -07:00
Sergio Benitez
1ef7a15bab Working error handling! Not quite there yet though.
A few important things needs to get this to be 'right':
  1a. Have a way to return a response with a status code.
  1b. Use that mechanism in the default catchers.
  2. Automatically fill in that code from the #[error] handler.
  3. Have a way for a responder to say if responding succeeded.
  4. Try next highest ranking route if responding with one handler fails.
2016-04-06 13:50:02 -07:00
Sergio Benitez
dc5ef6a421 Progress on error handling. Calling them 'catchers' for now.
Added `error` decorator and `errors` macro.

The current idea is that you can have "catchers" for all valid errors code (in
range [400, 500). At the moment, catchers are just request handlers, and the
decorator expected an empty function signature for the error handler. Obviously,
this is pretty useless. Not sure on what the API should be here. But, progress.

Oh, one more thing: who should handle forwarding a request to a catcher?
Probably not the router. So, the main Rocket should?
2016-04-06 03:26:43 -07:00
Sergio Benitez
2dbcfa10e3 Implemented FromFormValue for all of the FromStrs. 2016-04-04 04:19:07 -07:00
Sergio Benitez
b76dc137d3 Forgot to add the form file. Whoops. 2016-04-03 22:56:36 -07:00
Sergio Benitez
b7d22d58f7 Actually useful forms! 2016-04-03 22:41:31 -07:00
Sergio Benitez
3e449d2fb9 Forms are now working! 2016-04-03 21:53:25 -07:00
Sergio Benitez
293159904f Fixed codegen to work with new API. 2016-04-03 04:25:37 -07:00
Sergio Benitez
3dfa049a1a HRTB for the win! Manual routes example fully working. 2016-04-03 03:36:30 -07:00
Sergio Benitez
72329a7145 Adding/removing TODOs. 2016-04-02 01:51:22 -07:00
Sergio Benitez
416a18abf8 Added ranked routing. 2016-04-02 01:46:41 -07:00
Sergio Benitez
69a19ccc7f Trying to clean up that ugly function... 2016-04-02 00:58:06 -07:00
Sergio Benitez
5fb12485e8 Major refactoring. Merged two Route structure. Created URI and URIBuf. 2016-04-02 00:51:40 -07:00
Sergio Benitez
50bc0d6999 Major refactoring.
Here's the idea: under the `Rocket` namespace should live things critical to
writing simple Rocket apps: Request, Response, Error, etc. Nothing should be
nested more than one level deep. Only items required for more complex things
(implementing uncommon traits, etc.) should be nested one level deep.

This commit is the first attempt at realizing this.
2016-04-01 16:54:53 -07:00
Sergio Benitez
d477c18062 Major progress towards form support. 2016-03-30 01:02:21 -07:00