diff --git a/src/views/InviteOneView.vue b/src/views/InviteOneView.vue
index fe6a82dec..ae3f14c80 100644
--- a/src/views/InviteOneView.vue
+++ b/src/views/InviteOneView.vue
@@ -60,6 +60,13 @@
{{ getTruncatedRedeemedBy(invite.redeemedBy) }}
|
+
+
+ |
@@ -153,6 +160,27 @@ export default class InviteOneView extends Vue {
);
}
+ lookForErrorAndNotify(error, title, defaultMessage) {
+ console.error(title, "-", error);
+ let message = defaultMessage;
+ if (error.response && error.response.data && error.response.data.error) {
+ if (error.response.data.error.message) {
+ message = error.response.data.error.message;
+ } else {
+ message = error.response.data.error;
+ }
+ }
+ this.$notify(
+ {
+ group: "alert",
+ type: "danger",
+ title: title,
+ text: message,
+ },
+ 5000,
+ );
+ }
+
async createInvite() {
const inviteIdentifier =
Math.random().toString(36).substring(2) +
@@ -191,31 +219,56 @@ export default class InviteOneView extends Vue {
});
// eslint-disable-next-line @typescript-eslint/no-explicit-any
} catch (error: any) {
- console.error("Error creating invite:", error);
- let message = "Got an error creating your invite.";
- if (
- error.response &&
- error.response.data &&
- error.response.data.error
- ) {
- if (error.response.data.error.message) {
- message = error.response.data.error.message;
- } else {
- message = error.response.data.error;
- }
- }
- this.$notify(
- {
- group: "alert",
- type: "danger",
- title: "Error Creating Invite",
- text: message,
- },
- 5000,
+ this.lookForErrorAndNotify(
+ error,
+ "Error Creating Invite",
+ "Got an error creating your invite.",
);
}
},
);
}
+
+ deleteInvite(inviteId: string) {
+ this.$notify(
+ {
+ group: "modal",
+ type: "confirm",
+ title: "Delete Invite?",
+ text: "Are you sure you want to erase this invite? (There is no undo.)",
+ onYes: async () => {
+ const headers = await getHeaders(this.activeDid);
+ try {
+ const result = await axios.delete(
+ this.apiServer + "/api/userUtil/invite/" + inviteId,
+ { headers },
+ );
+ if (result.status !== 204) {
+ throw result.data;
+ }
+ this.invites = this.invites.filter(
+ (invite) => invite.inviteIdentifier !== inviteId,
+ );
+ this.$notify(
+ {
+ group: "alert",
+ type: "success",
+ title: "Deleted",
+ text: "Invite deleted.",
+ },
+ 3000,
+ );
+ } catch (e) {
+ this.lookForErrorAndNotify(
+ e,
+ "Error Deleting Invite",
+ "Got an error deleting your invite.",
+ );
+ }
+ },
+ },
+ -1,
+ );
+ }
}