-
- {{error}}
-
+ {{ error }}
+
@@ -65,8 +69,11 @@
})
.catch(e => {
console.debug(e);
- console.error(e.message);
- this.error = 'Code ist nicht gültig';
+ if (e.message.indexOf('[CAJ]') > -1) {
+ this.error = 'Klasse bereits beigetreten';
+ } else {
+ this.error = 'Code ist nicht gültig';
+ }
})
},
cancel() {
diff --git a/server/users/mutations.py b/server/users/mutations.py
index 8ce94560..96490bc9 100644
--- a/server/users/mutations.py
+++ b/server/users/mutations.py
@@ -120,13 +120,17 @@ class JoinClass(relay.ClientIDMutation):
user = info.context.user
code = kwargs.get('code')
try:
- school_class = SchoolClass.objects.get(Q(code__iexact=code) & ~Q(users=user))
+ school_class = SchoolClass.objects.get(Q(code__iexact=code))
- school_class.users.add(user)
+
+ if user not in list(school_class.users.all()):
+ school_class.users.add(user)
+ else:
+ raise CodeNotFoundException('[CAJ] Schüler ist bereits in Klasse') # CAJ = Class Already Joined
return cls(success=True, school_class=school_class)
except SchoolClass.DoesNotExist:
- raise CodeNotFoundException('Code ist nicht gültig')
+ raise CodeNotFoundException('[CNV] Code ist nicht gültig') # CAV = Code Not Valid
class ProfileMutations: