From f7883b1bee9813cee55c88fa5ed8ffded2d799d3 Mon Sep 17 00:00:00 2001 From: Reto Aebersold Date: Tue, 12 Dec 2023 11:58:30 +0100 Subject: [PATCH] feat: invite mentor --- .../learningMentor/MentorManagementPage.vue | 32 ++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/client/src/pages/learningMentor/MentorManagementPage.vue b/client/src/pages/learningMentor/MentorManagementPage.vue index 7d4740a5..1c6b3484 100644 --- a/client/src/pages/learningMentor/MentorManagementPage.vue +++ b/client/src/pages/learningMentor/MentorManagementPage.vue @@ -7,6 +7,7 @@ import { useCSRFFetch } from "@/fetchHelpers"; const courseSession = useCurrentCourseSession(); const showInvitationModal = ref(false); +const inviteeEmail = ref(""); const { execute: refreshMentors, data: mentors } = useCSRFFetch( `/api/mentor/${courseSession.value.course.id}/mentors` @@ -23,6 +24,11 @@ const hasMentors = computed(() => { ); }); +const validEmail = computed(() => { + const emailRegex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/; + return emailRegex.test(inviteeEmail.value); +}); + const removeInvitation = async (invitationId: string) => { await useCSRFFetch( `/api/mentor/${courseSession.value.course.id}/invitations/${invitationId}/delete` @@ -36,6 +42,17 @@ const removeMentor = async (mentorId: string) => { ).delete(); await refreshMentors(); }; + +const inviteMentor = async () => { + await useCSRFFetch( + `/api/mentor/${courseSession.value.course.id}/invitations/create` + ).post({ + email: inviteeEmail.value, + }); + await refreshInvitations(); + showInvitationModal.value = false; + inviteeEmail.value = ""; +};