@@ -2,7 +2,7 @@ import { api } from 'boot/axios';
2
2
import { defineStore } from 'pinia' ;
3
3
4
4
import { 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' ;
6
6
import { User , CourseUser } from 'src/common/models/users' ;
7
7
import { invalidError , ResponseError } from 'src/common/api-requests/errors' ;
8
8
import { UserRole } from 'src/stores/permissions' ;
@@ -155,15 +155,20 @@ export const useUserStore = defineStore('user', {
155
155
/**
156
156
* Deletes the given User in the database and in the store.
157
157
*/
158
- async deleteUser ( user : User ) : Promise < User | undefined > {
158
+ async deleteUser ( user : User ) : Promise < void > {
159
159
const session_store = useSessionStore ( ) ;
160
160
const course_id = session_store . course . course_id ;
161
161
const response = await api . delete ( `courses/${ course_id } /global-users/${ user . user_id ?? 0 } ` ) ;
162
162
if ( response . status === 200 ) {
163
163
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 ) ) ;
167
172
}
168
173
} ,
169
174
@@ -261,16 +266,16 @@ export const useUserStore = defineStore('user', {
261
266
/**
262
267
* Deletes a Course User from the store and the database.
263
268
*/
264
- async deleteCourseUser ( course_user : CourseUser ) : Promise < CourseUser | undefined > {
269
+ async deleteCourseUser ( course_user : CourseUser ) : Promise < void > {
265
270
const response = await api . delete ( `courses/${ course_user . course_id } /users/${ course_user . user_id } ` ) ;
266
271
if ( response . status === 200 ) {
267
272
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
+ }
274
279
} else if ( response . status === 250 ) {
275
280
logger . error ( response . data ) ;
276
281
throw response . data as ResponseError ;
0 commit comments