sentc_crypto_light/
error.rs

1use alloc::format;
2use alloc::string::String;
3
4use sentc_crypto_core::Error;
5use sentc_crypto_utils::error::{out_error, SdkUtilError};
6
7#[derive(Debug)]
8pub enum SdkLightError
9{
10	Util(SdkUtilError),
11	JsonToStringFailed,
12	JsonParseFailed(serde_json::Error),
13	KeyDecryptFailed,
14	GroupPermission,
15	GroupRank,
16}
17
18/**
19To convert the core error to sdk error
20 */
21impl From<Error> for SdkLightError
22{
23	fn from(e: Error) -> Self
24	{
25		SdkLightError::Util(SdkUtilError::Base(e))
26	}
27}
28
29impl From<SdkUtilError> for SdkLightError
30{
31	fn from(value: SdkUtilError) -> Self
32	{
33		Self::Util(value)
34	}
35}
36
37impl From<SdkLightError> for String
38{
39	fn from(e: SdkLightError) -> Self
40	{
41		err_to_msg(e)
42	}
43}
44
45impl From<serde_json::Error> for SdkLightError
46{
47	fn from(value: serde_json::Error) -> Self
48	{
49		Self::JsonParseFailed(value)
50	}
51}
52
53pub fn err_to_msg(error: SdkLightError) -> String
54{
55	match error {
56		SdkLightError::Util(e) => sentc_crypto_utils::error::err_to_msg(e),
57		SdkLightError::JsonToStringFailed => out_error("client_100", "Cannot create a string from this object"),
58		SdkLightError::JsonParseFailed(err) => {
59			format!("{{\"status\": {}, \"error_message\": \"{}\"}}", "client_101", err)
60		},
61		SdkLightError::KeyDecryptFailed => out_error("client_21", "Can't decrypt a key. Maybe the format is wrong"),
62
63		//group error
64		SdkLightError::GroupRank => {
65			out_error(
66				"client_200",
67				"No valid group rank. Please choose between 1 (highest) and 4 (lowest)",
68			)
69		},
70		SdkLightError::GroupPermission => out_error("client_201", "No permission to fulfill this action"),
71	}
72}