Commit Graph

1540 Commits

Author SHA1 Message Date
Sergio Benitez fec443a3f0 Fix issue #1. 2016-09-04 13:51:16 -07:00
Sergio Benitez 529340ebb7 Add missing comma to quote_enum macro. 2016-09-04 13:34:11 -07:00
Sergio Benitez f54b39584d Renamed method_variant_to_expr to method_to_path. 2016-09-04 04:22:43 -07:00
Sergio Benitez a127a06480 Update README.md example. 2016-09-04 04:10:35 -07:00
Sergio Benitez 5722e9453e Removed unncessary code. 2016-09-04 04:10:10 -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 99074a913d Add example for future testing API. 2016-08-27 16:20:01 -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 2b7b733e83 Remove denig: it is not a macro. 2016-08-25 19:08:56 -07:00
Sergio Benitez a5e1f8246c Revert parsing bug introduced in commit 43bfefc1b2. 2016-08-25 19:02:26 -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 43bfefc1b2 Switch to UFCS in param.contains call. 2016-08-23 23:23:57 -07:00
Sergio Benitez 05cf6b57c4 Add the content_types example. 2016-08-22 20:40:19 -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 c8eef33820 Renamed to 'data' to 'content_type'. 2016-08-22 19:21:59 -07:00
Sergio Benitez 8adf9f7c46 Parse 'data' parameter in route attribute. 2016-08-22 19:13:36 -07:00
Sergio Benitez 025c9243c0 Now using a Cargo workspace for (much!) faster builds. Added a temporary query
params example.
2016-08-10 17:50:08 -07:00
Sergio Benitez df9b71bee7 Updated README to use method specific decorator. 2016-08-08 18:35:24 -07:00
Sergio Benitez eabb5169de Added method specific macros. 2016-08-08 18:34:18 -07:00
Sergio Benitez c7b1eebd20 Refactored parsing code into its own module. 2016-08-08 18:08:59 -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 55d5dd2b46 Hopefully a fix for the travis bash script. 2016-08-06 20:59:51 -07:00
Sergio Benitez d16d9bd0d7 Fixed todo example. Testing script now bootstraps when needed. 2016-08-06 19:57:44 -07:00
Sergio Benitez b767c1bdec Fixed Cargo.toml in todo for new diesel. Serde is still broken. 2016-08-05 21:57:55 -07:00
Sergio Benitez c3f9e01af1 Added run notes to TODO. 2016-08-01 20:01:47 -07:00
Sergio Benitez 37cbceff67 Rust isn't subtyping lifetimes correctly, so we'll appease it. 2016-08-01 19:47:21 -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 677d7c49ea Slightly cleaner form argument parsing. 2016-07-19 20:09:35 -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 5870c2fe92 Updated for latest Rust nightly. 2016-07-06 17:09:22 -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 0d3ef66774 Updates for latest Rust. 2016-04-11 01:18:42 -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 33c4d89614 Updated README. 2016-04-06 12:50:51 -07:00