@@ -2,7 +2,7 @@ import { api } from 'boot/axios';
22import { defineStore } from 'pinia' ;
33
44import { logger } from 'boot/logger' ;
5- import { DBCourseUser , ParseableCourseUser , ParseableDBCourseUser , ParseableUser } from 'src/common/models/users' ;
5+ import { DBCourseUser , ParseableDBCourseUser , ParseableUser } from 'src/common/models/users' ;
66import { User , CourseUser } from 'src/common/models/users' ;
77import { invalidError , ResponseError } from 'src/common/api-requests/errors' ;
88import { UserRole } from 'src/stores/permissions' ;
@@ -155,15 +155,20 @@ export const useUserStore = defineStore('user', {
155155 /**
156156 * Deletes the given User in the database and in the store.
157157 */
158- async deleteUser ( user : User ) : Promise < User | undefined > {
158+ async deleteUser ( user : User ) : Promise < void > {
159159 const session_store = useSessionStore ( ) ;
160160 const course_id = session_store . course . course_id ;
161161 const response = await api . delete ( `courses/${ course_id } /global-users/${ user . user_id ?? 0 } ` ) ;
162162 if ( response . status === 200 ) {
163163 const index = this . users . findIndex ( ( u ) => u . user_id === user . user_id ) ;
164- // splice is used so vue3 reacts to changes.
165- this . users . splice ( index , 1 ) ;
166- return new User ( response . data as ParseableUser ) ;
164+ if ( index < 0 ) {
165+ logger . error ( '[user store/deleteUser]: the user was not found in the store' ) ;
166+ } else {
167+ // splice is used so vue3 reacts to changes.
168+ this . users . splice ( index , 1 ) ;
169+ }
170+ } else {
171+ logger . error ( JSON . stringify ( response ) ) ;
167172 }
168173 } ,
169174
@@ -261,16 +266,16 @@ export const useUserStore = defineStore('user', {
261266 /**
262267 * Deletes a Course User from the store and the database.
263268 */
264- async deleteCourseUser ( course_user : CourseUser ) : Promise < CourseUser | undefined > {
269+ async deleteCourseUser ( course_user : CourseUser ) : Promise < void > {
265270 const response = await api . delete ( `courses/${ course_user . course_id } /users/${ course_user . user_id } ` ) ;
266271 if ( response . status === 200 ) {
267272 const index = this . db_course_users . findIndex ( ( u ) => u . course_user_id === course_user . course_user_id ) ;
268-
269- // splice is used so vue3 reacts to changes.
270- this . db_course_users . splice ( index , 1 ) ;
271- const deleted_course_user = new DBCourseUser ( response . data as ParseableCourseUser ) ;
272- const user = this . users . find ( u => u . user_id === deleted_course_user . user_id ) ;
273- return new CourseUser ( Object . assign ( { } , user ?. toObject ( ) , deleted_course_user . toObject ( ) ) ) ;
273+ if ( index < 0 ) {
274+ logger . error ( '[user store/deleteCourseUser]: the user was not found in the store' ) ;
275+ } else {
276+ // splice is used so vue3 reacts to changes.
277+ this . db_course_users . splice ( index , 1 ) ;
278+ }
274279 } else if ( response . status === 250 ) {
275280 logger . error ( response . data ) ;
276281 throw response . data as ResponseError ;
0 commit comments