From 51141c6d4e5b6bcd23feccc7494e2e08d75590b7 Mon Sep 17 00:00:00 2001 From: Arnab Chakraborty <11457760+Rocky43007@users.noreply.github.com> Date: Wed, 7 Aug 2024 18:16:06 +0300 Subject: [PATCH] Add create library route to `libraries.rs` --- core/src/api/cloud/libraries.rs | 46 ++++++++++++++------------------- 1 file changed, 20 insertions(+), 26 deletions(-) diff --git a/core/src/api/cloud/libraries.rs b/core/src/api/cloud/libraries.rs index 609d24e53..b821f248d 100644 --- a/core/src/api/cloud/libraries.rs +++ b/core/src/api/cloud/libraries.rs @@ -42,33 +42,27 @@ pub fn mount() -> AlphaRouter { }) }) .procedure("create", { - R.with2(library()) - .mutation(|(node, library), _: ()| async move { - // let node_config = node.config.get().await; - // let cloud_library = sd_cloud_api::library::create( - // node.cloud_api_config().await, - // library.id, - // &library.config().await.name, - // library.instance_uuid, - // library.identity.to_remote_identity(), - // node_config.id, - // node_config.identity.to_remote_identity(), - // &node.p2p.peer_metadata(), - // ) - // .await?; - // node.libraries - // .edit( - // library.id, - // None, - // MaybeUndefined::Undefined, - // MaybeUndefined::Value(cloud_library.id), - // None, - // ) - // .await?; + #[derive(Debug, serde::Serialize, serde::Deserialize, specta::Type)] + struct LibrariesCreateArgs { + access_token: AccessToken, + device_pub_id: devices::PubId, + } - invalidate_query!(library, "cloud.library.get"); - // invalidate_query!(library, "cloud.library.get"); - debug!("TODO: Functionality not implemented"); + R.with2(library()) + .mutation(|(node, library), args: LibrariesCreateArgs | async move { + let req = libraries::create::Request { + name: library.config().await.name.to_string(), + access_token: args.access_token, + pub_id: library.id, + device_pub_id: args.device_pub_id, + }; + super::handle_comm_error( + try_get_cloud_services_client!(node)? + .libraries() + .create(req) + .await, + "Failed to create library;", + )??; Ok(()) })