@studyportals/search-api-interface 3.7.0 → 3.7.1-0
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 +32 -32
- package/src/programmes/IProgrammeSearchFilters.d.ts +2 -0
- package/src/programmes/IProgrammeSearchFilters.js +1 -0
- package/src/programmes/IProgrammeSearchFilters.js.map +1 -1
- package/src/programmes/ProgrammeCardType.d.ts +4 -0
- package/src/programmes/ProgrammeCardType.js +6 -0
- package/src/programmes/ProgrammeCardType.js.map +1 -0
- package/src/programmes/ProgrammeSearchFilters.d.ts +2 -0
- package/src/programmes/ProgrammeSearchFilters.js +2 -0
- package/src/programmes/ProgrammeSearchFilters.js.map +1 -1
- package/src/programmes/ProgrammeSearchInput.d.ts +2 -0
- package/src/programmes/SearchApiProgrammeClient.d.ts +2 -1
- package/src/programmes/SearchApiProgrammeClient.js +14 -0
- package/src/programmes/SearchApiProgrammeClient.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@studyportals/search-api-interface",
|
|
3
|
-
"version": "3.7.0",
|
|
4
|
-
"description": "Typescript library containing resources that facilitate integration with SearchApi",
|
|
5
|
-
"main": "index.js",
|
|
6
|
-
"scripts": {
|
|
7
|
-
"compile": "rm -fR bin && npx tsc",
|
|
8
|
-
"deploy-patch": "npm version patch && npm run deploy",
|
|
9
|
-
"deploy-minor": "npm version minor && npm run deploy",
|
|
10
|
-
"deploy-major": "npm version major && npm run deploy",
|
|
11
|
-
"deploy-beta": "npm version prerelease && npm run prepare-deployment && npm publish ./bin --tag beta",
|
|
12
|
-
"deploy": "npm run prepare-deployment && npm publish ./bin",
|
|
13
|
-
"prepare-deployment": "npm run compile && cp package.json bin/package.json",
|
|
14
|
-
"lint": "eslint . --ext .ts",
|
|
15
|
-
"lint:fix": "eslint . --ext .ts --fix"
|
|
16
|
-
},
|
|
17
|
-
"author": "Seal Team Six",
|
|
18
|
-
"license": "BSD-3-Clause",
|
|
19
|
-
"devDependencies": {
|
|
20
|
-
"@studyportals/code-style": "^1.7.0",
|
|
21
|
-
"@types/superagent": "^4.1.15",
|
|
22
|
-
"@typescript-eslint/eslint-plugin": "^5.27.0",
|
|
23
|
-
"@typescript-eslint/parser": "^5.27.0",
|
|
24
|
-
"eslint": "^8.17.0",
|
|
25
|
-
"typescript": "^5.5.4",
|
|
26
|
-
"typescript-transform-paths": "^3.4.6"
|
|
27
|
-
},
|
|
28
|
-
"dependencies": {
|
|
29
|
-
"@studyportals/domain-client": "^7.
|
|
30
|
-
"@studyportals/search-filters": "^6.3.1"
|
|
31
|
-
}
|
|
32
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@studyportals/search-api-interface",
|
|
3
|
+
"version": "3.7.1-0",
|
|
4
|
+
"description": "Typescript library containing resources that facilitate integration with SearchApi",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"compile": "rm -fR bin && npx tsc",
|
|
8
|
+
"deploy-patch": "npm version patch && npm run deploy",
|
|
9
|
+
"deploy-minor": "npm version minor && npm run deploy",
|
|
10
|
+
"deploy-major": "npm version major && npm run deploy",
|
|
11
|
+
"deploy-beta": "npm version prerelease && npm run prepare-deployment && npm publish ./bin --tag beta",
|
|
12
|
+
"deploy": "npm run prepare-deployment && npm publish ./bin",
|
|
13
|
+
"prepare-deployment": "npm run compile && cp package.json bin/package.json",
|
|
14
|
+
"lint": "eslint . --ext .ts",
|
|
15
|
+
"lint:fix": "eslint . --ext .ts --fix"
|
|
16
|
+
},
|
|
17
|
+
"author": "Seal Team Six",
|
|
18
|
+
"license": "BSD-3-Clause",
|
|
19
|
+
"devDependencies": {
|
|
20
|
+
"@studyportals/code-style": "^1.7.0",
|
|
21
|
+
"@types/superagent": "^4.1.15",
|
|
22
|
+
"@typescript-eslint/eslint-plugin": "^5.27.0",
|
|
23
|
+
"@typescript-eslint/parser": "^5.27.0",
|
|
24
|
+
"eslint": "^8.17.0",
|
|
25
|
+
"typescript": "^5.5.4",
|
|
26
|
+
"typescript-transform-paths": "^3.4.6"
|
|
27
|
+
},
|
|
28
|
+
"dependencies": {
|
|
29
|
+
"@studyportals/domain-client": "^7.6.1-beta.0",
|
|
30
|
+
"@studyportals/search-filters": "^6.3.1"
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AttendanceFilterOptionValue, DegreeTypeFilterOptionValue, EducationLevelFilterOptionValue, EducationalFormFilterOptionValue, SpecialProgrammesFilterOptionValue, DurationFilterOptionValue, FormatFilterOptionValue, FacetOptionValue } from "@studyportals/search-filters/server-side";
|
|
2
2
|
import { ProgrammeSortType } from "./ProgrammeSortType";
|
|
3
3
|
import { TextSearchAlgorithmType } from "../TextSearchAlgorithmType";
|
|
4
|
+
import { ProgrammeCardType } from "./ProgrammeCardType";
|
|
4
5
|
export declare class IProgrammeSearchFilters {
|
|
5
6
|
readonly attendances?: AttendanceFilterOptionValue[];
|
|
6
7
|
readonly degreeTypes?: DegreeTypeFilterOptionValue[];
|
|
@@ -23,6 +24,7 @@ export declare class IProgrammeSearchFilters {
|
|
|
23
24
|
readonly facets?: FacetOptionValue[];
|
|
24
25
|
readonly facetsDurations?: DurationFilterOptionValue[];
|
|
25
26
|
readonly campaignTypes?: string[];
|
|
27
|
+
readonly cardType?: ProgrammeCardType;
|
|
26
28
|
readonly textSearchAlgorithm?: TextSearchAlgorithmType;
|
|
27
29
|
readonly showHidden?: boolean;
|
|
28
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IProgrammeSearchFilters.js","sourceRoot":"","sources":["../../../src/programmes/IProgrammeSearchFilters.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"IProgrammeSearchFilters.js","sourceRoot":"","sources":["../../../src/programmes/IProgrammeSearchFilters.ts"],"names":[],"mappings":"AAcA,MAAM,OAAO,uBAAuB;IAC1B,WAAW,CAAiC;IAC5C,WAAW,CAAiC;IAC5C,WAAW,CAAY;IACvB,SAAS,CAA+B;IACxC,iBAAiB,CAAqC;IACtD,gBAAgB,CAAsC;IAEtD,SAAS,CAA6B;IACtC,IAAI,CAAU;IAEd,OAAO,CAAY;IACnB,SAAS,CAAY;IACrB,eAAe,CAAY;IAC3B,eAAe,CAAY;IAE3B,iBAAiB,CAAwC;IAEzD,aAAa,CAAU;IACvB,aAAa,CAAU;IAEvB,qBAAqB,CAAU;IAE/B,MAAM,CAAoB;IAE1B,cAAc,CAAU;IACxB,MAAM,CAAsB;IAC5B,eAAe,CAA+B;IAC9C,aAAa,CAAY;IACzB,QAAQ,CAAoB;IAC5B,mBAAmB,CAA2B;IAC9C,UAAU,CAAW;CAC9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProgrammeCardType.js","sourceRoot":"","sources":["../../../src/programmes/ProgrammeCardType.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC5B,sCAAiB,CAAA;IACjB,8BAAS,CAAA;AACV,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,QAG5B"}
|
|
@@ -3,6 +3,7 @@ import { ProgrammeSearchInput } from "./ProgrammeSearchInput";
|
|
|
3
3
|
import { AttendanceFilterOptionValue, DegreeTypeFilterOptionValue, DurationFilterOptionValue, EducationalFormFilterOptionValue, EducationLevelFilterOptionValue, FacetOptionValue, SpecialProgrammesFilterOptionValue, FormatFilterOptionValue } from "@studyportals/search-filters/server-side";
|
|
4
4
|
import { ProgrammeSortType } from "./ProgrammeSortType";
|
|
5
5
|
import { TextSearchAlgorithmType } from "../TextSearchAlgorithmType";
|
|
6
|
+
import { ProgrammeCardType } from "./ProgrammeCardType";
|
|
6
7
|
export declare class ProgrammeSearchFilters implements IProgrammeSearchFilters {
|
|
7
8
|
attendances?: AttendanceFilterOptionValue[];
|
|
8
9
|
degreeTypes?: DegreeTypeFilterOptionValue[];
|
|
@@ -24,6 +25,7 @@ export declare class ProgrammeSearchFilters implements IProgrammeSearchFilters {
|
|
|
24
25
|
suggestionSize?: number;
|
|
25
26
|
facets?: FacetOptionValue[];
|
|
26
27
|
facetsDurations?: DurationFilterOptionValue[];
|
|
28
|
+
cardType?: ProgrammeCardType;
|
|
27
29
|
textSearchAlgorithm?: TextSearchAlgorithmType;
|
|
28
30
|
showHidden?: boolean;
|
|
29
31
|
campaignTypes?: string[];
|
|
@@ -20,6 +20,7 @@ export class ProgrammeSearchFilters {
|
|
|
20
20
|
suggestionSize;
|
|
21
21
|
facets;
|
|
22
22
|
facetsDurations;
|
|
23
|
+
cardType;
|
|
23
24
|
textSearchAlgorithm;
|
|
24
25
|
showHidden;
|
|
25
26
|
campaignTypes;
|
|
@@ -44,6 +45,7 @@ export class ProgrammeSearchFilters {
|
|
|
44
45
|
this.suggestionSize = input.suggestionSize;
|
|
45
46
|
this.facets = input.facets;
|
|
46
47
|
this.facetsDurations = input.facetsDurations;
|
|
48
|
+
this.cardType = input.cardType;
|
|
47
49
|
this.textSearchAlgorithm = input.textSearchAlgorithm;
|
|
48
50
|
this.showHidden = input.showHidden;
|
|
49
51
|
this.campaignTypes = input.campaignTypes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProgrammeSearchFilters.js","sourceRoot":"","sources":["../../../src/programmes/ProgrammeSearchFilters.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"ProgrammeSearchFilters.js","sourceRoot":"","sources":["../../../src/programmes/ProgrammeSearchFilters.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AttendanceFilterOptionValue, DegreeTypeFilterOptionValue, DurationFilterOptionValue, EducationLevelFilterOptionValue, EducationalFormFilterOptionValue, SpecialProgrammesFilterOptionValue, FormatFilterOptionValue, FacetOptionValue } from "@studyportals/search-filters/server-side";
|
|
2
2
|
import { ProgrammeSortType } from "./ProgrammeSortType";
|
|
3
3
|
import { TextSearchAlgorithmType } from "../TextSearchAlgorithmType";
|
|
4
|
+
import { ProgrammeCardType } from "./ProgrammeCardType";
|
|
4
5
|
export type ProgrammeSearchInput = {
|
|
5
6
|
attendances?: AttendanceFilterOptionValue[];
|
|
6
7
|
degreeTypes?: DegreeTypeFilterOptionValue[];
|
|
@@ -22,6 +23,7 @@ export type ProgrammeSearchInput = {
|
|
|
22
23
|
suggestionSize?: number;
|
|
23
24
|
facets?: FacetOptionValue[];
|
|
24
25
|
facetsDurations?: DurationFilterOptionValue[];
|
|
26
|
+
cardType?: ProgrammeCardType;
|
|
25
27
|
textSearchAlgorithm?: TextSearchAlgorithmType;
|
|
26
28
|
campaignTypes?: string[];
|
|
27
29
|
showHidden?: boolean;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SearchApiClientBase } from "../SearchApiClientBase";
|
|
2
2
|
import { IRequestSender, ISuperAgentRequestFactory } from "@studyportals/mb-platform-http-requests";
|
|
3
|
-
import { IProgrammeCard, PortalMap } from "@studyportals/domain-client";
|
|
3
|
+
import { IProgrammeCard, PortalMap, ProgrammeCard } from "@studyportals/domain-client";
|
|
4
4
|
import { IProgrammeSearchResponse } from "./IProgrammeSearchResponse";
|
|
5
5
|
import { IProgrammeResult } from "./IProgrammeResult";
|
|
6
6
|
import { IProgrammeSearchFilters } from "./IProgrammeSearchFilters";
|
|
@@ -10,5 +10,6 @@ export declare class SearchApiProgrammeClient extends SearchApiClientBase {
|
|
|
10
10
|
private readonly programmeCardFactory;
|
|
11
11
|
constructor(apiUriBase: string, requestFactory: ISuperAgentRequestFactory, requestSender: IRequestSender, portalMap?: PortalMap);
|
|
12
12
|
searchCards(filters: IProgrammeSearchFilters, resultSize: number, resultOffset: number): Promise<IProgrammeSearchResponse<IProgrammeResult<IProgrammeCard>>>;
|
|
13
|
+
searchCardsV2(filters: IProgrammeSearchFilters, resultSize: number, resultOffset: number): Promise<IProgrammeSearchResponse<IProgrammeResult<ProgrammeCard>>>;
|
|
13
14
|
searchIds(filters: any, resultSize: number, resultOffset: number): Promise<IProgrammeSearchResponse<string>>;
|
|
14
15
|
}
|
|
@@ -24,6 +24,20 @@ export class SearchApiProgrammeClient extends SearchApiClientBase {
|
|
|
24
24
|
facets: result.facets ?? []
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
|
+
async searchCardsV2(filters, resultSize, resultOffset) {
|
|
28
|
+
const request = this.requestFactory.get(this.constructUri("search"))
|
|
29
|
+
.query({ ...filters, resultSize, resultOffset });
|
|
30
|
+
const result = await this.requestSender.sendAndExtractBody(request);
|
|
31
|
+
const programmeResults = result.programmes.map(result => ({
|
|
32
|
+
card: result.card,
|
|
33
|
+
is_premium: result.is_premium
|
|
34
|
+
}));
|
|
35
|
+
return {
|
|
36
|
+
...result,
|
|
37
|
+
programmes: programmeResults,
|
|
38
|
+
facets: result.facets ?? []
|
|
39
|
+
};
|
|
40
|
+
}
|
|
27
41
|
async searchIds(filters, resultSize, resultOffset) {
|
|
28
42
|
const request = this.requestFactory.get(this.constructUri("search/ids"))
|
|
29
43
|
.query({ ...filters, resultSize, resultOffset });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchApiProgrammeClient.js","sourceRoot":"","sources":["../../../src/programmes/SearchApiProgrammeClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,wBAAwB,CAAC;AAE3D,OAAO,
|
|
1
|
+
{"version":3,"file":"SearchApiProgrammeClient.js","sourceRoot":"","sources":["../../../src/programmes/SearchApiProgrammeClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAA4C,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAM5G,MAAM,OAAO,wBAAyB,SAAQ,mBAAmB;IAE/C,cAAc,CAA4B;IAC1C,aAAa,CAAiB;IAC9B,oBAAoB,GAAG,IAAI,mBAAmB,EAAE,CAAC;IAElE,YAAmB,UAAkB,EAC9B,cAAyC,EACzC,aAA6B,EAC7B,SAAqB;QAE3B,KAAK,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAEhC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,oBAAoB,GAAG,IAAI,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;IACjF,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,OAAgC,EAAE,UAAkB,EAAE,YAAoB;QAClG,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;aAClE,KAAK,CAAC,EAAC,GAAG,OAAO,EAAE,UAAU,EAAE,YAAY,EAAC,CAAC,CAAC;QAEhD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAgE,OAAO,CAAC,CAAC;QACnI,MAAM,gBAAgB,GAAgD,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACtG,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC;YAC5D,UAAU,EAAE,MAAM,CAAC,UAAU;SAC7B,CAAC,CAAC,CAAC;QAEJ,OAAO;YACN,GAAG,MAAM;YACT,UAAU,EAAE,gBAAgB;YAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;SAC3B,CAAA;IACF,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,OAAgC,EAAE,UAAkB,EAAE,YAAoB;QACpG,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;aAClE,KAAK,CAAC,EAAC,GAAG,OAAO,EAAE,UAAU,EAAE,YAAY,EAAC,CAAC,CAAC;QAEhD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAA4D,OAAO,CAAC,CAAC;QAC/H,MAAM,gBAAgB,GAA+C,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACrG,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,UAAU,EAAE,MAAM,CAAC,UAAU;SAC7B,CAAC,CAAC,CAAC;QAEJ,OAAO;YACN,GAAG,MAAM;YACT,UAAU,EAAE,gBAAgB;YAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;SAC3B,CAAA;IACF,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,OAAY,EAAE,UAAkB,EAAE,YAAoB;QAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;aACtE,KAAK,CAAC,EAAC,GAAG,OAAO,EAAE,UAAU,EAAE,YAAY,EAAC,CAAC,CAAC;QAEhD,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAmC,OAAO,CAAC,CAAC;IAC/F,CAAC;CACD"}
|