@studyportals/search-api-interface 1.0.0 → 1.0.2

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/bin/index.d.ts CHANGED
@@ -2,7 +2,8 @@ import { DegreeTypeEnum } from "./src/organisations/DegreeTypeEnum";
2
2
  import { DeliveryMethodEnum } from "./src/organisations/DeliveryMethodEnum";
3
3
  import { IOrganisationSearchFilters } from "./src/organisations/IOrganisationSearchFilters";
4
4
  import { IOrganisationSearchResponse } from "./src/organisations/IOrganisationSearchResponse";
5
+ import { ISearchOptions } from "./src/organisations/ISearchOptions";
5
6
  import { OrganisationSearchFilters } from "./src/organisations/OrganisationSearchFilters";
6
7
  import { OrganisationSearchInput } from "./src/organisations/OrganisationSearchInput";
7
8
  import { SearchApiOrganisationClient } from "./src/organisations/SearchApiOrganisationClient";
8
- export { SearchApiOrganisationClient, IOrganisationSearchResponse, IOrganisationSearchFilters, OrganisationSearchFilters, OrganisationSearchInput, DegreeTypeEnum, DeliveryMethodEnum };
9
+ export { SearchApiOrganisationClient, ISearchOptions, IOrganisationSearchResponse, IOrganisationSearchFilters, OrganisationSearchFilters, OrganisationSearchInput, DegreeTypeEnum, DeliveryMethodEnum };
package/bin/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,uEAAoE;AAgBnE,+FAhBQ,+BAAc,OAgBR;AAff,+EAA4E;AAgB3E,mGAhBQ,uCAAkB,OAgBR;AAfnB,+FAA4F;AAS3F,2GATQ,uDAA0B,OASR;AAP3B,6FAA0F;AAQzF,0GARQ,qDAAyB,OAQR;AAN1B,iGAA8F;AAG7F,4GAHQ,yDAA2B,OAGR"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,uEAAoE;AAkBnE,+FAlBQ,+BAAc,OAkBR;AAjBf,+EAA4E;AAkB3E,mGAlBQ,uCAAkB,OAkBR;AAjBnB,+FAA4F;AAW3F,2GAXQ,uDAA0B,OAWR;AAR3B,6FAA0F;AASzF,0GATQ,qDAAyB,OASR;AAP1B,iGAA8F;AAG7F,4GAHQ,yDAA2B,OAGR"}
@@ -5,6 +5,6 @@ export declare class IOrganisationSearchFilters {
5
5
  readonly degree: DegreeTypeEnum | undefined;
6
6
  readonly disciplines: string[] | undefined;
7
7
  readonly deliveryMethods: DeliveryMethodEnum[] | undefined;
8
- readonly countryIds: string[] | undefined;
8
+ readonly countryIsoCodes: string[] | undefined;
9
9
  readonly areaIds: string[] | undefined;
10
10
  }
