1001 Commits

Author SHA1 Message Date
George Kaplan
7df6d4dbcf undo URL percent-encoding for SQLite connection strings 2020-04-17 18:23:33 -07:00
Samani G. Gikandi
45744e8033 Updates CI workflow for realworld
* Moves realworld into a separate file since it's long
* Adds checkout, db provisioning, and build steps for postgres and
  sqlite
2020-04-17 12:42:22 -07:00
Samani G. Gikandi
841d9a7f45 Changes PKs in realworld postgres to SERIAL
`GENERATED` was added in Postgres 12 and we test as far back as 9
2020-04-17 12:42:22 -07:00
Samani G. Gikandi
9fb523d4e8 Runs rustfmt across realworld 2020-04-17 12:42:22 -07:00
Samani G. Gikandi
8138a26b61 Finishes realworld example implementation
* Adds tables for  storing articles, tags, favorites, and comments.
* Implements all remaining web APIs (articles, tags, profiles, etc)

* Refactors `Provide` traits into
* `ProvideAuthn` is used to store/retrieve user info
* `ProvideData` is used to retrieve application data
* ` Provide` traits are now implemented on Connections instead of Pools
* Introduces `Db` trait that encapsulates DB connections

* Cleans up endpoint functions
2020-04-17 12:42:22 -07:00
Samani G. Gikandi
7038dd8ab2 Refactors realworld example with multi DB support
**General**

* Moves `examples/postgres/realworld` to `examples/realworld`
* The app is now architected to support multiple DBs
* Adds feature flags for `sqlite` and `postgres` to allow user to choose
  which backend to use

    *NOTE* Currently it is not possible to compile with `postgres` and `sqlite`
      enabled as we are using the `query!` and `query_as!` macros and they
      seem to get unhappy.

* Adds CLI flags for picking the DB backend to use at runtime
* Adds schema file and implementation for SQLite for `/api/user` routes
* Adds stub routes and trait for articles and Articles entity

**Changes**

* We now use i32 instead of i64 as the user_id to get around some quirks
  w/ the SQLite driver.
* Reimplements existing route handlers w/ an error handling shim so we can use
  Try inside the biz logic
* *FIX* Adds a `user` key to the register user body to conform w/ realworld's
  API specs

