update-sqlx #81
							
								
								
									
										565
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										565
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							| @@ -52,17 +52,6 @@ dependencies = [ | ||||
|  "subtle", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "ahash" | ||||
| version = "0.7.7" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" | ||||
| dependencies = [ | ||||
|  "getrandom", | ||||
|  "once_cell", | ||||
|  "version_check", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "ahash" | ||||
| version = "0.8.6" | ||||
| @@ -70,6 +59,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" | ||||
| dependencies = [ | ||||
|  "cfg-if", | ||||
|  "getrandom", | ||||
|  "once_cell", | ||||
|  "version_check", | ||||
|  "zerocopy", | ||||
| @@ -152,9 +142,9 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "atoi" | ||||
| version = "1.0.0" | ||||
| version = "2.0.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "d7c57d12312ff59c811c0643f4d80830505833c9ffaebd193d819392b265be8e" | ||||
| checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528" | ||||
| dependencies = [ | ||||
|  "num-traits", | ||||
| ] | ||||
| @@ -224,6 +214,9 @@ name = "bitflags" | ||||
| version = "2.4.1" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" | ||||
| dependencies = [ | ||||
|  "serde", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "blake2" | ||||
| @@ -340,6 +333,12 @@ dependencies = [ | ||||
|  "inout", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "const-oid" | ||||
| version = "0.9.5" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" | ||||
|  | ||||
| [[package]] | ||||
| name = "cookie" | ||||
| version = "0.18.0" | ||||
| @@ -436,6 +435,17 @@ dependencies = [ | ||||
|  "cipher", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "der" | ||||
| version = "0.7.8" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" | ||||
| dependencies = [ | ||||
|  "const-oid", | ||||
|  "pem-rfc7468", | ||||
|  "zeroize", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "deranged" | ||||
| version = "0.3.9" | ||||
| @@ -491,6 +501,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" | ||||
| dependencies = [ | ||||
|  "block-buffer", | ||||
|  "const-oid", | ||||
|  "crypto-common", | ||||
|  "subtle", | ||||
| ] | ||||
| @@ -506,6 +517,9 @@ name = "either" | ||||
| version = "1.9.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" | ||||
| dependencies = [ | ||||
|  "serde", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "encoding_rs" | ||||
| @@ -545,6 +559,17 @@ dependencies = [ | ||||
|  "windows-sys", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "etcetera" | ||||
| version = "0.8.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" | ||||
| dependencies = [ | ||||
|  "cfg-if", | ||||
|  "home", | ||||
|  "windows-sys", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "event-listener" | ||||
| version = "2.5.3" | ||||
| @@ -591,13 +616,12 @@ checksum = "8fcfdc7a0362c9f4444381a9e697c79d435fe65b52a37466fc2c1184cee9edc6" | ||||
|  | ||||
| [[package]] | ||||
| name = "flume" | ||||
| version = "0.10.14" | ||||
| version = "0.11.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577" | ||||
| checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" | ||||
| dependencies = [ | ||||
|  "futures-core", | ||||
|  "futures-sink", | ||||
|  "pin-project", | ||||
|  "spin 0.9.8", | ||||
| ] | ||||
|  | ||||
| @@ -669,13 +693,13 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "futures-intrusive" | ||||
| version = "0.4.2" | ||||
| version = "0.5.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "a604f7a68fbf8103337523b1fadc8ade7361ee3f112f7c680ad179651616aed5" | ||||
| checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" | ||||
| dependencies = [ | ||||
|  "futures-core", | ||||
|  "lock_api", | ||||
|  "parking_lot 0.11.2", | ||||
|  "parking_lot", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| @@ -817,26 +841,20 @@ dependencies = [ | ||||
|  "futures-sink", | ||||
|  "futures-util", | ||||
|  "http", | ||||
|  "indexmap 2.1.0", | ||||
|  "indexmap", | ||||
|  "slab", | ||||
|  "tokio", | ||||
|  "tokio-util", | ||||
|  "tracing", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "hashbrown" | ||||
| version = "0.12.3" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" | ||||
|  | ||||
| [[package]] | ||||
| name = "hashbrown" | ||||
| version = "0.14.2" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" | ||||
| dependencies = [ | ||||
|  "ahash 0.8.6", | ||||
|  "ahash", | ||||
|  "allocator-api2", | ||||
| ] | ||||
|  | ||||
| @@ -846,7 +864,7 @@ version = "0.8.4" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" | ||||
| dependencies = [ | ||||
|  "hashbrown 0.14.2", | ||||
|  "hashbrown", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| @@ -888,6 +906,15 @@ dependencies = [ | ||||
|  "digest", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "home" | ||||
| version = "0.5.5" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" | ||||
| dependencies = [ | ||||
|  "windows-sys", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "http" | ||||
| version = "0.2.11" | ||||
| @@ -1017,16 +1044,6 @@ dependencies = [ | ||||
|  "winapi-util", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "indexmap" | ||||
| version = "1.9.3" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" | ||||
| dependencies = [ | ||||
|  "autocfg", | ||||
|  "hashbrown 0.12.3", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "indexmap" | ||||
| version = "2.1.0" | ||||
| @@ -1034,7 +1051,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" | ||||
| dependencies = [ | ||||
|  "equivalent", | ||||
|  "hashbrown 0.14.2", | ||||
|  "hashbrown", | ||||
|  "serde", | ||||
| ] | ||||
|  | ||||
| @@ -1073,15 +1090,6 @@ dependencies = [ | ||||
|  "generic-array", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "instant" | ||||
| version = "0.1.12" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" | ||||
| dependencies = [ | ||||
|  "cfg-if", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "is-terminal" | ||||
| version = "0.4.9" | ||||
| @@ -1142,6 +1150,9 @@ name = "lazy_static" | ||||
| version = "1.4.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" | ||||
| dependencies = [ | ||||
|  "spin 0.5.2", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "libc" | ||||
| @@ -1157,9 +1168,9 @@ checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" | ||||
|  | ||||
| [[package]] | ||||
| name = "libsqlite3-sys" | ||||
| version = "0.24.2" | ||||
| version = "0.26.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "898745e570c7d0453cc1fbc4a701eb6c662ed54e8fec8b7d14be137ebeeb9d14" | ||||
| checksum = "afc22eff61b133b115c6e8c74e818c628d6d5e7a502afea6f64dee076dd94326" | ||||
| dependencies = [ | ||||
|  "cc", | ||||
|  "pkg-config", | ||||
| @@ -1212,6 +1223,16 @@ dependencies = [ | ||||
|  "regex-automata 0.1.10", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "md-5" | ||||
| version = "0.10.6" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" | ||||
| dependencies = [ | ||||
|  "cfg-if", | ||||
|  "digest", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "memchr" | ||||
| version = "2.6.4" | ||||
| @@ -1319,6 +1340,44 @@ dependencies = [ | ||||
|  "winapi", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "num-bigint-dig" | ||||
| version = "0.8.4" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" | ||||
| dependencies = [ | ||||
|  "byteorder", | ||||
|  "lazy_static", | ||||
|  "libm", | ||||
|  "num-integer", | ||||
|  "num-iter", | ||||
|  "num-traits", | ||||
|  "rand", | ||||
|  "smallvec", | ||||
|  "zeroize", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "num-integer" | ||||
| version = "0.1.45" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" | ||||
| dependencies = [ | ||||
|  "autocfg", | ||||
|  "num-traits", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "num-iter" | ||||
| version = "0.1.43" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" | ||||
| dependencies = [ | ||||
|  "autocfg", | ||||
|  "num-integer", | ||||
|  "num-traits", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "num-traits" | ||||
| version = "0.2.17" | ||||
| @@ -1326,6 +1385,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" | ||||
| dependencies = [ | ||||
|  "autocfg", | ||||
|  "libm", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| @@ -1365,17 +1425,6 @@ version = "0.1.1" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" | ||||
|  | ||||
| [[package]] | ||||
| name = "parking_lot" | ||||
| version = "0.11.2" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" | ||||
| dependencies = [ | ||||
|  "instant", | ||||
|  "lock_api", | ||||
|  "parking_lot_core 0.8.6", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "parking_lot" | ||||
| version = "0.12.1" | ||||
| @@ -1383,21 +1432,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" | ||||
| dependencies = [ | ||||
|  "lock_api", | ||||
|  "parking_lot_core 0.9.9", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "parking_lot_core" | ||||
| version = "0.8.6" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" | ||||
| dependencies = [ | ||||
|  "cfg-if", | ||||
|  "instant", | ||||
|  "libc", | ||||
|  "redox_syscall 0.2.16", | ||||
|  "smallvec", | ||||
|  "winapi", | ||||
|  "parking_lot_core", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| @@ -1462,6 +1497,15 @@ dependencies = [ | ||||
|  "syn 2.0.39", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "pem-rfc7468" | ||||
| version = "0.7.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" | ||||
| dependencies = [ | ||||
|  "base64ct", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "percent-encoding" | ||||
| version = "2.3.0" | ||||
| @@ -1551,26 +1595,6 @@ dependencies = [ | ||||
|  "siphasher", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "pin-project" | ||||
| version = "1.1.3" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" | ||||
| dependencies = [ | ||||
|  "pin-project-internal", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "pin-project-internal" | ||||
| version = "1.1.3" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" | ||||
| dependencies = [ | ||||
|  "proc-macro2", | ||||
|  "quote", | ||||
|  "syn 2.0.39", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "pin-project-lite" | ||||
| version = "0.2.13" | ||||
| @@ -1583,6 +1607,27 @@ version = "0.1.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" | ||||
|  | ||||
| [[package]] | ||||
| name = "pkcs1" | ||||
| version = "0.7.5" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" | ||||
| dependencies = [ | ||||
|  "der", | ||||
|  "pkcs8", | ||||
|  "spki", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "pkcs8" | ||||
| version = "0.10.2" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" | ||||
| dependencies = [ | ||||
|  "der", | ||||
|  "spki", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "pkg-config" | ||||
| version = "0.3.27" | ||||
| @@ -1680,15 +1725,6 @@ dependencies = [ | ||||
|  "getrandom", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "redox_syscall" | ||||
| version = "0.2.16" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" | ||||
| dependencies = [ | ||||
|  "bitflags 1.3.2", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "redox_syscall" | ||||
| version = "0.3.5" | ||||
| @@ -1771,21 +1807,6 @@ version = "0.8.2" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" | ||||
|  | ||||
| [[package]] | ||||
| name = "ring" | ||||
| version = "0.16.20" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" | ||||
| dependencies = [ | ||||
|  "cc", | ||||
|  "libc", | ||||
|  "once_cell", | ||||
|  "spin 0.5.2", | ||||
|  "untrusted 0.7.1", | ||||
|  "web-sys", | ||||
|  "winapi", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "ring" | ||||
| version = "0.17.5" | ||||
| @@ -1796,7 +1817,7 @@ dependencies = [ | ||||
|  "getrandom", | ||||
|  "libc", | ||||
|  "spin 0.9.8", | ||||
|  "untrusted 0.9.0", | ||||
|  "untrusted", | ||||
|  "windows-sys", | ||||
| ] | ||||
|  | ||||
| @@ -1814,12 +1835,12 @@ dependencies = [ | ||||
|  "either", | ||||
|  "figment", | ||||
|  "futures", | ||||
|  "indexmap 2.1.0", | ||||
|  "indexmap", | ||||
|  "log", | ||||
|  "memchr", | ||||
|  "multer", | ||||
|  "num_cpus", | ||||
|  "parking_lot 0.12.1", | ||||
|  "parking_lot", | ||||
|  "pin-project-lite", | ||||
|  "rand", | ||||
|  "ref-cast", | ||||
| @@ -1845,7 +1866,7 @@ checksum = "a2238066abf75f21be6cd7dc1a09d5414a671f4246e384e49fe3f8a4936bd04c" | ||||
| dependencies = [ | ||||
|  "devise", | ||||
|  "glob", | ||||
|  "indexmap 2.1.0", | ||||
|  "indexmap", | ||||
|  "proc-macro2", | ||||
|  "quote", | ||||
|  "rocket_http", | ||||
| @@ -1878,7 +1899,7 @@ dependencies = [ | ||||
|  "futures", | ||||
|  "http", | ||||
|  "hyper", | ||||
|  "indexmap 2.1.0", | ||||
|  "indexmap", | ||||
|  "log", | ||||
|  "memchr", | ||||
|  "pear", | ||||
| @@ -1913,6 +1934,26 @@ dependencies = [ | ||||
|  "tera", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "rsa" | ||||
| version = "0.9.4" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "6a3211b01eea83d80687da9eef70e39d65144a3894866a5153a2723e425a157f" | ||||
| dependencies = [ | ||||
|  "const-oid", | ||||
|  "digest", | ||||
|  "num-bigint-dig", | ||||
|  "num-integer", | ||||
|  "num-traits", | ||||
|  "pkcs1", | ||||
|  "pkcs8", | ||||
|  "rand_core", | ||||
|  "signature", | ||||
|  "spki", | ||||
|  "subtle", | ||||
|  "zeroize", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "rustc-demangle" | ||||
| version = "0.1.23" | ||||
| @@ -1934,14 +1975,13 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "rustls" | ||||
| version = "0.20.9" | ||||
| version = "0.21.9" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" | ||||
| checksum = "629648aced5775d558af50b2b4c7b02983a04b312126d45eeead26e7caa498b9" | ||||
| dependencies = [ | ||||
|  "log", | ||||
|  "ring 0.16.20", | ||||
|  "ring", | ||||
|  "rustls-webpki", | ||||
|  "sct", | ||||
|  "webpki", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| @@ -1953,6 +1993,16 @@ dependencies = [ | ||||
|  "base64", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "rustls-webpki" | ||||
| version = "0.101.7" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" | ||||
| dependencies = [ | ||||
|  "ring", | ||||
|  "untrusted", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "rustversion" | ||||
| version = "1.0.14" | ||||
| @@ -1992,8 +2042,8 @@ version = "0.7.1" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" | ||||
| dependencies = [ | ||||
|  "ring 0.17.5", | ||||
|  "untrusted 0.9.0", | ||||
|  "ring", | ||||
|  "untrusted", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| @@ -2036,6 +2086,17 @@ dependencies = [ | ||||
|  "serde", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "sha1" | ||||
| version = "0.10.6" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" | ||||
| dependencies = [ | ||||
|  "cfg-if", | ||||
|  "cpufeatures", | ||||
|  "digest", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "sha2" | ||||
| version = "0.10.8" | ||||
| @@ -2065,6 +2126,16 @@ dependencies = [ | ||||
|  "libc", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "signature" | ||||
| version = "2.2.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" | ||||
| dependencies = [ | ||||
|  "digest", | ||||
|  "rand_core", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "siphasher" | ||||
| version = "0.3.11" | ||||
| @@ -2131,6 +2202,16 @@ dependencies = [ | ||||
|  "lock_api", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "spki" | ||||
| version = "0.7.2" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a" | ||||
| dependencies = [ | ||||
|  "base64ct", | ||||
|  "der", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "sqlformat" | ||||
| version = "0.2.2" | ||||
| @@ -2144,23 +2225,25 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "sqlx" | ||||
| version = "0.6.3" | ||||
| version = "0.7.2" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "f8de3b03a925878ed54a954f621e64bf55a3c1bd29652d0d1a17830405350188" | ||||
| checksum = "0e50c216e3624ec8e7ecd14c6a6a6370aad6ee5d8cfc3ab30b5162eeeef2ed33" | ||||
| dependencies = [ | ||||
|  "sqlx-core", | ||||
|  "sqlx-macros", | ||||
|  "sqlx-mysql", | ||||
|  "sqlx-postgres", | ||||
|  "sqlx-sqlite", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "sqlx-core" | ||||
| version = "0.6.3" | ||||
| version = "0.7.2" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "fa8241483a83a3f33aa5fff7e7d9def398ff9990b2752b6c6112b83c6d246029" | ||||
| checksum = "8d6753e460c998bbd4cd8c6f0ed9a64346fcca0723d6e75e52fdc351c5d2169d" | ||||
| dependencies = [ | ||||
|  "ahash 0.7.7", | ||||
|  "ahash", | ||||
|  "atoi", | ||||
|  "bitflags 1.3.2", | ||||
|  "byteorder", | ||||
|  "bytes", | ||||
|  "chrono", | ||||
| @@ -2169,18 +2252,14 @@ dependencies = [ | ||||
|  "dotenvy", | ||||
|  "either", | ||||
|  "event-listener", | ||||
|  "flume", | ||||
|  "futures-channel", | ||||
|  "futures-core", | ||||
|  "futures-executor", | ||||
|  "futures-intrusive", | ||||
|  "futures-io", | ||||
|  "futures-util", | ||||
|  "hashlink", | ||||
|  "hex", | ||||
|  "indexmap 1.9.3", | ||||
|  "itoa", | ||||
|  "libc", | ||||
|  "libsqlite3-sys", | ||||
|  "indexmap", | ||||
|  "log", | ||||
|  "memchr", | ||||
|  "once_cell", | ||||
| @@ -2188,46 +2267,166 @@ dependencies = [ | ||||
|  "percent-encoding", | ||||
|  "rustls", | ||||
|  "rustls-pemfile", | ||||
|  "serde", | ||||
|  "serde_json", | ||||
|  "sha2", | ||||
|  "smallvec", | ||||
|  "sqlformat", | ||||
|  "sqlx-rt", | ||||
|  "stringprep", | ||||
|  "thiserror", | ||||
|  "time", | ||||
|  "tokio", | ||||
|  "tokio-stream", | ||||
|  "tracing", | ||||
|  "url", | ||||
|  "webpki-roots", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "sqlx-macros" | ||||
| version = "0.6.3" | ||||
| version = "0.7.2" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "9966e64ae989e7e575b19d7265cb79d7fc3cbbdf179835cb0d716f294c2049c9" | ||||
| checksum = "9a793bb3ba331ec8359c1853bd39eed32cdd7baaf22c35ccf5c92a7e8d1189ec" | ||||
| dependencies = [ | ||||
|  "proc-macro2", | ||||
|  "quote", | ||||
|  "sqlx-core", | ||||
|  "sqlx-macros-core", | ||||
|  "syn 1.0.109", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "sqlx-macros-core" | ||||
| version = "0.7.2" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "0a4ee1e104e00dedb6aa5ffdd1343107b0a4702e862a84320ee7cc74782d96fc" | ||||
| dependencies = [ | ||||
|  "dotenvy", | ||||
|  "either", | ||||
|  "heck", | ||||
|  "hex", | ||||
|  "once_cell", | ||||
|  "proc-macro2", | ||||
|  "quote", | ||||
|  "serde", | ||||
|  "serde_json", | ||||
|  "sha2", | ||||
|  "sqlx-core", | ||||
|  "sqlx-rt", | ||||
|  "sqlx-mysql", | ||||
|  "sqlx-postgres", | ||||
|  "sqlx-sqlite", | ||||
|  "syn 1.0.109", | ||||
|  "tempfile", | ||||
|  "tokio", | ||||
|  "url", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "sqlx-rt" | ||||
| version = "0.6.3" | ||||
| name = "sqlx-mysql" | ||||
| version = "0.7.2" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "804d3f245f894e61b1e6263c84b23ca675d96753b5abfd5cc8597d86806e8024" | ||||
| checksum = "864b869fdf56263f4c95c45483191ea0af340f9f3e3e7b4d57a61c7c87a970db" | ||||
| dependencies = [ | ||||
|  "atoi", | ||||
|  "base64", | ||||
|  "bitflags 2.4.1", | ||||
|  "byteorder", | ||||
|  "bytes", | ||||
|  "chrono", | ||||
|  "crc", | ||||
|  "digest", | ||||
|  "dotenvy", | ||||
|  "either", | ||||
|  "futures-channel", | ||||
|  "futures-core", | ||||
|  "futures-io", | ||||
|  "futures-util", | ||||
|  "generic-array", | ||||
|  "hex", | ||||
|  "hkdf", | ||||
|  "hmac", | ||||
|  "itoa", | ||||
|  "log", | ||||
|  "md-5", | ||||
|  "memchr", | ||||
|  "once_cell", | ||||
|  "tokio", | ||||
|  "tokio-rustls", | ||||
|  "percent-encoding", | ||||
|  "rand", | ||||
|  "rsa", | ||||
|  "serde", | ||||
|  "sha1", | ||||
|  "sha2", | ||||
|  "smallvec", | ||||
|  "sqlx-core", | ||||
|  "stringprep", | ||||
|  "thiserror", | ||||
|  "time", | ||||
|  "tracing", | ||||
|  "whoami", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "sqlx-postgres" | ||||
| version = "0.7.2" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "eb7ae0e6a97fb3ba33b23ac2671a5ce6e3cabe003f451abd5a56e7951d975624" | ||||
| dependencies = [ | ||||
|  "atoi", | ||||
|  "base64", | ||||
|  "bitflags 2.4.1", | ||||
|  "byteorder", | ||||
|  "chrono", | ||||
|  "crc", | ||||
|  "dotenvy", | ||||
|  "etcetera", | ||||
|  "futures-channel", | ||||
|  "futures-core", | ||||
|  "futures-io", | ||||
|  "futures-util", | ||||
|  "hex", | ||||
|  "hkdf", | ||||
|  "hmac", | ||||
|  "home", | ||||
|  "itoa", | ||||
|  "log", | ||||
|  "md-5", | ||||
|  "memchr", | ||||
|  "once_cell", | ||||
|  "rand", | ||||
|  "serde", | ||||
|  "serde_json", | ||||
|  "sha1", | ||||
|  "sha2", | ||||
|  "smallvec", | ||||
|  "sqlx-core", | ||||
|  "stringprep", | ||||
|  "thiserror", | ||||
|  "time", | ||||
|  "tracing", | ||||
|  "whoami", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "sqlx-sqlite" | ||||
| version = "0.7.2" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "d59dc83cf45d89c555a577694534fcd1b55c545a816c816ce51f20bbe56a4f3f" | ||||
| dependencies = [ | ||||
|  "atoi", | ||||
|  "chrono", | ||||
|  "flume", | ||||
|  "futures-channel", | ||||
|  "futures-core", | ||||
|  "futures-executor", | ||||
|  "futures-intrusive", | ||||
|  "futures-util", | ||||
|  "libsqlite3-sys", | ||||
|  "log", | ||||
|  "percent-encoding", | ||||
|  "serde", | ||||
|  "sqlx-core", | ||||
|  "time", | ||||
|  "tracing", | ||||
|  "url", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| @@ -2434,17 +2633,6 @@ dependencies = [ | ||||
|  "syn 2.0.39", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "tokio-rustls" | ||||
| version = "0.23.4" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" | ||||
| dependencies = [ | ||||
|  "rustls", | ||||
|  "tokio", | ||||
|  "webpki", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "tokio-stream" | ||||
| version = "0.1.14" | ||||
| @@ -2497,7 +2685,7 @@ version = "0.21.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" | ||||
| dependencies = [ | ||||
|  "indexmap 2.1.0", | ||||
|  "indexmap", | ||||
|  "serde", | ||||
|  "serde_spanned", | ||||
|  "toml_datetime", | ||||
| @@ -2516,6 +2704,7 @@ version = "0.1.40" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" | ||||
| dependencies = [ | ||||
|  "log", | ||||
|  "pin-project-lite", | ||||
|  "tracing-attributes", | ||||
|  "tracing-core", | ||||
| @@ -2707,12 +2896,6 @@ dependencies = [ | ||||
|  "subtle", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "untrusted" | ||||
| version = "0.7.1" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" | ||||
|  | ||||
| [[package]] | ||||
| name = "untrusted" | ||||
| version = "0.9.0" | ||||
| @@ -2827,35 +3010,21 @@ version = "0.2.88" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b" | ||||
|  | ||||
| [[package]] | ||||
| name = "web-sys" | ||||
| version = "0.3.65" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85" | ||||
| dependencies = [ | ||||
|  "js-sys", | ||||
|  "wasm-bindgen", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "webpki" | ||||
| version = "0.22.4" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" | ||||
| dependencies = [ | ||||
|  "ring 0.17.5", | ||||
|  "untrusted 0.9.0", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "webpki-roots" | ||||
| version = "0.22.6" | ||||
| version = "0.24.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" | ||||
| checksum = "b291546d5d9d1eab74f069c77749f2cb8504a12caa20f0f2de93ddbf6f411888" | ||||
| dependencies = [ | ||||
|  "webpki", | ||||
|  "rustls-webpki", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "whoami" | ||||
| version = "1.4.1" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "22fc3756b8a9133049b26c7f61ab35416c130e8c09b660f5b3958b446f52cc50" | ||||
|  | ||||
| [[package]] | ||||
| name = "winapi" | ||||
| version = "0.3.9" | ||||
| @@ -3008,3 +3177,9 @@ dependencies = [ | ||||
|  "quote", | ||||
|  "syn 2.0.39", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "zeroize" | ||||
| version = "1.7.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" | ||||
|   | ||||
| @@ -13,7 +13,7 @@ rocket = { version = "0.5.0-rc.4", features = ["secrets"]} | ||||
| rocket_dyn_templates = {version = "0.1.0-rc.4", features = [ "tera" ], optional = true } | ||||
| log = "0.4" | ||||
| env_logger = "0.10" | ||||
| sqlx = { version = "0.6", features = ["sqlite", "runtime-tokio-rustls", "macros", "chrono", "time"] } | ||||
| sqlx = { version = "0.7", features = ["sqlite", "runtime-tokio-rustls", "macros", "chrono", "time"] } | ||||
| argon2 = "0.5" | ||||
| serde = { version = "1.0", features = [ "derive" ]} | ||||
| serde_json = "1.0" | ||||
|   | ||||
| @@ -16,8 +16,9 @@ async fn rocket() -> _ { | ||||
|  | ||||
|     env_logger::init(); | ||||
|  | ||||
|     let mut connection_options = SqliteConnectOptions::from_str("sqlite://db.sqlite").unwrap(); | ||||
|     connection_options.log_statements(log::LevelFilter::Debug); | ||||
|     let connection_options = SqliteConnectOptions::from_str("sqlite://db.sqlite") | ||||
|         .unwrap() | ||||
|         .log_statements(log::LevelFilter::Debug); | ||||
|     let db: SqlitePool = PoolOptions::new() | ||||
|         .connect_with(connection_options) | ||||
|         .await | ||||
|   | ||||
| @@ -1,3 +1,5 @@ | ||||
| use std::ops::DerefMut; | ||||
|  | ||||
| use rocket::serde::{Deserialize, Serialize}; | ||||
| use rocket::FromForm; | ||||
| use sqlx::{FromRow, Sqlite, SqlitePool, Transaction}; | ||||
| @@ -75,7 +77,7 @@ impl Boat { | ||||
|     } | ||||
|     pub async fn find_by_id_tx(db: &mut Transaction<'_, Sqlite>, id: i32) -> Option<Self> { | ||||
|         sqlx::query_as!(Self, "SELECT * FROM boat WHERE id like ?", id) | ||||
|             .fetch_one(db) | ||||
|             .fetch_one(db.deref_mut()) | ||||
|             .await | ||||
|             .ok() | ||||
|     } | ||||
|   | ||||
| @@ -1,3 +1,5 @@ | ||||
| use std::ops::DerefMut; | ||||
|  | ||||
| use chrono::{DateTime, Local, NaiveDateTime, TimeZone, Utc}; | ||||
| use serde::{Deserialize, Serialize}; | ||||
| use sqlx::{FromRow, Sqlite, SqlitePool, Transaction}; | ||||
| @@ -17,7 +19,7 @@ impl Log { | ||||
|     } | ||||
|     pub async fn create_with_tx(db: &mut Transaction<'_, Sqlite>, msg: String) -> bool { | ||||
|         sqlx::query!("INSERT INTO log(msg) VALUES (?)", msg,) | ||||
|             .execute(db) | ||||
|             .execute(db.deref_mut()) | ||||
|             .await | ||||
|             .is_ok() | ||||
|     } | ||||
|   | ||||
| @@ -1,3 +1,5 @@ | ||||
| use std::ops::DerefMut; | ||||
|  | ||||
| use chrono::{Datelike, NaiveDateTime, Utc}; | ||||
| use rocket::FromForm; | ||||
| use serde::Serialize; | ||||
| @@ -160,7 +162,7 @@ impl Logbook { | ||||
|             ", | ||||
|             id | ||||
|         ) | ||||
|         .fetch_one(db) | ||||
|         .fetch_one(db.deref_mut()) | ||||
|         .await | ||||
|         .ok() | ||||
|     } | ||||
| @@ -289,7 +291,7 @@ ORDER BY departure DESC | ||||
|                 log.comments, | ||||
|                 log.logtype | ||||
|             ) | ||||
|             .fetch_one(&mut tx) | ||||
|             .fetch_one(tx.deref_mut()) | ||||
|             .await.unwrap().id; | ||||
|  | ||||
|             let logbook = Logbook::find_by_id_tx(&mut tx, inserted_row as i32) | ||||
| @@ -363,7 +365,7 @@ ORDER BY departure DESC | ||||
|                 log.comments, | ||||
|                 log.logtype | ||||
|             ) | ||||
|             .fetch_one(&mut tx) | ||||
|             .fetch_one(tx.deref_mut()) | ||||
|             .await.unwrap(); | ||||
|  | ||||
|         for rower in &log.rowers { | ||||
| @@ -398,7 +400,7 @@ ORDER BY departure DESC | ||||
|  | ||||
|     async fn remove_rowers(&self, db: &mut Transaction<'_, Sqlite>) { | ||||
|         sqlx::query!("DELETE FROM rower WHERE logbook_id=?", self.id) | ||||
|             .execute(db) | ||||
|             .execute(db.deref_mut()) | ||||
|             .await | ||||
|             .unwrap(); | ||||
|     } | ||||
| @@ -495,7 +497,7 @@ ORDER BY departure DESC | ||||
|             log.arrival, | ||||
|             self.id | ||||
|         ) | ||||
|         .execute(db) | ||||
|         .execute(db.deref_mut()) | ||||
|         .await.unwrap(); //TODO: fixme | ||||
|  | ||||
|         Ok(()) | ||||
|   | ||||
| @@ -45,6 +45,59 @@ pub struct Registration { | ||||
|     pub is_real_guest: bool, | ||||
| } | ||||
|  | ||||
| impl Registration { | ||||
|     pub async fn all_rower(db: &SqlitePool, trip_details_id: i64) -> Vec<Registration> { | ||||
|         sqlx::query!( | ||||
|             r#" | ||||
| SELECT | ||||
|     (SELECT name FROM user WHERE user_trip.user_id = user.id) as "name?",  | ||||
|     user_note, | ||||
|     user_id, | ||||
|     (SELECT created_at FROM user WHERE user_trip.user_id = user.id) as registered_at, | ||||
|     (SELECT is_guest FROM user WHERE user_trip.user_id = user.id) as is_guest | ||||
| FROM user_trip WHERE trip_details_id = ?  | ||||
|         "#, | ||||
|             trip_details_id, | ||||
|         ) | ||||
|         .fetch_all(db) | ||||
|         .await | ||||
|         .unwrap() | ||||
|         .into_iter() | ||||
|         .map(|r| Registration { | ||||
|             name: r.name.or(r.user_note).unwrap(), //Ok, either name or user_note needs to be set | ||||
|             registered_at: r.registered_at, | ||||
|             is_guest: r.is_guest, | ||||
|             is_real_guest: r.user_id == None, | ||||
|         }) | ||||
|         .collect() | ||||
|     } | ||||
|  | ||||
|     pub async fn all_cox(db: &SqlitePool, trip_details_id: i64) -> Vec<Registration> { | ||||
|         //TODO: switch to join | ||||
|         sqlx::query!( | ||||
|             " | ||||
| SELECT | ||||
|     (SELECT name FROM user WHERE cox_id = id) as name, | ||||
|     (SELECT created_at FROM user WHERE cox_id = id) as registered_at, | ||||
|     (SELECT is_guest FROM user WHERE cox_id = id) as is_guest | ||||
| FROM trip WHERE planned_event_id = ? | ||||
|         ", | ||||
|             trip_details_id | ||||
|         ) | ||||
|         .fetch_all(db) | ||||
|         .await | ||||
|         .unwrap() | ||||
|         .into_iter() | ||||
|         .map(|r| Registration { | ||||
|             name: r.name, | ||||
|             registered_at: r.registered_at, | ||||
|             is_guest: r.is_guest, | ||||
|             is_real_guest: false, | ||||
|         }) | ||||
|         .collect() //Okay, as PlannedEvent can only be created with proper DB backing | ||||
|     } | ||||
| } | ||||
|  | ||||
| impl PlannedEvent { | ||||
|     pub async fn find_by_id(db: &SqlitePool, id: i64) -> Option<Self> { | ||||
|         sqlx::query_as!( | ||||
| @@ -91,7 +144,7 @@ WHERE day=?", | ||||
|  | ||||
|         let mut ret = Vec::new(); | ||||
|         for event in events { | ||||
|             let cox = event.get_all_cox(db).await; | ||||
|             let cox = Registration::all_cox(db, event.trip_details_id).await; | ||||
|             let mut trip_type = None; | ||||
|             if let Some(trip_type_id) = event.trip_type_id { | ||||
|                 trip_type = TripType::find_by_id(db, trip_type_id).await; | ||||
| @@ -99,7 +152,7 @@ WHERE day=?", | ||||
|             ret.push(PlannedEventWithUserAndTriptype { | ||||
|                 cox_needed: event.planned_amount_cox > cox.len() as i64, | ||||
|                 cox, | ||||
|                 rower: event.get_all_rower(db).await, | ||||
|                 rower: Registration::all_rower(db, event.trip_details_id).await, | ||||
|                 planned_event: event, | ||||
|                 trip_type, | ||||
|             }); | ||||
| @@ -119,61 +172,6 @@ INNER JOIN trip_details ON planned_event.trip_details_id = trip_details.id", | ||||
|         .unwrap() //TODO: fixme | ||||
|     } | ||||
|  | ||||
|     async fn get_all_cox(&self, db: &SqlitePool) -> Vec<Registration> { | ||||
|         //TODO: switch to join | ||||
|         sqlx::query!( | ||||
|             " | ||||
| SELECT | ||||
|     (SELECT name FROM user WHERE cox_id = id) as name, | ||||
|     (SELECT created_at FROM user WHERE cox_id = id) as registered_at, | ||||
|     (SELECT is_guest FROM user WHERE cox_id = id) as is_guest, | ||||
|     0 as is_real_guest | ||||
| FROM trip WHERE planned_event_id = ? | ||||
|         ", | ||||
|             self.id | ||||
|         ) | ||||
|         .fetch_all(db) | ||||
|         .await | ||||
|         .unwrap() | ||||
|         .into_iter() | ||||
|         .map(|r| Registration { | ||||
|             name: r.name, | ||||
|             registered_at: r.registered_at, | ||||
|             is_guest: r.is_guest, | ||||
|             is_real_guest: r.is_real_guest == 1, | ||||
|         }) | ||||
|         .collect() //Okay, as PlannedEvent can only be created with proper DB backing | ||||
|     } | ||||
|  | ||||
|     async fn get_all_rower(&self, db: &SqlitePool) -> Vec<Registration> { | ||||
|         //TODO: switch to join | ||||
|         sqlx::query!( | ||||
|             " | ||||
| SELECT | ||||
|     CASE  | ||||
|         WHEN user_id IS NOT NULL THEN (SELECT name FROM user WHERE user_trip.user_id = user.id) | ||||
|         ELSE user_note | ||||
|     END as name, | ||||
|     user_id IS NULL as is_real_guest, | ||||
|     (SELECT created_at FROM user WHERE user_trip.user_id = user.id) as registered_at, | ||||
|     (SELECT is_guest FROM user WHERE user_trip.user_id = user.id) as is_guest | ||||
| FROM user_trip WHERE trip_details_id = (SELECT trip_details_id FROM planned_event WHERE id = ?) | ||||
|         ", | ||||
|             self.id | ||||
|         ) | ||||
|         .fetch_all(db) | ||||
|         .await | ||||
|         .unwrap() | ||||
|         .into_iter() | ||||
|         .map(|r| Registration { | ||||
|             name: r.name.unwrap(), | ||||
|             registered_at: r.registered_at, | ||||
|             is_guest: r.is_guest, | ||||
|             is_real_guest: r.is_real_guest == 1, | ||||
|         }) | ||||
|         .collect() | ||||
|     } | ||||
|  | ||||
|     //TODO: add tests | ||||
|     pub async fn is_rower_registered(&self, db: &SqlitePool, user: &User) -> bool { | ||||
|         let is_rower = sqlx::query!( | ||||
|   | ||||
| @@ -1,3 +1,5 @@ | ||||
| use std::ops::DerefMut; | ||||
|  | ||||
| use serde::{Deserialize, Serialize}; | ||||
| use sqlx::{FromRow, Sqlite, SqlitePool, Transaction}; | ||||
|  | ||||
| @@ -37,7 +39,7 @@ WHERE id in (SELECT rower_id FROM rower WHERE logbook_id=?) | ||||
|             logbook_id, | ||||
|             rower_id | ||||
|         ) | ||||
|         .execute(db) | ||||
|         .execute(db.deref_mut()) | ||||
|         .await | ||||
|         .map_err(|e| e.to_string())?; | ||||
|  | ||||
|   | ||||
| @@ -117,7 +117,7 @@ WHERE day=? | ||||
|                 trip_type = TripType::find_by_id(db, trip_type_id).await; | ||||
|             } | ||||
|             ret.push(TripWithUserAndType { | ||||
|                 rower: trip.get_all_rower(db).await, | ||||
|                 rower: Registration::all_rower(db, trip.trip_details_id.unwrap()).await, | ||||
|                 trip, | ||||
|                 trip_type, | ||||
|             }); | ||||
| @@ -125,33 +125,6 @@ WHERE day=? | ||||
|         ret | ||||
|     } | ||||
|  | ||||
|     async fn get_all_rower(&self, db: &SqlitePool) -> Vec<Registration> { | ||||
|         sqlx::query!( | ||||
|             " | ||||
| SELECT | ||||
|     CASE  | ||||
|         WHEN user_id IS NOT NULL THEN (SELECT name FROM user WHERE user_trip.user_id = user.id) | ||||
|         ELSE user_note | ||||
|     END as name, | ||||
|     user_id IS NULL as is_real_guest, | ||||
|     (SELECT created_at FROM user WHERE user_trip.user_id = user.id) as registered_at, | ||||
|     (SELECT is_guest FROM user WHERE user_trip.user_id = user.id) as is_guest | ||||
| FROM user_trip WHERE trip_details_id = (SELECT trip_details_id FROM trip WHERE id = ?)", | ||||
|             self.id | ||||
|         ) | ||||
|         .fetch_all(db) | ||||
|         .await | ||||
|         .unwrap() | ||||
|         .into_iter() | ||||
|         .map(|r| Registration { | ||||
|             name: r.name.unwrap(), | ||||
|             registered_at: r.registered_at, | ||||
|             is_guest: r.is_guest, | ||||
|             is_real_guest: r.is_real_guest == 1, | ||||
|         }) | ||||
|         .collect() | ||||
|     } | ||||
|  | ||||
|     /// Cox decides to update own trip. | ||||
|     pub async fn update_own( | ||||
|         db: &SqlitePool, | ||||
| @@ -232,7 +205,7 @@ FROM user_trip WHERE trip_details_id = (SELECT trip_details_id FROM trip WHERE i | ||||
|         db: &SqlitePool, | ||||
|         user: &CoxUser, | ||||
|     ) -> Result<(), TripDeleteError> { | ||||
|         let registered_rower = self.get_all_rower(db).await; | ||||
|         let registered_rower = Registration::all_rower(db, self.trip_details_id.unwrap()).await; | ||||
|         if !registered_rower.is_empty() { | ||||
|             return Err(TripDeleteError::SomebodyAlreadyRegistered); | ||||
|         } | ||||
|   | ||||
| @@ -141,7 +141,7 @@ ORDER BY day;", | ||||
|         .fetch_one(db) | ||||
|         .await | ||||
|         .unwrap(); | ||||
|         if is_cox.amount > 0 { | ||||
|         if is_cox.amount.unwrap() > 0 { | ||||
|             return CoxAtTrip::Yes(Action::Helping); | ||||
|         } | ||||
|  | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| use std::ops::Deref; | ||||
| use std::ops::{Deref, DerefMut}; | ||||
|  | ||||
| use argon2::{password_hash::SaltString, Argon2, PasswordHasher}; | ||||
| use chrono::{Datelike, Local, NaiveDate}; | ||||
| @@ -89,7 +89,6 @@ impl User { | ||||
|         .await | ||||
|         .unwrap() | ||||
|         .rowed_km | ||||
|         .unwrap() | ||||
|     } | ||||
|  | ||||
|     pub async fn find_by_id(db: &SqlitePool, id: i32) -> Option<Self> { | ||||
| @@ -117,7 +116,7 @@ WHERE id like ? | ||||
|         ", | ||||
|             id | ||||
|         ) | ||||
|         .fetch_one(db) | ||||
|         .fetch_one(db.deref_mut()) | ||||
|         .await | ||||
|         .ok() | ||||
|     } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user