@coscine/api-client 3.25.0 → 3.26.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/README.md +130 -2
- package/dist/index.js +8822 -5126
- package/dist/types/Coscine.Api/@coscine/api/admin-api.d.ts +52 -74
- package/dist/types/Coscine.Api/@coscine/api/application-profile-api.d.ts +18 -34
- package/dist/types/Coscine.Api/@coscine/api/blob-api.d.ts +24 -19
- package/dist/types/Coscine.Api/@coscine/api/data-hamster-report-api.d.ts +11 -24
- package/dist/types/Coscine.Api/@coscine/api/discipline-api.d.ts +24 -30
- package/dist/types/Coscine.Api/@coscine/api/graph-api.d.ts +242 -0
- package/dist/types/Coscine.Api/@coscine/api/graph-metadata-api.d.ts +257 -0
- package/dist/types/Coscine.Api/@coscine/api/graph-metadata-content-api.d.ts +182 -0
- package/dist/types/Coscine.Api/@coscine/api/handle-api.d.ts +7 -19
- package/dist/types/Coscine.Api/@coscine/api/language-api.d.ts +16 -28
- package/dist/types/Coscine.Api/@coscine/api/license-api.d.ts +16 -28
- package/dist/types/Coscine.Api/@coscine/api/maintenance-api.d.ts +6 -17
- package/dist/types/Coscine.Api/@coscine/api/notification-api.d.ts +16 -28
- package/dist/types/Coscine.Api/@coscine/api/organization-api.d.ts +16 -29
- package/dist/types/Coscine.Api/@coscine/api/pid-api.d.ts +17 -30
- package/dist/types/Coscine.Api/@coscine/api/project-api.d.ts +19 -33
- package/dist/types/Coscine.Api/@coscine/api/project-invitation-api.d.ts +18 -31
- package/dist/types/Coscine.Api/@coscine/api/project-member-api.d.ts +60 -33
- package/dist/types/Coscine.Api/@coscine/api/project-publication-request-api.d.ts +7 -19
- package/dist/types/Coscine.Api/@coscine/api/project-quota-api.d.ts +17 -30
- package/dist/types/Coscine.Api/@coscine/api/project-resource-api.d.ts +19 -33
- package/dist/types/Coscine.Api/@coscine/api/project-resource-quota-api.d.ts +6 -17
- package/dist/types/Coscine.Api/@coscine/api/project-resource-type-api.d.ts +6 -17
- package/dist/types/Coscine.Api/@coscine/api/project-sub-projects-api.d.ts +15 -26
- package/dist/types/Coscine.Api/@coscine/api/provenance-api.d.ts +7 -19
- package/dist/types/Coscine.Api/@coscine/api/publication-advisory-service-api.d.ts +15 -27
- package/dist/types/Coscine.Api/@coscine/api/report-api.d.ts +11 -22
- package/dist/types/Coscine.Api/@coscine/api/resource-api.d.ts +6 -17
- package/dist/types/Coscine.Api/@coscine/api/resource-type-api.d.ts +7 -19
- package/dist/types/Coscine.Api/@coscine/api/resource-type-git-lab-api.d.ts +8 -21
- package/dist/types/Coscine.Api/@coscine/api/role-api.d.ts +16 -28
- package/dist/types/Coscine.Api/@coscine/api/search-api.d.ts +15 -27
- package/dist/types/Coscine.Api/@coscine/api/self-api-token-api.d.ts +18 -31
- package/dist/types/Coscine.Api/@coscine/api/self-api.d.ts +14 -31
- package/dist/types/Coscine.Api/@coscine/api/self-session-api.d.ts +8 -19
- package/dist/types/Coscine.Api/@coscine/api/storage-api.d.ts +248 -0
- package/dist/types/Coscine.Api/@coscine/api/storage-content-api.d.ts +232 -0
- package/dist/types/Coscine.Api/@coscine/api/system-status-api.d.ts +28 -41
- package/dist/types/Coscine.Api/@coscine/api/title-api.d.ts +16 -28
- package/dist/types/Coscine.Api/@coscine/api/tos-api.d.ts +6 -17
- package/dist/types/Coscine.Api/@coscine/api/tree-api.d.ts +63 -50
- package/dist/types/Coscine.Api/@coscine/api/user-api.d.ts +6 -17
- package/dist/types/Coscine.Api/@coscine/api/user-notification-opt-out-api.d.ts +18 -31
- package/dist/types/Coscine.Api/@coscine/api/visibility-api.d.ts +16 -28
- package/dist/types/Coscine.Api/@coscine/api/vocabulary-api.d.ts +24 -38
- package/dist/types/Coscine.Api/@coscine/model/activity-log-dto-paged-response.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/api-token-dto-paged-response.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/api-token-dto-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/api-token-dto.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/application-profile-dto-paged-response.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/application-profile-dto-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/application-profile-dto.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/application-profile-for-creation-dto-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/application-profile-for-creation-dto.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/create-datasource-dto-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/data-hamster-kpi-dto-ienumerable-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/data-hamster-kpi-dto-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/data-storage-nrw-s3-options-dto.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/data-storage-nrw-s3-resource-type-options-for-manipulation-dto.d.ts +3 -14
- package/dist/types/Coscine.Api/@coscine/model/data-storage-nrw-s3-worm-options-dto.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/data-storage-nrw-s3-worm-resource-type-options-for-manipulation-dto.d.ts +3 -14
- package/dist/types/Coscine.Api/@coscine/model/data-storage-nrw-web-options-dto.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/data-storage-nrw-web-resource-type-options-for-manipulation-dto.d.ts +3 -14
- package/dist/types/Coscine.Api/@coscine/model/deployed-graph-dto-paged-response.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/discipline-dto-paged-response.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/discipline-dto-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/extracted-metadata-tree-for-creation-dto.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/extracted-metadata-tree-for-update-dto.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/file-action-dto.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/file-actions-dto.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/file-tree-dto-paged-response.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/file-tree-dto.d.ts +3 -14
- package/dist/types/Coscine.Api/@coscine/model/fixed-value-for-resource-manipulation-dto.d.ts +1 -1
- package/dist/types/Coscine.Api/@coscine/model/gitlab-branch-dto-ienumerable-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/gitlab-project-dto-ienumerable-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/gitlab-project-dto-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/handle-dto-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/handle-dto.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/handle-for-update-dto.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/index.d.ts +8 -0
- package/dist/types/Coscine.Api/@coscine/model/language-dto-ienumerable-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/language-dto-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/license-dto-paged-response.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/license-dto-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/maintenance-dto-paged-response.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/message-dto-ienumerable-response.d.ts +7 -0
- package/dist/types/Coscine.Api/@coscine/model/message-dto-paged-response.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/message-dto.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/metadata-tree-dto-paged-response.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/metadata-tree-dto-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/metadata-tree-dto.d.ts +5 -16
- package/dist/types/Coscine.Api/@coscine/model/metadata-tree-extracted-dto.d.ts +3 -14
- package/dist/types/Coscine.Api/@coscine/model/metadata-tree-for-creation-dto.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/metadata-tree-for-update-dto.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/metadata-update-admin-parameters.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/metadata-version-node-dto-paged-response.d.ts +9 -0
- package/dist/types/Coscine.Api/@coscine/model/metadata-version-node-dto-response.d.ts +7 -0
- package/dist/types/Coscine.Api/@coscine/model/metadata-version-node-dto.d.ts +21 -0
- package/dist/types/Coscine.Api/@coscine/model/notification-dto-paged-response.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/notification-dto-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/organization-dto-paged-response.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/organization-dto-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/organization-dto.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/pid-dto-paged-response.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/pid-dto-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/pid-dto.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/project-admin-dto-paged-response.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/project-admin-dto.d.ts +10 -21
- package/dist/types/Coscine.Api/@coscine/model/project-dto-paged-response.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/project-dto-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/project-dto.d.ts +5 -16
- package/dist/types/Coscine.Api/@coscine/model/project-for-creation-dto.d.ts +3 -14
- package/dist/types/Coscine.Api/@coscine/model/project-for-update-dto.d.ts +3 -14
- package/dist/types/Coscine.Api/@coscine/model/project-invitation-dto-paged-response.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/project-invitation-dto-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/project-invitation-dto.d.ts +3 -14
- package/dist/types/Coscine.Api/@coscine/model/project-organization-dto.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/project-publication-request-dto-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/project-publication-request-dto.d.ts +3 -14
- package/dist/types/Coscine.Api/@coscine/model/project-quota-dto-paged-response.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/project-quota-dto-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/project-quota-dto.d.ts +3 -14
- package/dist/types/Coscine.Api/@coscine/model/project-quota-for-update-dto.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/project-role-dto-paged-response.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/project-role-dto-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/project-role-dto.d.ts +3 -14
- package/dist/types/Coscine.Api/@coscine/model/provenance-dto-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/provenance-dto.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/provenance-for-update-dto.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/provenance-parameters-dto.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/public-user-dto-ienumerable-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/public-user-dto.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/publication-advisory-service-dto-paged-response.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/quota-dto.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/quota-for-manipulation-dto.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/rdf-definition-dto-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/rdf-definition-for-manipulation-dto.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/rdf-patch-document-dto.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/rdf-patch-operation-dto.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/rds-options-dto.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/rds-resource-type-options-for-manipulation-dto.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/rds-s3-options-dto.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/rds-s3-resource-type-options-for-manipulation-dto.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/rds-s3-worm-options-dto.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/rds-s3-worm-resource-type-options-for-manipulation-dto.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/resource-admin-dto-paged-response.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/resource-admin-dto.d.ts +10 -21
- package/dist/types/Coscine.Api/@coscine/model/resource-content-page-dto.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/resource-content-page-entries-view-dto.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/resource-dto-paged-response.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/resource-dto-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/resource-dto.d.ts +8 -19
- package/dist/types/Coscine.Api/@coscine/model/resource-for-creation-dto.d.ts +6 -17
- package/dist/types/Coscine.Api/@coscine/model/resource-for-update-dto.d.ts +5 -16
- package/dist/types/Coscine.Api/@coscine/model/resource-quota-dto-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/resource-quota-dto.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/resource-type-dto.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/resource-type-information-dto-ienumerable-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/resource-type-information-dto-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/resource-type-information-dto.d.ts +3 -14
- package/dist/types/Coscine.Api/@coscine/model/resource-type-options-dto.d.ts +8 -19
- package/dist/types/Coscine.Api/@coscine/model/resource-type-options-for-creation-dto.d.ts +7 -18
- package/dist/types/Coscine.Api/@coscine/model/resource-type-options-for-update-dto.d.ts +7 -18
- package/dist/types/Coscine.Api/@coscine/model/role-dto-paged-response.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/role-dto-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/search-result-dto-paged-search-response.d.ts +3 -14
- package/dist/types/Coscine.Api/@coscine/model/search-result-dto.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/storage-data-hamster-kpi-dto-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/storage-data-hamster-kpi-dto.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/storage-node-dto-paged-response.d.ts +9 -0
- package/dist/types/Coscine.Api/@coscine/model/storage-node-dto-response.d.ts +7 -0
- package/dist/types/Coscine.Api/@coscine/model/storage-node-dto.d.ts +17 -0
- package/dist/types/Coscine.Api/@coscine/model/storage-node-links.d.ts +30 -0
- package/dist/types/Coscine.Api/@coscine/model/terms-of-service-dto-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/title-dto-ienumerable-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/title-dto-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/user-dto-paged-response.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/user-dto-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/user-dto.d.ts +7 -18
- package/dist/types/Coscine.Api/@coscine/model/user-for-update-dto.d.ts +3 -14
- package/dist/types/Coscine.Api/@coscine/model/user-merge-dto-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/user-notification-opt-out-dto-paged-response.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/user-notification-opt-out-dto-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/user-organization-dto.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/user-project-role-count-dto-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/visibility-dto-paged-response.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/visibility-dto-response.d.ts +1 -12
- package/dist/types/Coscine.Api/@coscine/model/vocabulary-dto-paged-response.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/vocabulary-instance-dto-paged-response.d.ts +2 -13
- package/dist/types/Coscine.Api/@coscine/model/vocabulary-instance-dto-response.d.ts +1 -12
- package/dist/types/Coscine.Api/api.d.ts +5 -0
- package/dist/types/Coscine.Api/base.d.ts +2 -13
- package/dist/types/Coscine.Api/common.d.ts +5 -16
- package/dist/types/Coscine.Api/index.d.ts +3 -3
- package/dist/types/Coscine.Api.STS/@coscine/api/account-api.d.ts +4 -15
- package/dist/types/Coscine.Api.STS/@coscine/api/home-api.d.ts +3 -14
- package/dist/types/Coscine.Api.STS/@coscine/api/merge-api.d.ts +4 -15
- package/dist/types/Coscine.Api.STS/@coscine/api/orci-dapi.d.ts +4 -15
- package/dist/types/Coscine.Api.STS/@coscine/api/shibboleth-api.d.ts +4 -15
- package/dist/types/Coscine.Api.STS/@coscine/model/login-urls.d.ts +0 -11
- package/dist/types/Coscine.Api.STS/base.d.ts +2 -13
- package/dist/types/Coscine.Api.STS/common.d.ts +4 -15
- package/dist/types/Coscine.Api.STS/index.d.ts +3 -3
- package/dist/types/apis.d.ts +211 -177
- package/dist/types/axios-basic.d.ts +1 -1
- package/dist/types/index.d.ts +426 -352
- package/dist/types/testing.d.ts +46 -0
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -8,6 +8,127 @@ The API Client library for JavaScript clients contains generated API connection
|
|
|
8
8
|
|
|
9
9
|
## 📖 Usage
|
|
10
10
|
|
|
11
|
+
### Customize Axios (interceptors, headers)
|
|
12
|
+
The library offers two ways to customize Axios behavior:
|
|
13
|
+
1) Reuse the shared instance that powers the default API exports.
|
|
14
|
+
2) Provide your own Axios instance when creating APIs.
|
|
15
|
+
|
|
16
|
+
Choose the shared instance if you want all default exports (e.g. `AccountApi`) to pick up your interceptors automatically. Use a custom instance if you need isolated behavior, different base config, or multiple clients in the same app.
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
import { apiClientAxios, AccountApi } from '@coscine/api-client';
|
|
20
|
+
|
|
21
|
+
apiClientAxios.interceptors.request.use((config) => {
|
|
22
|
+
// add headers/logging/etc
|
|
23
|
+
return config;
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
// Default exports use the shared instance, so interceptors apply here.
|
|
27
|
+
AccountApi.someCall();
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
```ts
|
|
31
|
+
import axios from 'axios';
|
|
32
|
+
import { createApis } from '@coscine/api-client';
|
|
33
|
+
|
|
34
|
+
const customAxios = axios.create({ withCredentials: true });
|
|
35
|
+
customAxios.interceptors.request.use((config) => config);
|
|
36
|
+
|
|
37
|
+
// APIs created this way use only your instance.
|
|
38
|
+
const apis = createApis(customAxios);
|
|
39
|
+
apis.AccountApi.someCall();
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Playwright-friendly endpoint matching
|
|
43
|
+
For tests, you can resolve the exact endpoint path behind a generated API method without manual hardcoding.
|
|
44
|
+
|
|
45
|
+
```ts
|
|
46
|
+
import { apiParamCreators, describeEndpoint, makeRequestMatcher } from '@coscine/api-client';
|
|
47
|
+
|
|
48
|
+
const endpoint = await describeEndpoint(
|
|
49
|
+
apiParamCreators.SelfApiAxiosParamCreator().getCurrentUser()
|
|
50
|
+
);
|
|
51
|
+
const isGetCurrentUser = makeRequestMatcher(endpoint);
|
|
52
|
+
|
|
53
|
+
await page.route('**/*', (route) => {
|
|
54
|
+
if (isGetCurrentUser(route.request())) {
|
|
55
|
+
return route.fulfill({ status: 200, json: userFixture });
|
|
56
|
+
}
|
|
57
|
+
return route.continue();
|
|
58
|
+
});
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
#### Example: mock API + waitForResponse helpers
|
|
62
|
+
This pattern builds request/response matchers from `testing.ts` helpers and reuses them for routing and `waitForResponse`.
|
|
63
|
+
|
|
64
|
+
```ts
|
|
65
|
+
import type { Page, Response, Route } from '@playwright/test';
|
|
66
|
+
import {
|
|
67
|
+
apiParamCreators,
|
|
68
|
+
describeEndpoint,
|
|
69
|
+
makeRequestMatcher
|
|
70
|
+
} from '@coscine/api-client';
|
|
71
|
+
|
|
72
|
+
type ApiMockData = {
|
|
73
|
+
projects?: unknown[];
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
const jsonHandler = (status: number, data: unknown) => (route: Route) =>
|
|
77
|
+
route.fulfill({ status, json: data });
|
|
78
|
+
|
|
79
|
+
export async function createResponseMatchers(basePath?: string) {
|
|
80
|
+
const endpoints = await Promise.all([
|
|
81
|
+
describeEndpoint(apiParamCreators.ProjectApiAxiosParamCreator().getProjects(), basePath),
|
|
82
|
+
]);
|
|
83
|
+
|
|
84
|
+
const [projectsMatcher] = endpoints.map(makeRequestMatcher);
|
|
85
|
+
|
|
86
|
+
return {
|
|
87
|
+
isGetProjects: (res: Response) => projectsMatcher(res.request()) && res.status() === 200,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export async function createMockDefinitions(data: ApiMockData = {}, basePath?: string) {
|
|
92
|
+
const mocks = [
|
|
93
|
+
{
|
|
94
|
+
endpoint: apiParamCreators.ProjectApiAxiosParamCreator().getProjects(),
|
|
95
|
+
handler: jsonHandler(200, { data: data.projects ?? [] }),
|
|
96
|
+
},
|
|
97
|
+
];
|
|
98
|
+
|
|
99
|
+
const endpoints = await Promise.all(
|
|
100
|
+
mocks.map((m) => describeEndpoint(m.endpoint, basePath))
|
|
101
|
+
);
|
|
102
|
+
|
|
103
|
+
return mocks.map((mock, i) => ({
|
|
104
|
+
matcher: makeRequestMatcher(endpoints[i]),
|
|
105
|
+
handler: mock.handler,
|
|
106
|
+
}));
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
export async function mockApi(page: Page, data: ApiMockData = {}, basePath?: string) {
|
|
110
|
+
const [mocks, matchers] = await Promise.all([
|
|
111
|
+
createMockDefinitions(data, basePath),
|
|
112
|
+
createResponseMatchers(basePath),
|
|
113
|
+
]);
|
|
114
|
+
|
|
115
|
+
await page.route('**/api/**', (route) => {
|
|
116
|
+
for (const mock of mocks) {
|
|
117
|
+
if (mock.matcher(route.request())) {
|
|
118
|
+
return mock.handler(route);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return route.fulfill({ status: 404, json: { message: 'Unhandled' } });
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
return matchers;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// Usage:
|
|
128
|
+
// const { isGetProjects } = await mockApi(page, { projects: [] }, 'https://coscine.test/coscine');
|
|
129
|
+
// await Promise.all([page.waitForResponse(isGetProjects), page.goto('/')]);
|
|
130
|
+
```
|
|
131
|
+
|
|
11
132
|
### How to generate a new API Client library version
|
|
12
133
|
* Start the API on the branch with the changes you want to see in the API Client library
|
|
13
134
|
* Open the API Client library with SSH (not in a Container) on a new branch
|
|
@@ -27,11 +148,18 @@ The API Client library for JavaScript clients contains generated API connection
|
|
|
27
148
|
* `yarn build`
|
|
28
149
|
|
|
29
150
|
### Testing
|
|
30
|
-
* `yarn test`
|
|
151
|
+
* `yarn test` (recommended with Yarn PnP)
|
|
31
152
|
|
|
32
153
|
### Linting
|
|
33
154
|
* `yarn lint:fix`
|
|
34
155
|
|
|
156
|
+
### VS Code + Yarn PnP
|
|
157
|
+
If you see missing module errors in VS Code (e.g., `Cannot find module 'axios'`), install deps and the Yarn SDKs:
|
|
158
|
+
* `yarn install`
|
|
159
|
+
* `yarn dlx @yarnpkg/sdks vscode`
|
|
160
|
+
|
|
161
|
+
Then in VS Code: restart the TypeScript server and select the workspace TypeScript version.
|
|
162
|
+
|
|
35
163
|
### Links
|
|
36
164
|
Bundles the output of [CodeGen](https://git.rwth-aachen.de/coscine/backend/scripts/codegen).
|
|
37
165
|
|
|
@@ -62,5 +190,5 @@ By following these simple steps, you can get the support you need to use Coscine
|
|
|
62
190
|
|
|
63
191
|
## 📦 Release & Changelog
|
|
64
192
|
|
|
65
|
-
External users can find the _Releases and Changelog_ inside each project's repository. The repository contains a section for Releases (`Deployments > Releases`), where users can find the latest release changelog and source.
|
|
193
|
+
External users can find the _Releases and Changelog_ inside each project's repository. The repository contains a section for Releases (`Deployments > Releases`), where users can find the latest release changelog and source. Within the Changelog you can find a list of all the changes made in that particular release and version.
|
|
66
194
|
By regularly checking for new releases and changes in the Changelog, you can stay up-to-date with the latest improvements and bug fixes by our team and community!
|