APIs were functionally tested using realworld's API test script
  (https://github.com/gothinkster/realworld/tree/master/api#authentication)
2020-04-17 12:42:22 -07:00
meh
2fb38dd0c1 Derive all traits and impl Deref and AsRef for types::Json 2020-04-16 11:00:31 -07:00
meh
bfc52ca2f4 Add query_unchecked and query_file_unchecked macros 2020-04-16 09:54:09 -07:00
Jesper Axelsson
c3cc146e7c Update README.md 2020-04-15 08:26:50 -07:00
Jesper Axelsson
c6e9b2739b Formatting 2020-04-13 14:36:42 -07:00
Jesper Axelsson
719b04b61e Add drop and create database 2020-04-13 14:36:42 -07:00
Jesper Axelsson
3ec97c51b1 Setup database commands 2020-04-13 14:36:42 -07:00
Jesper Axelsson
35bcfd60c3 Create database based on connection string 2020-04-13 14:36:42 -07:00
Jesper Axelsson
9a765e4e86 Use anihow 2020-04-13 14:36:42 -07:00
Austin Bonander
f00b7b48e1 add regression test for Map::fetch() being Unpin 2020-04-13 14:17:37 -07:00
Josh Holmer
8deb5549b3 Fix missing derive in Readme example 2020-04-13 13:41:29 -07:00
Maksim Vykhota
5865635a80 fix 'fetch_all' typo 2020-04-11 04:21:38 -07:00
Austin Bonander
80eb2cc7d2 make the stream returned from Map::fetch() Unpin
closes #244
2020-04-11 03:04:21 -07:00
Ryan Leckey
90fd35745c Prepare v0.3.4 v0.3.4 2020-04-10 15:56:13 -07:00
xiaopengli89
c40288a8b4 Mysql/DECIMAL: add to CI 2020-04-10 15:35:58 -07:00
xiaopengli89
5711e1cc94 refactor: mysql decimal value is just ascii str 2020-04-10 15:35:58 -07:00
xiaopengli89
d50405743b add integration tests mysql-types.rs/decimal 2020-04-10 15:35:58 -07:00
xiaopengli89
229635771a fix: test 2020-04-10 15:35:58 -07:00
xiaopengli89
771d423c6f fix: change u8::MAX to std::u8::MAX 2020-04-10 15:35:58 -07:00
xiaopengli89
401ffd19e6 add test_encode_decimal, test_decode_decimal 2020-04-10 15:35:58 -07:00
xiaopengli89
b354ed430d implement DECIMAL type support for mysql 2020-04-10 15:35:58 -07:00
Ryan Leckey
52408f3cbf test(postgres): make test_enum_type more resilient 2020-04-10 14:22:18 -07:00
Ryan Leckey
d360f682f8 fix(postgres): guarantee the type name on a PgTypeInfo to always be set
fixes #241
2020-04-10 13:37:08 -07:00
Ryan Leckey
cd6735b5d7 fix(sqlite): handle empty statements, fixes #231 2020-04-08 02:13:37 -07:00
Ryan Leckey
b3fd720aad test(sqlite): add failing test to illustrate #231 2020-04-08 01:28:30 -07:00
Ryan Leckey
72bd933e41 add MapRow impls; closes #228 2020-04-08 01:24:57 -07:00
Kristy Brambila
0e61642165 Make postgres type name resolution case-insensitive 2020-04-08 01:22:37 -07:00
Ryan Leckey
466b6d6bed cargo-sqlx: update SQLx to v0.3 2020-04-07 15:55:06 -07:00
sid
012c186069 support rename attribute in FromRow macro 2020-04-07 14:49:34 -07:00
Ryan Leckey
543f89d0eb Merge branch 'JesperAxelsson-feature/cargo-sqlx-migrate' 2020-04-07 14:32:25 -07:00
Ryan Leckey
70387214a9 Merge branch 'feature/cargo-sqlx-migrate' of git://github.com/JesperAxelsson/sqlx into JesperAxelsson-feature/cargo-sqlx-migrate 2020-04-07 14:32:10 -07:00
Lewis Belcher
903de3e8d8 Update README.md
Simple terminology fix.
2020-04-07 04:11:11 -07:00
kosyak
6c9241a3a9 Fixed types of variables that interact with libsqlite3 2020-04-07 04:10:47 -07:00
Reid Swan
58aa15cb8a Use psql client in container to make action less brittle 2020-04-07 04:08:58 -07:00
Ryan Leckey
84fdbac6ca
Merge pull request #221 from reidswan/actions-build-examples
Adds new Github Action to build examples
2020-04-03 13:09:27 -07:00
Ryan Leckey
48a4d79dac
Merge pull request #223 from nkconnor/patch-2
Fix MySQL connection URL example
2020-04-03 13:07:51 -07:00
Nicholas Connor
e3cc3ae762
Fix MySQL connection URL example 2020-04-03 10:46:42 -04:00
Reid Swan
42ff560577 Adds new Github Action to build examples 2020-04-02 15:36:12 +02:00
Ryan Leckey
e7ace2adc7 Prepare v0.3.3 v0.3.3 2020-04-01 18:24:08 -07:00
Ryan Leckey
4dc634f8b5 postgres: add a test to prove Type derive works for structs and fix the issue with it
fixes #219
2020-04-01 16:40:04 -07:00
Ryan Leckey
2a9774d84f use cow::borrowed to remove a minor allocation in postgres/startup
refs #214
2020-03-31 21:41:29 -07:00
Ryan Leckey
3a997f06ab
Merge pull request #214 from jamwaffles/encoded-connection-string
Decode username on read
2020-03-31 21:38:33 -07:00
Ryan Leckey
7c3db2285a
cargo: tweak keywords to maximize visibility on crates.io 2020-03-31 20:58:28 -07:00
Ryan Leckey
6dea8fba5c
Merge pull request #215 from Ace4896/todos-cli-other-dbs
Port TODOs CLI Example to MySQL and SQLite
2020-03-31 15:45:34 -07:00
James Waples
f05f6bedd9 Decode username on read 2020-03-31 23:03:17 +01:00