Skip to content

Commit

Permalink
Update the corresponding bindings
Browse files Browse the repository at this point in the history
  • Loading branch information
vxgmichel committed Jan 30, 2025
1 parent f73c48b commit 32ff06a
Show file tree
Hide file tree
Showing 7 changed files with 77 additions and 19 deletions.
16 changes: 13 additions & 3 deletions bindings/electron/src/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -617,14 +617,22 @@ export type ClientAcceptTosError =


// ClientCancelInvitationError
export interface ClientCancelInvitationErrorAlreadyDeleted {
tag: "AlreadyDeleted"
export interface ClientCancelInvitationErrorAlreadyCancelled {
tag: "AlreadyCancelled"
error: string
}
export interface ClientCancelInvitationErrorCompleted {
tag: "Completed"
error: string
}
export interface ClientCancelInvitationErrorInternal {
tag: "Internal"
error: string
}
export interface ClientCancelInvitationErrorNotAllowed {
tag: "NotAllowed"
error: string
}
export interface ClientCancelInvitationErrorNotFound {
tag: "NotFound"
error: string
Expand All @@ -634,8 +642,10 @@ export interface ClientCancelInvitationErrorOffline {
error: string
}
export type ClientCancelInvitationError =
| ClientCancelInvitationErrorAlreadyDeleted
| ClientCancelInvitationErrorAlreadyCancelled
| ClientCancelInvitationErrorCompleted
| ClientCancelInvitationErrorInternal
| ClientCancelInvitationErrorNotAllowed
| ClientCancelInvitationErrorNotFound
| ClientCancelInvitationErrorOffline

Expand Down
14 changes: 12 additions & 2 deletions bindings/electron/src/meths.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4095,16 +4095,26 @@ fn variant_client_cancel_invitation_error_rs_to_js<'a>(
let js_display = JsString::try_new(cx, &rs_obj.to_string()).or_throw(cx)?;
js_obj.set(cx, "error", js_display)?;
match rs_obj {
libparsec::ClientCancelInvitationError::AlreadyDeleted { .. } => {
libparsec::ClientCancelInvitationError::AlreadyCancelled { .. } => {
let js_tag = JsString::try_new(cx, "ClientCancelInvitationErrorAlreadyCancelled")
.or_throw(cx)?;
js_obj.set(cx, "tag", js_tag)?;
}
libparsec::ClientCancelInvitationError::Completed { .. } => {
let js_tag =
JsString::try_new(cx, "ClientCancelInvitationErrorAlreadyDeleted").or_throw(cx)?;
JsString::try_new(cx, "ClientCancelInvitationErrorCompleted").or_throw(cx)?;
js_obj.set(cx, "tag", js_tag)?;
}
libparsec::ClientCancelInvitationError::Internal { .. } => {
let js_tag =
JsString::try_new(cx, "ClientCancelInvitationErrorInternal").or_throw(cx)?;
js_obj.set(cx, "tag", js_tag)?;
}
libparsec::ClientCancelInvitationError::NotAllowed { .. } => {
let js_tag =
JsString::try_new(cx, "ClientCancelInvitationErrorNotAllowed").or_throw(cx)?;
js_obj.set(cx, "tag", js_tag)?;
}
libparsec::ClientCancelInvitationError::NotFound { .. } => {
let js_tag =
JsString::try_new(cx, "ClientCancelInvitationErrorNotFound").or_throw(cx)?;
Expand Down
8 changes: 7 additions & 1 deletion bindings/generator/api/invite.py
Original file line number Diff line number Diff line change
Expand Up @@ -587,7 +587,13 @@ class Offline:
class NotFound:
pass

class AlreadyDeleted:
class NotAllowed:
pass

class AlreadyCancelled:
pass

class Completed:
pass

class Internal:
Expand Down
18 changes: 16 additions & 2 deletions bindings/web/src/meths.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4453,11 +4453,18 @@ fn variant_client_cancel_invitation_error_rs_to_js(
let js_display = &rs_obj.to_string();
Reflect::set(&js_obj, &"error".into(), &js_display.into())?;
match rs_obj {
libparsec::ClientCancelInvitationError::AlreadyDeleted { .. } => {
libparsec::ClientCancelInvitationError::AlreadyCancelled { .. } => {
Reflect::set(
&js_obj,
&"tag".into(),
&"ClientCancelInvitationErrorAlreadyDeleted".into(),
&"ClientCancelInvitationErrorAlreadyCancelled".into(),
)?;
}
libparsec::ClientCancelInvitationError::Completed { .. } => {
Reflect::set(
&js_obj,
&"tag".into(),
&"ClientCancelInvitationErrorCompleted".into(),
)?;
}
libparsec::ClientCancelInvitationError::Internal { .. } => {
Expand All @@ -4467,6 +4474,13 @@ fn variant_client_cancel_invitation_error_rs_to_js(
&"ClientCancelInvitationErrorInternal".into(),
)?;
}
libparsec::ClientCancelInvitationError::NotAllowed { .. } => {
Reflect::set(
&js_obj,
&"tag".into(),
&"ClientCancelInvitationErrorNotAllowed".into(),
)?;
}
libparsec::ClientCancelInvitationError::NotFound { .. } => {
Reflect::set(
&js_obj,
Expand Down
6 changes: 4 additions & 2 deletions client/src/components/header/InvitationsButton.vue
Original file line number Diff line number Diff line change
Expand Up @@ -109,11 +109,13 @@ async function cancelUserInvitation(invitation: UserInvitation): Promise<void> {
);
await updateInvitations();
} else {
// In both those cases we can just refresh the list and the invitation should disappear, no need
// In all those cases we can just refresh the list and the invitation should disappear, no need
// to warn the user.
if (
result.error.tag === ClientCancelInvitationErrorTag.NotFound ||
result.error.tag === ClientCancelInvitationErrorTag.AlreadyDeleted
result.error.tag === ClientCancelInvitationErrorTag.NotAllowed ||
result.error.tag === ClientCancelInvitationErrorTag.AlreadyCancelled ||
result.error.tag === ClientCancelInvitationErrorTag.Completed
) {
await updateInvitations();
} else {
Expand Down
20 changes: 16 additions & 4 deletions client/src/plugins/libparsec/definitions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -658,20 +658,30 @@ export type ClientAcceptTosError =

// ClientCancelInvitationError
export enum ClientCancelInvitationErrorTag {
AlreadyDeleted = 'ClientCancelInvitationErrorAlreadyDeleted',
AlreadyCancelled = 'ClientCancelInvitationErrorAlreadyCancelled',
Completed = 'ClientCancelInvitationErrorCompleted',
Internal = 'ClientCancelInvitationErrorInternal',
NotAllowed = 'ClientCancelInvitationErrorNotAllowed',
NotFound = 'ClientCancelInvitationErrorNotFound',
Offline = 'ClientCancelInvitationErrorOffline',
}

export interface ClientCancelInvitationErrorAlreadyDeleted {
tag: ClientCancelInvitationErrorTag.AlreadyDeleted
export interface ClientCancelInvitationErrorAlreadyCancelled {
tag: ClientCancelInvitationErrorTag.AlreadyCancelled
error: string
}
export interface ClientCancelInvitationErrorCompleted {
tag: ClientCancelInvitationErrorTag.Completed
error: string
}
export interface ClientCancelInvitationErrorInternal {
tag: ClientCancelInvitationErrorTag.Internal
error: string
}
export interface ClientCancelInvitationErrorNotAllowed {
tag: ClientCancelInvitationErrorTag.NotAllowed
error: string
}
export interface ClientCancelInvitationErrorNotFound {
tag: ClientCancelInvitationErrorTag.NotFound
error: string
Expand All @@ -681,8 +691,10 @@ export interface ClientCancelInvitationErrorOffline {
error: string
}
export type ClientCancelInvitationError =
| ClientCancelInvitationErrorAlreadyDeleted
| ClientCancelInvitationErrorAlreadyCancelled
| ClientCancelInvitationErrorCompleted
| ClientCancelInvitationErrorInternal
| ClientCancelInvitationErrorNotAllowed
| ClientCancelInvitationErrorNotFound
| ClientCancelInvitationErrorOffline

Expand Down
14 changes: 9 additions & 5 deletions libparsec/crates/client/src/invite/greeter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -202,8 +202,12 @@ pub enum CancelInvitationError {
Offline,
#[error("Invitation not found")]
NotFound,
#[error("Invitation already deleted")]
AlreadyDeleted,
#[error("Author not allowed")]
NotAllowed,
#[error("Invitation already cancelled")]
AlreadyCancelled,
#[error("Invitation already completed")]
Completed,
#[error(transparent)]
Internal(#[from] anyhow::Error),
}
Expand All @@ -228,9 +232,9 @@ pub async fn cancel_invitation(

match rep {
Rep::Ok => Ok(()),
Rep::AuthorNotAllowed => Err(CancelInvitationError::NotFound),
Rep::InvitationAlreadyCancelled => Err(CancelInvitationError::AlreadyDeleted),
Rep::InvitationCompleted => Err(CancelInvitationError::AlreadyDeleted),
Rep::AuthorNotAllowed => Err(CancelInvitationError::NotAllowed),
Rep::InvitationAlreadyCancelled => Err(CancelInvitationError::AlreadyCancelled),
Rep::InvitationCompleted => Err(CancelInvitationError::Completed),
Rep::InvitationNotFound => Err(CancelInvitationError::NotFound),
rep @ Rep::UnknownStatus { .. } => {
Err(anyhow::anyhow!("Unexpected server response: {:?}", rep).into())
Expand Down

0 comments on commit 32ff06a

Please sign in to comment.