mirror of
https://github.com/hexedtech/codemp.git
synced 2024-11-22 15:24:48 +01:00
chore: renamed and fixed errors
Co-authored-by: zaaarf <me@zaaarf.foo>
This commit is contained in:
parent
c879d93452
commit
e822fad74e
3 changed files with 20 additions and 43 deletions
|
@ -7,7 +7,7 @@ use std::sync::Arc;
|
||||||
use dashmap::DashMap;
|
use dashmap::DashMap;
|
||||||
use tonic::{service::interceptor::InterceptedService, transport::{Channel, Endpoint}};
|
use tonic::{service::interceptor::InterceptedService, transport::{Channel, Endpoint}};
|
||||||
|
|
||||||
use crate::{api::User, errors::{ConnectionResult, ProcedureResult}, ext::InternallyMutable, workspace::Workspace};
|
use crate::{api::User, errors::{ConnectionResult, RemoteResult}, ext::InternallyMutable, workspace::Workspace};
|
||||||
use codemp_proto::{
|
use codemp_proto::{
|
||||||
auth::{auth_client::AuthClient, LoginRequest},
|
auth::{auth_client::AuthClient, LoginRequest},
|
||||||
common::{Empty, Token}, session::{session_client::SessionClient, InviteRequest, WorkspaceRequest},
|
common::{Empty, Token}, session::{session_client::SessionClient, InviteRequest, WorkspaceRequest},
|
||||||
|
@ -75,7 +75,7 @@ impl Client {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// refresh session token
|
/// refresh session token
|
||||||
pub async fn refresh(&self) -> ProcedureResult<()> {
|
pub async fn refresh(&self) -> tonic::Result<()> {
|
||||||
let new_token = self.0.auth.clone().refresh(self.0.claims.get())
|
let new_token = self.0.auth.clone().refresh(self.0.claims.get())
|
||||||
.await?
|
.await?
|
||||||
.into_inner();
|
.into_inner();
|
||||||
|
@ -84,7 +84,7 @@ impl Client {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// attempts to create a new workspace with given name
|
/// attempts to create a new workspace with given name
|
||||||
pub async fn create_workspace(&self, name: impl AsRef<str>) -> ProcedureResult<()> {
|
pub async fn create_workspace(&self, name: impl AsRef<str>) -> RemoteResult<()> {
|
||||||
self.0.session
|
self.0.session
|
||||||
.clone()
|
.clone()
|
||||||
.create_workspace(WorkspaceRequest { workspace: name.as_ref().to_string() })
|
.create_workspace(WorkspaceRequest { workspace: name.as_ref().to_string() })
|
||||||
|
@ -93,7 +93,7 @@ impl Client {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// delete an existing workspace if possible
|
/// delete an existing workspace if possible
|
||||||
pub async fn delete_workspace(&self, name: impl AsRef<str>) -> ProcedureResult<()> {
|
pub async fn delete_workspace(&self, name: impl AsRef<str>) -> RemoteResult<()> {
|
||||||
self.0.session
|
self.0.session
|
||||||
.clone()
|
.clone()
|
||||||
.delete_workspace(WorkspaceRequest { workspace: name.as_ref().to_string() })
|
.delete_workspace(WorkspaceRequest { workspace: name.as_ref().to_string() })
|
||||||
|
@ -102,7 +102,7 @@ impl Client {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// invite user associated with username to workspace, if possible
|
/// invite user associated with username to workspace, if possible
|
||||||
pub async fn invite_to_workspace(&self, workspace_name: impl AsRef<str>, user_name: impl AsRef<str>) -> ProcedureResult<()> {
|
pub async fn invite_to_workspace(&self, workspace_name: impl AsRef<str>, user_name: impl AsRef<str>) -> RemoteResult<()> {
|
||||||
self.0.session
|
self.0.session
|
||||||
.clone()
|
.clone()
|
||||||
.invite_to_workspace(InviteRequest {
|
.invite_to_workspace(InviteRequest {
|
||||||
|
@ -114,7 +114,7 @@ impl Client {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// list all available workspaces, filtering between those owned and those invited to
|
/// list all available workspaces, filtering between those owned and those invited to
|
||||||
pub async fn list_workspaces(&self, owned: bool, invited: bool) -> ProcedureResult<Vec<String>> {
|
pub async fn list_workspaces(&self, owned: bool, invited: bool) -> RemoteResult<Vec<String>> {
|
||||||
let mut workspaces = self.0.session
|
let mut workspaces = self.0.session
|
||||||
.clone()
|
.clone()
|
||||||
.list_workspaces(Empty {})
|
.list_workspaces(Empty {})
|
||||||
|
@ -131,6 +131,7 @@ impl Client {
|
||||||
|
|
||||||
/// join a workspace, returns [Workspace]
|
/// join a workspace, returns [Workspace]
|
||||||
pub async fn join_workspace(&self, workspace: impl AsRef<str>) -> ConnectionResult<Workspace> {
|
pub async fn join_workspace(&self, workspace: impl AsRef<str>) -> ConnectionResult<Workspace> {
|
||||||
|
// STATUS
|
||||||
let token = self.0.session
|
let token = self.0.session
|
||||||
.clone()
|
.clone()
|
||||||
.access_workspace(WorkspaceRequest { workspace: workspace.as_ref().to_string() })
|
.access_workspace(WorkspaceRequest { workspace: workspace.as_ref().to_string() })
|
||||||
|
|
|
@ -1,30 +1,8 @@
|
||||||
|
pub type RemoteResult<T> = std::result::Result<T, RemoteError>;
|
||||||
#[deprecated = "use underlying errors to provide more context on what errors could really be thrown"]
|
|
||||||
#[allow(deprecated)]
|
|
||||||
pub type Result<T> = std::result::Result<T, Error>;
|
|
||||||
|
|
||||||
#[deprecated = "use underlying errors to provide more context on what errors could really be thrown"]
|
|
||||||
#[derive(Debug, thiserror::Error)]
|
|
||||||
pub enum Error {
|
|
||||||
#[error("connection error: {0}")]
|
|
||||||
Connection(#[from] ConnectionError),
|
|
||||||
|
|
||||||
#[error("procedure error: {0}")]
|
|
||||||
Procedure(#[from] ProcedureError),
|
|
||||||
|
|
||||||
#[error("controller error: {0}")]
|
|
||||||
Controller(#[from] ControllerError),
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
pub type ProcedureResult<T> = std::result::Result<T, ProcedureError>;
|
|
||||||
|
|
||||||
#[derive(Debug, thiserror::Error)]
|
#[derive(Debug, thiserror::Error)]
|
||||||
pub enum ProcedureError {
|
#[error("server rejected procedure with error code: {0}")]
|
||||||
#[error("server rejected procedure with error: {0}")]
|
pub struct RemoteError(#[from] tonic::Status);
|
||||||
Server(#[from] tonic::Status)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -36,14 +14,12 @@ pub enum ConnectionError {
|
||||||
Transport(#[from] tonic::transport::Error),
|
Transport(#[from] tonic::transport::Error),
|
||||||
|
|
||||||
#[error("server rejected connection attempt: {0}")]
|
#[error("server rejected connection attempt: {0}")]
|
||||||
Procedure(#[from] tonic::Status),
|
Remote(#[from] RemoteError),
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<ProcedureError> for ConnectionError {
|
impl From<tonic::Status> for ConnectionError {
|
||||||
fn from(value: ProcedureError) -> Self {
|
fn from(value: tonic::Status) -> Self {
|
||||||
match value {
|
Self::Remote(RemoteError(value))
|
||||||
ProcedureError::Server(x) => Self::Procedure(x)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@ use crate::{
|
||||||
api::{controller::ControllerWorker, Controller, Event, User},
|
api::{controller::ControllerWorker, Controller, Event, User},
|
||||||
buffer::{self, worker::BufferWorker},
|
buffer::{self, worker::BufferWorker},
|
||||||
cursor::{self, worker::CursorWorker},
|
cursor::{self, worker::CursorWorker},
|
||||||
errors::{ConnectionResult, ControllerResult, ProcedureResult},
|
errors::{ConnectionResult, ControllerResult, RemoteResult},
|
||||||
ext::InternallyMutable,
|
ext::InternallyMutable,
|
||||||
workspace::service::Services
|
workspace::service::Services
|
||||||
};
|
};
|
||||||
|
@ -146,7 +146,7 @@ impl Workspace {
|
||||||
|
|
||||||
impl Workspace {
|
impl Workspace {
|
||||||
/// create a new buffer in current workspace
|
/// create a new buffer in current workspace
|
||||||
pub async fn create(&self, path: &str) -> ProcedureResult<()> {
|
pub async fn create(&self, path: &str) -> RemoteResult<()> {
|
||||||
let mut workspace_client = self.0.services.ws();
|
let mut workspace_client = self.0.services.ws();
|
||||||
workspace_client
|
workspace_client
|
||||||
.create_buffer(tonic::Request::new(BufferNode {
|
.create_buffer(tonic::Request::new(BufferNode {
|
||||||
|
@ -233,7 +233,7 @@ impl Workspace {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// fetch a list of all buffers in a workspace
|
/// fetch a list of all buffers in a workspace
|
||||||
pub async fn fetch_buffers(&self) -> ProcedureResult<()> {
|
pub async fn fetch_buffers(&self) -> RemoteResult<()> {
|
||||||
let mut workspace_client = self.0.services.ws();
|
let mut workspace_client = self.0.services.ws();
|
||||||
let buffers = workspace_client
|
let buffers = workspace_client
|
||||||
.list_buffers(tonic::Request::new(Empty {}))
|
.list_buffers(tonic::Request::new(Empty {}))
|
||||||
|
@ -250,7 +250,7 @@ impl Workspace {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// fetch a list of all users in a workspace
|
/// fetch a list of all users in a workspace
|
||||||
pub async fn fetch_users(&self) -> ProcedureResult<()> {
|
pub async fn fetch_users(&self) -> RemoteResult<()> {
|
||||||
let mut workspace_client = self.0.services.ws();
|
let mut workspace_client = self.0.services.ws();
|
||||||
let users = BTreeSet::from_iter(
|
let users = BTreeSet::from_iter(
|
||||||
workspace_client
|
workspace_client
|
||||||
|
@ -273,7 +273,7 @@ impl Workspace {
|
||||||
/// get a list of the users attached to a specific buffer
|
/// get a list of the users attached to a specific buffer
|
||||||
///
|
///
|
||||||
/// TODO: discuss implementation details
|
/// TODO: discuss implementation details
|
||||||
pub async fn list_buffer_users(&self, path: &str) -> ProcedureResult<Vec<User>> {
|
pub async fn list_buffer_users(&self, path: &str) -> RemoteResult<Vec<User>> {
|
||||||
let mut workspace_client = self.0.services.ws();
|
let mut workspace_client = self.0.services.ws();
|
||||||
let buffer_users = workspace_client
|
let buffer_users = workspace_client
|
||||||
.list_buffer_users(tonic::Request::new(BufferNode {
|
.list_buffer_users(tonic::Request::new(BufferNode {
|
||||||
|
@ -290,7 +290,7 @@ impl Workspace {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// delete a buffer
|
/// delete a buffer
|
||||||
pub async fn delete(&self, path: &str) -> ProcedureResult<()> {
|
pub async fn delete(&self, path: &str) -> RemoteResult<()> {
|
||||||
let mut workspace_client = self.0.services.ws();
|
let mut workspace_client = self.0.services.ws();
|
||||||
workspace_client
|
workspace_client
|
||||||
.delete_buffer(tonic::Request::new(BufferNode {
|
.delete_buffer(tonic::Request::new(BufferNode {
|
||||||
|
|
Loading…
Reference in a new issue