Skip to content

Commit 5ea75d6

Browse files
committed
Add some ethnologue language filters
1 parent 415c2b7 commit 5ea75d6

File tree

2 files changed

+37
-0
lines changed

2 files changed

+37
-0
lines changed

src/components/language/dto/list-language.dto.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,24 @@ import {
1010
} from '~/common';
1111
import { Language } from './language.dto';
1212

13+
@InputType()
14+
export abstract class EthnologueLanguageFilters {
15+
@Field({
16+
nullable: true,
17+
})
18+
readonly code?: string;
19+
20+
@Field({
21+
nullable: true,
22+
})
23+
readonly provisionalCode?: string;
24+
25+
@Field({
26+
nullable: true,
27+
})
28+
readonly name?: string;
29+
}
30+
1331
@InputType()
1432
export abstract class LanguageFilters {
1533
@Field(() => [Sensitivity], {
@@ -49,6 +67,9 @@ export abstract class LanguageFilters {
4967
readonly pinned?: boolean;
5068

5169
readonly partnerId?: ID;
70+
71+
@FilterField(() => EthnologueLanguageFilters)
72+
readonly ethnologue?: EthnologueLanguageFilters & {};
5273
}
5374

5475
@InputType()

src/components/language/language.repository.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ import { ProjectStatus } from '../project/dto';
4343
import {
4444
CreateLanguage,
4545
EthnologueLanguage,
46+
EthnologueLanguageFilters,
4647
Language,
4748
LanguageFilters,
4849
LanguageListInput,
@@ -291,6 +292,21 @@ export const languageFilters = filter.define(() => LanguageFilters, {
291292
return { presetInventory: value ? condition : not(condition) };
292293
},
293294
pinned: filter.isPinned,
295+
ethnologue: filter.sub(() => ethnologueFilters)((sub) =>
296+
sub
297+
.with('node as lang')
298+
.match([
299+
node('lang'),
300+
relation('out', '', 'ethnologue'),
301+
node('node', 'EthnologueLanguage'),
302+
]),
303+
),
304+
});
305+
306+
const ethnologueFilters = filter.define(() => EthnologueLanguageFilters, {
307+
code: filter.propVal(),
308+
provisionalCode: filter.propVal(),
309+
name: filter.propVal(),
294310
});
295311

296312
const isPresetInventory = (query: Query) =>

0 commit comments

Comments
 (0)