@@ -0,0 +1,4 @@
1
+ export interface ISearchOptions {
2
+ readonly resultSize: number;
3
+ readonly resultOffset: number;
4
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ISearchOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ISearchOptions.js","sourceRoot":"","sources":["../../../src/organisations/ISearchOptions.ts"],"names":[],"mappings":""}
@@ -1,20 +1,17 @@
1
1
  import { DegreeTypeEnum } from "./DegreeTypeEnum";
2
2
  import { DeliveryMethodEnum } from "./DeliveryMethodEnum";
3
- import { OrganisationSearchInput } from "./OrganisationSearchInput";
4
3
  import { IOrganisationSearchFilters } from "./IOrganisationSearchFilters";
5
4
  export declare class OrganisationSearchFilters implements IOrganisationSearchFilters {
6
5
  organisationId: string | undefined;
7
6
  degree: DegreeTypeEnum | undefined;
8
7
  disciplines: string[] | undefined;
9
8
  deliveryMethods: DeliveryMethodEnum[] | undefined;
10
- countryIds: string[] | undefined;
9
+ countryIsoCodes: string[] | undefined;
11
10
  areaIds: string[] | undefined;
12
- from(input: OrganisationSearchInput): OrganisationSearchFilters;
13
11
  consideringId(id: string): OrganisationSearchFilters;
14
12
  consideringDegree(degree: DegreeTypeEnum): OrganisationSearchFilters;
15
13
  consideringDisciplines(disciplines: string[]): OrganisationSearchFilters;
16
14
  consideringDeliveryMethods(deliveryMethods: DeliveryMethodEnum[]): OrganisationSearchFilters;
17
- consideringCountryIds(countryIds: string[]): OrganisationSearchFilters;
15
+ consideringCountryIsoCodes(countryIsoCodes: string[]): OrganisationSearchFilters;
18
16
  consideringAreaIds(areaIds: string[]): OrganisationSearchFilters;
19
- private numbersToStringsOrUndefined;
20
17
  }
@@ -2,15 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OrganisationSearchFilters = void 0;
4
4
  class OrganisationSearchFilters {
5
- from(input) {
6
- this.organisationId = input.id ? input.id.toString() : undefined;
7
- this.degree = input.lv;
8
- this.deliveryMethods = input.mh;
9
- this.disciplines = this.numbersToStringsOrUndefined(input.di);
10
- this.countryIds = this.numbersToStringsOrUndefined(input.ci);
11
- this.areaIds = this.numbersToStringsOrUndefined(input.ae);
12
- return this;
13
- }
14
5
  consideringId(id) {
15
6
  this.organisationId = id;
16
7
  return this;
@@ -27,19 +18,14 @@ class OrganisationSearchFilters {
27
18
  this.deliveryMethods = deliveryMethods;
28
19
  return this;
29
20
  }
30
- consideringCountryIds(countryIds) {
31
- this.countryIds = countryIds;
21
+ consideringCountryIsoCodes(countryIsoCodes) {
22
+ this.countryIsoCodes = countryIsoCodes;
32
23
  return this;
33
24
  }
34
25
  consideringAreaIds(areaIds) {
35
26
  this.areaIds = areaIds;
36
27
  return this;
37
28
  }
38
- numbersToStringsOrUndefined(values) {
39
- if (values === undefined)
40
- return;
41
- return values.map(value => value.toString());
42
- }
43
29
  }
44
30
  exports.OrganisationSearchFilters = OrganisationSearchFilters;
45
31
  //# sourceMappingURL=OrganisationSearchFilters.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OrganisationSearchFilters.js","sourceRoot":"","sources":["../../../src/organisations/OrganisationSearchFilters.ts"],"names":[],"mappings":";;;AAKA,MAAa,yBAAyB;IAQ9B,IAAI,CAAC,KAA8B;QACzC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACjE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,EAAE,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,aAAa,CAAC,EAAU;QAC9B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,iBAAiB,CAAC,MAAsB;QAC9C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,sBAAsB,CAAC,WAAqB;QAClD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,0BAA0B,CAAC,eAAqC;QACtE,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,qBAAqB,CAAC,UAAoB;QAChD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,kBAAkB,CAAC,OAAiB;QAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,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;AApDD,8DAoDC"}
1
+ {"version":3,"file":"OrganisationSearchFilters.js","sourceRoot":"","sources":["../../../src/organisations/OrganisationSearchFilters.ts"],"names":[],"mappings":";;;AAIA,MAAa,yBAAyB;IAQ9B,aAAa,CAAC,EAAU;QAC9B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,iBAAiB,CAAC,MAAsB;QAC9C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,sBAAsB,CAAC,WAAqB;QAClD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,0BAA0B,CAAC,eAAqC;QACtE,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,0BAA0B,CAAC,eAAyB;QAC1D,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,kBAAkB,CAAC,OAAiB;QAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IACb,CAAC;CACD;AArCD,8DAqCC"}
@@ -1,12 +1,3 @@
1
- import { DegreeTypeEnum } from "./DegreeTypeEnum";
2
- import { DeliveryMethodEnum } from "./DeliveryMethodEnum";
3
- export type OrganisationSearchInput = {
4
- resultSize: number;
5
- resultOffset: number;
6
- id?: number;
7
- di?: number[];
8
- ci?: number[];
9
- ae?: number[];
10
- lv?: DegreeTypeEnum;
11
- mh?: DeliveryMethodEnum[];
12
- };
1
+ import { IOrganisationSearchFilters } from "./IOrganisationSearchFilters";
2
+ import { ISearchOptions } from "./ISearchOptions";
3
+ export type OrganisationSearchInput = ISearchOptions & IOrganisationSearchFilters;
@@ -2,10 +2,11 @@ import { SearchApiClientBase } from "./SearchApiClientBase";
2
2
  import { IRequestSender, ISuperAgentRequestFactory } from "@studyportals/mb-platform-http-requests";
3
3
  import { IOrganisationCard } from "@studyportals/domain-client";
4
4
  import { IOrganisationSearchResponse } from "./IOrganisationSearchResponse";
5
+ import { IOrganisationSearchFilters } from "./IOrganisationSearchFilters";
5
6
  export declare class SearchApiOrganisationClient extends SearchApiClientBase {
6
7
  private readonly requestFactory;
7
8
  private readonly requestSender;
8
9
  private readonly organisationCardFactory;
9
10
  constructor(apiUriBase: string, requestFactory: ISuperAgentRequestFactory, requestSender: IRequestSender);
10
- searchCards(filters: any, resultSize: number, resultOffset: number): Promise<IOrganisationSearchResponse<IOrganisationCard>>;
11
+ searchCards(filters: IOrganisationSearchFilters, resultSize: number, resultOffset: number): Promise<IOrganisationSearchResponse<IOrganisationCard>>;
11
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SearchApiOrganisationClient.js","sourceRoot":"","sources":["../../../src/organisations/SearchApiOrganisationClient.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+DAA4D;AAE5D,+DAAwF;AAIxF,MAAa,2BAA4B,SAAQ,yCAAmB;IAMnE,YAAmB,UAAkB,EACpC,cAAyC,EACzC,aAA6B;QAE7B,KAAK,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QANnB,4BAAuB,GAAG,IAAI,sCAAsB,EAAE,CAAC;QAQvE,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,uBAAuB,GAAG,IAAI,sCAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5E,CAAC;IAEY,WAAW,CAAC,OAAY,EAAE,UAAkB,EAAE,YAAoB;;YAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;iBAClE,KAAK,iCAAM,OAAO,KAAE,UAAU,EAAE,YAAY,IAAG,CAAC;YAElD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAiD,OAAO,CAAC,CAAC;YAEpH,uCACI,MAAM,KACT,aAAa,EAAE,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,IACvF;QACF,CAAC;KAAA;CACD;AA5BD,kEA4BC"}
1
+ {"version":3,"file":"SearchApiOrganisationClient.js","sourceRoot":"","sources":["../../../src/organisations/SearchApiOrganisationClient.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+DAA4D;AAE5D,+DAAwF;AAKxF,MAAa,2BAA4B,SAAQ,yCAAmB;IAMnE,YAAmB,UAAkB,EACpC,cAAyC,EACzC,aAA6B;QAE7B,KAAK,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QANnB,4BAAuB,GAAG,IAAI,sCAAsB,EAAE,CAAC;QAQvE,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,uBAAuB,GAAG,IAAI,sCAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5E,CAAC;IAEY,WAAW,CAAC,OAAmC,EAAE,UAAkB,EAAE,YAAoB;;YACrG,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;iBAClE,KAAK,iCAAM,OAAO,KAAE,UAAU,EAAE,YAAY,IAAG,CAAC;YAElD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAiD,OAAO,CAAC,CAAC;YAEpH,uCACI,MAAM,KACT,aAAa,EAAE,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,IACvF;QACF,CAAC;KAAA;CACD;AA5BD,kEA4BC"}
package/index.ts CHANGED
@@ -2,12 +2,14 @@ import { DegreeTypeEnum } from "./src/organisations/DegreeTypeEnum";
2
2
  import { DeliveryMethodEnum } from "./src/organisations/DeliveryMethodEnum";
3
3
  import { IOrganisationSearchFilters } from "./src/organisations/IOrganisationSearchFilters";
4
4
  import { IOrganisationSearchResponse } from "./src/organisations/IOrganisationSearchResponse";
5
+ import { ISearchOptions } from "./src/organisations/ISearchOptions";
5
6
  import { OrganisationSearchFilters } from "./src/organisations/OrganisationSearchFilters";
6
7
  import { OrganisationSearchInput } from "./src/organisations/OrganisationSearchInput";
7
8
  import { SearchApiOrganisationClient } from "./src/organisations/SearchApiOrganisationClient";
8
9
 
9
10
  export {
10
11
  SearchApiOrganisationClient,
12
+ ISearchOptions,
11
13
  IOrganisationSearchResponse,
12
14
  IOrganisationSearchFilters,
13
15
  OrganisationSearchFilters,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@studyportals/search-api-interface",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "Typescript library containing resources that facilitate integration with SearchApi",
5
5
  "main": "bin/index.js",
6
6
  "scripts": {
@@ -6,6 +6,6 @@ export class IOrganisationSearchFilters {
6
6
  readonly degree: DegreeTypeEnum | undefined;
7
7
  readonly disciplines: string[] | undefined;
8
8
  readonly deliveryMethods: DeliveryMethodEnum[] | undefined;
9
- readonly countryIds: string[] | undefined;
9
+ readonly countryIsoCodes: string[] | undefined;
10
10
  readonly areaIds: string[] | undefined;
11
11
  }
@@ -0,0 +1,4 @@
1
+ export interface ISearchOptions {
2
+ readonly resultSize: number;
3
+ readonly resultOffset: number;
4
+ }
@@ -1,6 +1,5 @@
1
1
  import { DegreeTypeEnum } from "./DegreeTypeEnum";
2
2
  import { DeliveryMethodEnum } from "./DeliveryMethodEnum";
3
- import { OrganisationSearchInput } from "./OrganisationSearchInput";
4
3
  import { IOrganisationSearchFilters } from "./IOrganisationSearchFilters";
5
4
 
6
5
  export class OrganisationSearchFilters implements IOrganisationSearchFilters {
@@ -8,19 +7,9 @@ export class OrganisationSearchFilters implements IOrganisationSearchFilters {
8
7
  public degree: DegreeTypeEnum | undefined;
9
8
  public disciplines: string[] | undefined;
10
9
  public deliveryMethods: DeliveryMethodEnum[] | undefined;
11
- public countryIds: string[] | undefined;
10
+ public countryIsoCodes: string[] | undefined;
12
11
  public areaIds: string[] | undefined;
13
12
 
14
- public from(input: OrganisationSearchInput): OrganisationSearchFilters {
15
- this.organisationId = input.id ? input.id.toString() : undefined;
16
- this.degree = input.lv;
17
- this.deliveryMethods = input.mh;
18
- this.disciplines = this.numbersToStringsOrUndefined(input.di);
19
- this.countryIds = this.numbersToStringsOrUndefined(input.ci);
20
- this.areaIds = this.numbersToStringsOrUndefined(input.ae);
21
- return this;
22
- }
23
-
24
13
  public consideringId(id: string): OrganisationSearchFilters {
25
14
  this.organisationId = id;
26
15
  return this;
@@ -41,8 +30,8 @@ export class OrganisationSearchFilters implements IOrganisationSearchFilters {
41
30
  return this;
42
31
  }
43
32
 
44
- public consideringCountryIds(countryIds: string[]): OrganisationSearchFilters {
45
- this.countryIds = countryIds;
33
+ public consideringCountryIsoCodes(countryIsoCodes: string[]): OrganisationSearchFilters {
34
+ this.countryIsoCodes = countryIsoCodes;
46
35
  return this;
47
36
  }
48
37
 
@@ -50,9 +39,4 @@ export class OrganisationSearchFilters implements IOrganisationSearchFilters {
50
39
  this.areaIds = areaIds;
51
40
  return this;
52
41
  }
53
-
54
- private numbersToStringsOrUndefined(values: number[] | undefined): string[] | undefined {
55
- if (values === undefined) return;
56
- return values.map(value => value.toString());
57
- }
58
42
  }
@@ -1,13 +1,4 @@
1
- import { DegreeTypeEnum } from "./DegreeTypeEnum";
2
- import { DeliveryMethodEnum } from "./DeliveryMethodEnum";
1
+ import { IOrganisationSearchFilters } from "./IOrganisationSearchFilters";
2
+ import { ISearchOptions } from "./ISearchOptions";
3
3
 
4
- export type OrganisationSearchInput = {
5
- resultSize: number,
6
- resultOffset: number,
7
- id?: number,
8
- di?: number[],
9
- ci?: number[],
10
- ae?: number[],
11
- lv?: DegreeTypeEnum,
12
- mh?: DeliveryMethodEnum[]
13
- };
4
+ export type OrganisationSearchInput = ISearchOptions & IOrganisationSearchFilters;
@@ -3,6 +3,7 @@ import { IRequestSender, ISuperAgentRequestFactory } from "@studyportals/mb-plat
3
3
  import { IOrganisationCard, OrganisationCardClient } from "@studyportals/domain-client";
4
4
  import { IOrganisationSearchResponse } from "./IOrganisationSearchResponse";
5
5
  import { IModelDescription } from "@studyportals/domain-client/src/i-model-description";
6
+ import { IOrganisationSearchFilters } from "./IOrganisationSearchFilters";
6
7
 
7
8
  export class SearchApiOrganisationClient extends SearchApiClientBase {
8
9
 
@@ -21,7 +22,7 @@ export class SearchApiOrganisationClient extends SearchApiClientBase {
21
22
  this.organisationCardFactory = new OrganisationCardClient("N/A", "N/A", 1);
22
23
  }
23
24
 
24
- public async searchCards(filters: any, resultSize: number, resultOffset: number): Promise<IOrganisationSearchResponse<IOrganisationCard>> {
25
+ public async searchCards(filters: IOrganisationSearchFilters, resultSize: number, resultOffset: number): Promise<IOrganisationSearchResponse<IOrganisationCard>> {
25
26
  const request = this.requestFactory.get(this.constructUri("search"))
26
27
  .query({ ...filters, resultSize, resultOffset });
27
28