wasm_bindgen function in api
This commit is contained in:
parent
331d880d35
commit
70cf0e6040
@ -1,8 +1,8 @@
|
|||||||
use rand::Rng;
|
use rand::Rng;
|
||||||
|
|
||||||
use anyhow::Error as AnyhowError;
|
use anyhow::Error as AnyhowError;
|
||||||
use sp_backend::silentpayments::Error as SpError;
|
|
||||||
use serde_json::Error as SerdeJsonError;
|
use serde_json::Error as SerdeJsonError;
|
||||||
|
use sp_backend::silentpayments::Error as SpError;
|
||||||
|
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use sp_backend::silentpayments::sending::SilentPaymentAddress;
|
use sp_backend::silentpayments::sending::SilentPaymentAddress;
|
||||||
@ -13,6 +13,8 @@ use wasm_bindgen::prelude::*;
|
|||||||
use sp_backend::spclient::SpendKey;
|
use sp_backend::spclient::SpendKey;
|
||||||
use sp_backend::spclient::{derive_keys_from_seed, OutputList, SpClient};
|
use sp_backend::spclient::{derive_keys_from_seed, OutputList, SpClient};
|
||||||
|
|
||||||
|
use crate::process::{ItemMember, Process, Role};
|
||||||
|
|
||||||
type ApiResult<T: FromWasmAbi> = Result<T, ApiError>;
|
type ApiResult<T: FromWasmAbi> = Result<T, ApiError>;
|
||||||
|
|
||||||
const IS_TESTNET: bool = true;
|
const IS_TESTNET: bool = true;
|
||||||
@ -24,19 +26,25 @@ struct ApiError {
|
|||||||
|
|
||||||
impl From<AnyhowError> for ApiError {
|
impl From<AnyhowError> for ApiError {
|
||||||
fn from(value: AnyhowError) -> Self {
|
fn from(value: AnyhowError) -> Self {
|
||||||
ApiError {message: value.to_string()}
|
ApiError {
|
||||||
|
message: value.to_string(),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<SpError> for ApiError {
|
impl From<SpError> for ApiError {
|
||||||
fn from(value: SpError) -> Self {
|
fn from(value: SpError) -> Self {
|
||||||
ApiError { message: value.to_string() }
|
ApiError {
|
||||||
|
message: value.to_string(),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<SerdeJsonError> for ApiError {
|
impl From<SerdeJsonError> for ApiError {
|
||||||
fn from(value: SerdeJsonError) -> Self {
|
fn from(value: SerdeJsonError) -> Self {
|
||||||
ApiError { message: value.to_string() }
|
ApiError {
|
||||||
|
message: value.to_string(),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -104,3 +112,39 @@ pub fn get_receiving_address(sp_client: String) -> String {
|
|||||||
let sp_client: SpClient = serde_json::from_str(&sp_client).unwrap();
|
let sp_client: SpClient = serde_json::from_str(&sp_client).unwrap();
|
||||||
sp_client.get_receiving_address()
|
sp_client.get_receiving_address()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Tsify, Serialize, Deserialize)]
|
||||||
|
#[tsify(into_wasm_abi)]
|
||||||
|
#[allow(non_camel_case_types)]
|
||||||
|
pub struct get_process_return(Vec<Process>);
|
||||||
|
|
||||||
|
#[wasm_bindgen]
|
||||||
|
pub fn get_processes() -> ApiResult<get_process_return> {
|
||||||
|
let member1 = ItemMember::new(Role::Manager, String::from(""));
|
||||||
|
let member2 = ItemMember::new(Role::Manager, String::from(""));
|
||||||
|
let member3 = ItemMember::new(Role::Manager, String::from(""));
|
||||||
|
|
||||||
|
//instances of process
|
||||||
|
let process1 = Process {
|
||||||
|
id: String::from("1"),
|
||||||
|
version: String::from("1.0"),
|
||||||
|
gestionnaires: vec![member1.clone(), member2.clone()],
|
||||||
|
};
|
||||||
|
let process2 = Process {
|
||||||
|
id: String::from("2"),
|
||||||
|
version: String::from("2.0"),
|
||||||
|
gestionnaires: vec![member2.clone(), member3.clone()],
|
||||||
|
};
|
||||||
|
let process3 = Process {
|
||||||
|
id: String::from("3"),
|
||||||
|
version: String::from("1.0"),
|
||||||
|
gestionnaires: vec![member3.clone(), member1.clone()],
|
||||||
|
};
|
||||||
|
|
||||||
|
// vec with the instances of processes
|
||||||
|
let mut data_process: Vec<Process> = Vec::new();
|
||||||
|
data_process.push(process1);
|
||||||
|
data_process.push(process2);
|
||||||
|
data_process.push(process3);
|
||||||
|
Ok(get_process_return(data_process))
|
||||||
|
}
|
||||||
|
@ -1,97 +1,38 @@
|
|||||||
use wasm_bindgen::prelude::*;
|
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use serde_json::{json, Value};
|
use serde_json::{json, Value};
|
||||||
|
use tsify::Tsify;
|
||||||
/*
|
use wasm_bindgen::prelude::*;
|
||||||
#[wasm_bindgen]
|
|
||||||
pub fn get_process() -> Vec<String> {
|
|
||||||
let mut data_process: Vec<String> = Vec::new();
|
|
||||||
data_process.push(String::from("process1"));
|
|
||||||
data_process.push(String::from("process2"));
|
|
||||||
data_process.push(String::from("process3"));
|
|
||||||
data_process
|
|
||||||
}*/
|
|
||||||
|
|
||||||
// process member (gestionnaire for now)
|
// process member (gestionnaire for now)
|
||||||
#[derive(Debug)]
|
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
|
||||||
pub enum Role {
|
pub enum Role {
|
||||||
manager,
|
Manager,
|
||||||
// user
|
#[default]
|
||||||
|
User,
|
||||||
}
|
}
|
||||||
#[derive(Debug, Serialize, Deserialize, Default, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
#[derive(Debug, Serialize, Deserialize, Default, Tsify, Clone)]
|
||||||
#[wasm_bindgen]
|
#[tsify(into_wasm_abi)]
|
||||||
pub struct itemMember {
|
pub struct ItemMember {
|
||||||
role: Role, //gestionnaire
|
pub role: Role, //gestionnaire
|
||||||
sp_address: String,
|
pub sp_address: String,
|
||||||
//pre_id
|
//pre_id
|
||||||
//shard
|
//shard
|
||||||
//priv_key_mainnet_spend
|
//priv_key_mainnet_spend
|
||||||
//priv_key_mainnet_scan
|
//priv_key_mainnet_scan
|
||||||
//priv_key_signet_scan
|
//priv_key_signet_scan
|
||||||
|
|
||||||
}
|
}
|
||||||
#[wasm_bindgen]
|
|
||||||
impl itemMember{
|
impl ItemMember {
|
||||||
pub fn new (
|
pub fn new(role: Role, sp_address: String) -> Self {
|
||||||
role : Role,
|
ItemMember { role, sp_address }
|
||||||
sp_address: string)
|
|
||||||
->Self {
|
|
||||||
itemMember{
|
|
||||||
role,
|
|
||||||
sp_address,
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Serialize, Deserialize, Default, Tsify)]
|
||||||
|
#[tsify(into_wasm_abi, from_wasm_abi)]
|
||||||
pub struct Process {
|
pub struct Process {
|
||||||
id: String,
|
pub id: String,
|
||||||
version: String,
|
pub version: String,
|
||||||
gestionnaires: Vec<itemMember>,
|
pub gestionnaires: Vec<ItemMember>,
|
||||||
//item_name : String,
|
//item_name : String,
|
||||||
}
|
}
|
||||||
#[wasm_bindgen]
|
|
||||||
pub fn get_processes() -> Vec<JsValue> {
|
|
||||||
let member1 = itemMember {
|
|
||||||
role: Role ::Manager,
|
|
||||||
sp_address: String::from(""),
|
|
||||||
};
|
|
||||||
|
|
||||||
let member2 = itemMember {
|
|
||||||
role: Role ::Manager,
|
|
||||||
sp_address: String::from(""),
|
|
||||||
};
|
|
||||||
|
|
||||||
let member3 = itemMember {
|
|
||||||
role: Role ::Manager,
|
|
||||||
sp_address: String::from(""),
|
|
||||||
};
|
|
||||||
/*
|
|
||||||
let member4= itemMember{
|
|
||||||
role : Role :: User,
|
|
||||||
sp_address: String::from(""),
|
|
||||||
};
|
|
||||||
*/
|
|
||||||
//instances of process
|
|
||||||
let process1 = Process {
|
|
||||||
id: String::from("1"),
|
|
||||||
version: String::from("1.0"),
|
|
||||||
gestionnaires: vec![member1, member2],
|
|
||||||
};
|
|
||||||
let process2 = Process {
|
|
||||||
id: String::from("2"),
|
|
||||||
version: String::from("2.0"),
|
|
||||||
gestionnaires: vec![member2, member3],
|
|
||||||
};
|
|
||||||
let process3 = Process {
|
|
||||||
id: String::from("3"),
|
|
||||||
version: String::from("1.0"),
|
|
||||||
gestionnaires: vec![member3, member1],
|
|
||||||
};
|
|
||||||
|
|
||||||
// vec with the instances of processes
|
|
||||||
let mut data_process: Vec<JsValue> = Vec::new();
|
|
||||||
data_process.push(JsValue::from_serde(&process1).unwrap());
|
|
||||||
data_process.push(JsValue::from_serde(&process2).unwrap());
|
|
||||||
data_process.push(JsValue::from_serde(&process3).unwrap());
|
|
||||||
data_process
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user