Rocket/examples/todo
Sergio Benitez b8ba7b855f Remove Session in favor of private cookies. New testing API.
Sessions
--------

This commit removes the `Session` type in favor of methods on the
`Cookies` types that allow for adding, removing, and getting private
(signed and encrypted) cookies. These methods provide a superset of
the functionality of `Session` while also being a minimal addition to
the existing API. They can be used to implement the previous `Session`
type as well as other forms of session storage. The new methods are:

  * Cookie::add_private(&mut self, Cookie)
  * Cookie::remove_private(&mut self, Cookie)
  * Cookie::get_private(&self, &str)

Resolves #20

Testing
-------

This commit removes the `rocket::testing` module. It adds the
`rocket::local` module which provides a `Client` type for local
dispatching of requests against a `Rocket` instance. This `local`
package subsumes the previous `testing` package.

Rocket Examples
---------------

The `forms`, `optional_result`, and `hello_alt_methods` examples have
been removed. The following example have been renamed:

  * extended_validation -> form_validation
  * hello_ranks -> ranking
  * from_request -> request_guard
  * hello_tls -> tls

Other Changes
-------------

This commit also includes the following smaller changes:

  * Config::{development, staging, production} constructors have been
    added for easier creation of default `Config` structures.
  * The `Config` type is exported from the root.
  * `Request` implements `Clone` and `Debug`.
  * `Request::new` is no longer exported.
  * A `Response::body_bytes` method was added to easily retrieve a
    response's body as a `Vec<u8>`.
2017-06-08 17:34:50 -07:00
..
db Add tests for 'todo' example. 2017-05-26 16:52:17 -07:00
migrations Add tests for 'todo' example. 2017-05-26 16:52:17 -07:00
src Remove Session in favor of private cookies. New testing API. 2017-06-08 17:34:50 -07:00
static Remove config global state. Use Responder::respond_to. 2017-05-19 03:29:08 -07:00
bootstrap.sh Make todo example bootstrapping more resilient. 2017-06-01 22:10:05 -07:00
Cargo.toml Add tests for 'todo' example. 2017-05-26 16:52:17 -07:00
README.md Reenable the options decorator. 2017-02-02 15:02:32 -08:00
Rocket.toml Add the [global] psuedo-environment for global configuration. 2016-10-31 17:00:32 +01:00

Rocket Todo Example

This example makes use of a SQLite database via diesel to store todo tasks. As a result, you'll need to have sqlite3 and its headers installed:

  • OS X: brew install sqlite
  • Debian/Ubuntu: apt-get install libsqlite3-dev
  • Arch: pacman -S sqlite

Running

Before running, building, or testing this example, you'll need to ensure the following:

  1. A SQLite database file with the proper schema is present.
On a Unix machine or with bash installed, you can simply run the
`boostrap.sh` script to create the database. The script installs the
`diesel_cli` tools if they're not already installed and runs the migrations.
The script will output a `DATABASE_URL` variable.

You can also run the migrations manually with the following commands:

```
cargo install diesel_cli                      # install diesel CLI tools
DATABASE_URL=db/db.sql diesel migration run   # create db/db.sql
```
  1. A DATABASE_URL environment variable is set that points to the SQLite database file.

    Use the DATABASE_URL variable emitted from the bootstrap.sh script, or enter it manually, as follows:

    • DATABASE_URL=db/db.sql cargo build
    • DATABASE_URL=db/db.sql cargo test
    • DATABASE_URL=db/db.sql cargo run