Compare commits

..

8 Commits

Author SHA1 Message Date
Tomáš Mládek f21984e7de feat: add `user` to every Entry
ci/woodpecker/push/woodpecker Pipeline was successful Details
(very ugly, lots of clones)
2024-03-31 17:10:09 +02:00
Tomáš Mládek 41a59122c0 feat: add user management
- no more static keys, full register/login/logout flow
- add API error type
- refactor API to centralize request calls
- minor refactors re: vault options
- CSS refactor (buttons don't require classes, input styling)
2024-03-31 17:10:09 +02:00
Tomáš Mládek e86fa962b5 feat(backend): users with passwords 2024-03-31 17:10:09 +02:00
Tomáš Mládek 669b348160 refactor: fix lint
ci/woodpecker/push/woodpecker Pipeline was successful Details
2024-03-31 17:09:23 +02:00
Tomáš Mládek 175518e3a6 refactor: allow known clippy issues 2024-03-31 17:09:23 +02:00
Tomáš Mládek 94818b992a dev: add +dev-update-sdk target
(why doesn't dev-local update as expected?)
2024-03-31 17:09:23 +02:00
Tomáš Mládek f2261998ee refactor: properly import tracing macros 2024-03-31 17:09:23 +02:00
Tomáš Mládek 730cc02d7a fix(base): null attribute deserializes correctly
also add type address de/serialization tests
2024-03-31 17:09:23 +02:00
1 changed files with 31 additions and 6 deletions

View File

@ -103,12 +103,14 @@ impl Address {
UP_UUID => Ok(Address::Uuid(
Uuid::from_slice(digest.as_slice()).map_err(UpEndError::from_any)?,
)),
UP_ATTRIBUTE => Ok(Address::Attribute(
String::from_utf8(digest)
.map_err(UpEndError::from_any)?
.as_str()
.parse()?,
)),
UP_ATTRIBUTE => {
let attribute = String::from_utf8(digest).map_err(UpEndError::from_any)?;
if attribute.is_empty() {
Ok(Address::Attribute(Attribute::null()))
} else {
Ok(Address::Attribute(attribute.parse()?))
}
}
UP_URL => Ok(Address::Url(
Url::parse(&String::from_utf8(digest).map_err(UpEndError::from_any)?)
.map_err(UpEndError::from_any)?,
@ -255,6 +257,9 @@ mod tests {
use uuid::Uuid;
use crate::addressing::{Address, IDENTITY};
use crate::constants::{
TYPE_ATTRIBUTE_ADDRESS, TYPE_HASH_ADDRESS, TYPE_URL_ADDRESS, TYPE_UUID_ADDRESS,
};
use crate::hash::{LargeMultihash, UpMultihash};
use super::UpEndError;
@ -267,6 +272,11 @@ mod tests {
let encoded = addr.encode()?;
let decoded = Address::decode(&encoded)?;
assert_eq!(addr, decoded);
let addr = &*TYPE_HASH_ADDRESS;
let encoded = addr.encode()?;
let decoded = Address::decode(&encoded)?;
assert_eq!(addr, &decoded);
Ok(())
}
@ -276,6 +286,11 @@ mod tests {
let encoded = addr.encode()?;
let decoded = Address::decode(&encoded)?;
assert_eq!(addr, decoded);
let addr = &*TYPE_UUID_ADDRESS;
let encoded = addr.encode()?;
let decoded = Address::decode(&encoded)?;
assert_eq!(addr, &decoded);
Ok(())
}
@ -285,6 +300,11 @@ mod tests {
let encoded = addr.encode()?;
let decoded = Address::decode(&encoded)?;
assert_eq!(addr, decoded);
let addr = &*TYPE_ATTRIBUTE_ADDRESS;
let encoded = addr.encode()?;
let decoded = Address::decode(&encoded)?;
assert_eq!(addr, &decoded);
Ok(())
}
@ -294,6 +314,11 @@ mod tests {
let encoded = addr.encode()?;
let decoded = Address::decode(&encoded)?;
assert_eq!(addr, decoded);
let addr = &*TYPE_URL_ADDRESS;
let encoded = addr.encode()?;
let decoded = Address::decode(&encoded)?;
assert_eq!(addr, &decoded);
Ok(())
}
}