@@ -14,7 +14,6 @@ import { property } from '../../core/database/query';
14
14
import { mapListResults } from '../../core/database/results' ;
15
15
import { Privileges , Role } from '../authorization' ;
16
16
import { AssignableRoles } from '../authorization/dto/assignable-roles' ;
17
- import { LanguageService } from '../language' ;
18
17
import {
19
18
LocationListInput ,
20
19
LocationService ,
@@ -33,19 +32,19 @@ import {
33
32
import {
34
33
AssignOrganizationToUser ,
35
34
CreatePerson ,
36
- KnownLanguage ,
35
+ ModifyKnownLanguageArgs ,
37
36
RemoveOrganizationFromUser ,
38
37
UpdateUser ,
39
38
User ,
40
39
UserListInput ,
41
40
UserListOutput ,
42
41
} from './dto' ;
43
- import { LanguageProficiency } from './dto/language-proficiency.enum' ;
44
42
import {
45
43
EducationListInput ,
46
44
EducationService ,
47
45
SecuredEducationList ,
48
46
} from './education' ;
47
+ import { KnownLanguageRepository } from './known-language.repository' ;
49
48
import {
50
49
SecuredUnavailabilityList ,
51
50
UnavailabilityListInput ,
@@ -63,7 +62,7 @@ export class UserService {
63
62
private readonly unavailabilities : UnavailabilityService ,
64
63
private readonly privileges : Privileges ,
65
64
private readonly locationService : LocationService ,
66
- private readonly languageService : LanguageService ,
65
+ private readonly knownLanguages : KnownLanguageRepository ,
67
66
private readonly userRepo : UserRepository ,
68
67
@Logger ( 'user:service' ) private readonly logger : ILogger ,
69
68
) { }
@@ -303,56 +302,22 @@ export class UserService {
303
302
) ;
304
303
}
305
304
306
- async createKnownLanguage (
307
- userId : ID ,
308
- languageId : ID ,
309
- languageProficiency : LanguageProficiency ,
310
- _session : Session ,
311
- ) : Promise < void > {
312
- try {
313
- await this . deleteKnownLanguage (
314
- userId ,
315
- languageId ,
316
- languageProficiency ,
317
- _session ,
318
- ) ;
319
- await this . userRepo . createKnownLanguage (
320
- userId ,
321
- languageId ,
322
- languageProficiency ,
323
- ) ;
324
- } catch ( e ) {
325
- throw new ServerException ( 'Could not create known language' , e ) ;
326
- }
305
+ async createKnownLanguage ( args : ModifyKnownLanguageArgs ) {
306
+ await this . knownLanguages . delete ( args ) ;
307
+ await this . knownLanguages . create ( args ) ;
327
308
}
328
309
329
- async deleteKnownLanguage (
330
- userId : ID ,
331
- languageId : ID ,
332
- languageProficiency : LanguageProficiency ,
333
- _session : Session ,
334
- ) : Promise < void > {
335
- try {
336
- await this . userRepo . deleteKnownLanguage (
337
- userId ,
338
- languageId ,
339
- languageProficiency ,
340
- ) ;
341
- } catch ( e ) {
342
- throw new ServerException ( 'Could not delete known language' , e ) ;
343
- }
310
+ async deleteKnownLanguage ( args : ModifyKnownLanguageArgs ) {
311
+ await this . knownLanguages . delete ( args ) ;
344
312
}
345
313
346
- async listKnownLanguages (
347
- userId : ID ,
348
- session : Session ,
349
- ) : Promise < readonly KnownLanguage [ ] > {
314
+ async listKnownLanguages ( userId : ID , session : Session ) {
350
315
const user = await this . userRepo . readOne ( userId , session ) ;
351
316
const perms = this . privileges . for ( session , User , user ) . all . knownLanguage ;
352
317
if ( ! perms . read ) {
353
318
return [ ] ;
354
319
}
355
- return await this . userRepo . listKnownLanguages ( userId , session ) ;
320
+ return await this . knownLanguages . list ( userId ) ;
356
321
}
357
322
358
323
async checkEmail ( email : string ) : Promise < boolean > {
0 commit comments