@studyportals/search-api-interface 1.2.2-4 → 1.2.2-7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@studyportals/search-api-interface",
3
- "version": "1.2.2-4",
3
+ "version": "1.2.2-7",
4
4
  "description": "Typescript library containing resources that facilitate integration with SearchApi",
5
5
  "main": "bin/index.js",
6
6
  "scripts": {
@@ -1,17 +1,17 @@
1
- import { AttendanceFilterOptionValue, DegreeTypeFilterOptionValue, DurationFilterOptionValue, EducationLevelFilterOptionValue, EducationalFormFilterOptionValue, SpecialProgrammesFilterOptionValue } from "@studyportals/search-filters/server";
2
- import { TuitionFeeFilterValueDTO } from "./TuitionFeeFilterValueDTO";
1
+ import { AttendanceFilterOptionValue, DegreeTypeFilterOptionValue, EducationLevelFilterOptionValue, EducationalFormFilterOptionValue, SpecialProgrammesFilterOptionValue } from "@studyportals/search-filters/server";
2
+ import { RangeDTO } from "@/src/programmes/RangeDTO";
3
3
  export declare class IProgrammeSearchFilters {
4
4
  readonly attendances?: AttendanceFilterOptionValue[];
5
5
  readonly degreeTypes?: DegreeTypeFilterOptionValue[];
6
6
  readonly disciplines?: string[];
7
- readonly durations?: DurationFilterOptionValue[];
7
+ readonly durations?: RangeDTO[];
8
8
  readonly educationalLevels?: EducationLevelFilterOptionValue[];
9
9
  readonly educationalForms?: EducationalFormFilterOptionValue[];
10
10
  readonly keyword?: string;
11
11
  readonly areaIds?: string[];
12
12
  readonly regionIds?: string[];
13
13
  readonly countryIsoCodes?: string[];
14
- readonly organisationId?: string;
14
+ readonly organisationIds?: string[];
15
15
  readonly specialProgrammes?: SpecialProgrammesFilterOptionValue[];
16
- readonly tuitionFee?: TuitionFeeFilterValueDTO;
16
+ readonly tuitionFee?: RangeDTO;
17
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"IProgrammeSearchFilters.js","sourceRoot":"","sources":["../../../src/programmes/IProgrammeSearchFilters.ts"],"names":[],"mappings":";;;AAWA,MAAa,uBAAuB;CAgBnC;AAhBD,0DAgBC"}
1
+ {"version":3,"file":"IProgrammeSearchFilters.js","sourceRoot":"","sources":["../../../src/programmes/IProgrammeSearchFilters.ts"],"names":[],"mappings":";;;AAUA,MAAa,uBAAuB;CAgBnC;AAhBD,0DAgBC"}
@@ -1,21 +1,23 @@
1
1
  import { IProgrammeSearchFilters } from "./IProgrammeSearchFilters";
2
2
  import { ProgrammeSearchInput } from "./ProgrammeSearchInput";
3
- import { AttendanceFilterOptionValue, DegreeTypeFilterOptionValue, DurationFilterOptionValue, EducationLevelFilterOptionValue, EducationalFormFilterOptionValue, SpecialProgrammesFilterOptionValue } from "@studyportals/search-filters/server";
4
- import { TuitionFeeFilterValueDTO } from "./TuitionFeeFilterValueDTO";
3
+ import { AttendanceFilterOptionValue, DegreeTypeFilterOptionValue, EducationLevelFilterOptionValue, EducationalFormFilterOptionValue, SpecialProgrammesFilterOptionValue } from "@studyportals/search-filters/server";
4
+ import { RangeDTO } from "@/src/programmes/RangeDTO";
5
5
  export declare class ProgrammeSearchFilters implements IProgrammeSearchFilters {
6
6
  attendances?: AttendanceFilterOptionValue[];
7
7
  degreeTypes?: DegreeTypeFilterOptionValue[];
8
8
  disciplines?: string[];
9
- durations?: DurationFilterOptionValue[];
9
+ durations?: RangeDTO[];
10
10
  educationalLevels?: EducationLevelFilterOptionValue[];
11
11
  educationalForms?: EducationalFormFilterOptionValue[];
12
12
  keyword?: string;
13
13
  areaIds?: string[];
14
14
  regionIds?: string[];
15
15
  countryIsoCodes?: string[];
16
- organisationId?: string;
16
+ organisationIds?: string[];
17
17
  specialProgrammes?: SpecialProgrammesFilterOptionValue[];
18
- tuitionFee?: TuitionFeeFilterValueDTO;
18
+ tuitionFee?: RangeDTO;
19
19
  from(input: ProgrammeSearchInput): IProgrammeSearchFilters;
20
+ private parseDurations;
21
+ private parseTuitionFee;
20
22
  private numbersToStringsOrUndefined;
21
23
  }
@@ -6,18 +6,35 @@ class ProgrammeSearchFilters {
6
6
  this.attendances = input.attendances;
7
7
  this.degreeTypes = input.degreeTypes;
8
8
  this.disciplines = this.numbersToStringsOrUndefined(input.disciplines);
9
- this.durations = input.durations;
10
9
  this.educationalLevels = input.educationalLevels;
11
10
  this.educationalForms = input.educationalForms;
12
11
  this.keyword = input.keyword;
13
12
  this.areaIds = this.numbersToStringsOrUndefined(input.areaIds);
14
13
  this.regionIds = this.numbersToStringsOrUndefined(input.regionIds);
15
14
  this.countryIsoCodes = input.countryIsoCodes;
16
- this.organisationId = input.organisationId ? input.organisationId.toString() : undefined;
15
+ this.organisationIds = input.organisationIds ? input.organisationIds.map(id => id.toString()) : undefined;
17
16
  this.specialProgrammes = input.specialProgrammes;
18
- this.tuitionFee = input.tuitionFee;
17
+ this.parseDurations(input);
18
+ this.parseTuitionFee(input);
19
19
  return this;
20
20
  }
21
+ parseDurations(input) {
22
+ if (!input.durations)
23
+ return;
24
+ this.durations = [];
25
+ for (const duration of input.durations) {
26
+ const [min, max] = JSON.parse(duration);
27
+ this.durations.push({ min, max });
28
+ }
29
+ }
30
+ parseTuitionFee(input) {
31
+ if (input.tuitionFeeMin || input.tuitionFeeMax) {
32
+ this.tuitionFee = {
33
+ min: input.tuitionFeeMin,
34
+ max: input.tuitionFeeMax,
35
+ };
36
+ }
37
+ }
21
38
  numbersToStringsOrUndefined(values) {
22
39
  if (values === undefined)
23
40
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"ProgrammeSearchFilters.js","sourceRoot":"","sources":["../../../src/programmes/ProgrammeSearchFilters.ts"],"names":[],"mappings":";;;AAcA,MAAa,sBAAsB;IAiB3B,IAAI,CAAC,KAA2B;QACtC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACvE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACjC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC;QACjD,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAE7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACnE,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;QAE7C,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACzF,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAA;QAEhD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QAEnC,OAAO,IAAI,CAAC;IACb,CAAC;IAEO,2BAA2B,CAAC,MAA4B;QAC/D,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO;QACjC,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9C,CAAC;CACD;AA1CD,wDA0CC"}
1
+ {"version":3,"file":"ProgrammeSearchFilters.js","sourceRoot":"","sources":["../../../src/programmes/ProgrammeSearchFilters.ts"],"names":[],"mappings":";;;AAaA,MAAa,sBAAsB;IAiB3B,IAAI,CAAC,KAA2B;QACtC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACvE,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC;QACjD,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAE7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACnE,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;QAE7C,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1G,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAA;QAEhD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;QAC1B,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAE5B,OAAO,IAAI,CAAC;IACb,CAAC;IAEO,cAAc,CAAC,KAA2B;QACjD,IAAI,CAAC,KAAK,CAAC,SAAS;YAAE,OAAO;QAE7B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QAEpB,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACxC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAC,GAAG,EAAE,GAAG,EAAC,CAAC,CAAA;QAChC,CAAC;IACF,CAAC;IAEO,eAAe,CAAC,KAA2B;QAClD,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YAChD,IAAI,CAAC,UAAU,GAAG;gBACjB,GAAG,EAAE,KAAK,CAAC,aAAa;gBACxB,GAAG,EAAE,KAAK,CAAC,aAAa;aACxB,CAAC;QACH,CAAC;IACF,CAAC;IAEO,2BAA2B,CAAC,MAA4B;QAC/D,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO;QACjC,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9C,CAAC;CACD;AA9DD,wDA8DC"}
@@ -1,5 +1,4 @@
1
1
  import { AttendanceFilterOptionValue, DegreeTypeFilterOptionValue, DurationFilterOptionValue, EducationLevelFilterOptionValue, EducationalFormFilterOptionValue, SpecialProgrammesFilterOptionValue } from "@studyportals/search-filters/server";
2
- import { TuitionFeeFilterValueDTO } from "./TuitionFeeFilterValueDTO";
3
2
  export type ProgrammeSearchInput = {
4
3
  resultSize: number;
5
4
  resultOffset: number;
@@ -13,7 +12,8 @@ export type ProgrammeSearchInput = {
13
12
  areaIds?: number[];
14
13
  regionIds?: number[];
15
14
  countryIsoCodes?: string[];
16
- organisationId?: number;
15
+ organisationIds?: number[];
17
16
  specialProgrammes?: SpecialProgrammesFilterOptionValue[];
18
- tuitionFee?: TuitionFeeFilterValueDTO;
17
+ tuitionFeeMin?: number;
18
+ tuitionFeeMax?: number;
19
19
  };
@@ -0,0 +1,4 @@
1
+ export interface RangeDTO {
2
+ min?: number;
3
+ max?: number;
4
+ }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=TuitionFeeFilterValueDTO.js.map
3
+ //# sourceMappingURL=RangeDTO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RangeDTO.js","sourceRoot":"","sources":["../../../src/programmes/RangeDTO.ts"],"names":[],"mappings":""}
@@ -1,4 +0,0 @@
1
- export interface TuitionFeeFilterValueDTO {
2
- min: number;
3
- max: number;
4
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"TuitionFeeFilterValueDTO.js","sourceRoot":"","sources":["../../../src/programmes/TuitionFeeFilterValueDTO.ts"],"names":[],"mappings":""}