From f949f7606d89fb4037948613bc1dc596cd18c05a Mon Sep 17 00:00:00 2001 From: Philippe Loctaux Date: Sun, 5 Mar 2023 23:36:48 +0100 Subject: [PATCH] ezidam: conversion of error types --- Cargo.lock | 85 +++++++++++++++++++++++++++ crates/ezidam/src/error/conversion.rs | 28 ++++++++- 2 files changed, 111 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d8bb814..00924a1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -66,6 +66,17 @@ dependencies = [ "libc", ] +[[package]] +name = "argon2" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db4ce4441f99dbd377ca8a8f57b698c44d0d6e712d8329b5040da5a64aa1ce73" +dependencies = [ + "base64ct", + "blake2", + "password-hash", +] + [[package]] name = "async-stream" version = "0.3.4" @@ -146,6 +157,12 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ea22880d78093b0cbe17c89f64a7d457941e65759157ec6cb31a31d652b05e5" +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + [[package]] name = "binascii" version = "0.1.4" @@ -158,6 +175,15 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "blake2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" +dependencies = [ + "digest", +] + [[package]] name = "block-buffer" version = "0.10.3" @@ -532,11 +558,14 @@ version = "0.1.0" dependencies = [ "database_pool", "erased-serde", + "hash", + "id", "infer", "rocket", "rocket_db_pools", "rocket_dyn_templates", "settings", + "users", ] [[package]] @@ -816,6 +845,15 @@ dependencies = [ "tracing", ] +[[package]] +name = "hash" +version = "0.0.0" +dependencies = [ + "argon2", + "rand_core", + "thiserror", +] + [[package]] name = "hashbrown" version = "0.11.2" @@ -979,6 +1017,15 @@ dependencies = [ "cxx-build", ] +[[package]] +name = "id" +version = "0.0.0" +dependencies = [ + "nanoid", + "nanoid-dictionary", + "thiserror", +] + [[package]] name = "idna" version = "0.3.0" @@ -1300,6 +1347,21 @@ dependencies = [ "version_check", ] +[[package]] +name = "nanoid" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ffa00dec017b5b1a8b7cf5e2c008bfda1aa7e0697ac1508b491fdf2622fb4d8" +dependencies = [ + "rand", +] + +[[package]] +name = "nanoid-dictionary" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c6e9131c818f6826271c255f7323d1fcc9332c54b7cfb6c664ec506595d5d8e" + [[package]] name = "net2" version = "0.2.38" @@ -1462,6 +1524,17 @@ dependencies = [ "regex", ] +[[package]] +name = "password-hash" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" +dependencies = [ + "base64ct", + "rand_core", + "subtle", +] + [[package]] name = "paste" version = "1.0.11" @@ -1996,6 +2069,7 @@ version = "0.0.0" dependencies = [ "chrono", "database", + "id", "thiserror", ] @@ -2658,6 +2732,17 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "users" +version = "0.0.0" +dependencies = [ + "chrono", + "database", + "hash", + "id", + "thiserror", +] + [[package]] name = "valuable" version = "0.1.0" diff --git a/crates/ezidam/src/error/conversion.rs b/crates/ezidam/src/error/conversion.rs index 97a6a13..feccae0 100644 --- a/crates/ezidam/src/error/conversion.rs +++ b/crates/ezidam/src/error/conversion.rs @@ -1,7 +1,31 @@ use super::Error; -impl From for Error { - fn from(e: settings::Error) -> Error { +impl From for Error { + fn from(e: rocket::tokio::task::JoinError) -> Self { + Error::internal_server_error(e) + } +} + +impl From for Error { + fn from(e: rocket_db_pools::sqlx::Error) -> Self { + Error::internal_server_error(e) + } +} + +impl From for Error { + fn from(e: hash::Error) -> Self { + Error::internal_server_error(e) + } +} + +impl From for Error { + fn from(e: settings::Error) -> Self { + Error::internal_server_error(e) + } +} + +impl From for Error { + fn from(e: users::Error) -> Self { Error::internal_server_error(e) } }