Refactor model transformers and test helpers to use payload interfaces instead of 'any'
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 42/100
- Issue-Typ
- Refactoring
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- typescript
- Bereich
- api
Rechercherichtung
Es werden keine Dateien oder Tests genannt. Beginne damit, die Modell-Transformer und Test-Helper zu finden, die any verwenden, und vergleiche dann den Payload-Model-Ansatz in Pull Request #107. Fertig ist die Aufgabe, wenn die relevanten Payload-Werte explizite Interfaces anstelle von any verwenden und die bestehenden Tests weiterhin bestehen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Overview of the Feature Request
Refactor model transformers and test helpers to use payload interfaces instead of 'any'
Example
Use a payload model like:
export interface DatasetPreviewPayload {
global_id: string;
name: string;
versionId: number;
majorVersion: number;
minorVersion: number;
versionState: string;
createdAt: string;
updatedAt: string;
published_at?: string;
citation: string;
description: string;
}
export const transformDatasetPreviewsResponseToPreviews = (response: AxiosResponse): DatasetPreview[] => {
const datasetPreviews: DatasetPreview[] = [];
const datasetPreviewsPayload = response.data.data.items;
datasetPreviewsPayload.forEach(function (datasetPreviewPayload: DatasetPreviewPayload) {
datasetPreviews.push(transformDatasetPreviewPayloadToDatasetPreview(datasetPreviewPayload));
});
return datasetPreviews;
};
const transformDatasetPreviewPayloadToDatasetPreview = (
datasetPreviewPayload: DatasetPreviewPayload,
): DatasetPreview => {
return {
persistentId: datasetPreviewPayload.global_id,
title: datasetPreviewPayload.name,
versionId: datasetPreviewPayload.versionId,
versionInfo: {
majorNumber: datasetPreviewPayload.majorVersion,
minorNumber: datasetPreviewPayload.minorVersion,
state: datasetPreviewPayload.versionState as DatasetVersionState,
createTime: new Date(datasetPreviewPayload.createdAt),
lastUpdateTime: new Date(datasetPreviewPayload.updatedAt),
...(datasetPreviewPayload.published_at && { releaseTime: new Date(datasetPreviewPayload.published_at) }),
},
citation: datasetPreviewPayload.citation,
description: datasetPreviewPayload.description,
};
};
Instead of
export const transformDatasetPreviewsResponseToPreviews = (response: AxiosResponse): DatasetPreview[] => {
const datasetPreviews: DatasetPreview[] = [];
const datasetPreviewsPayload = response.data.data.items;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
datasetPreviewsPayload.forEach(function (datasetPreviewPayload: any) {
datasetPreviews.push(transformDatasetPreviewPayloadToDatasetPreview(datasetPreviewPayload));
});
return datasetPreviews;
};
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const transformDatasetPreviewPayloadToDatasetPreview = (datasetPreviewPayload: any): DatasetPreview => {
return {
persistentId: datasetPreviewPayload.global_id,
title: datasetPreviewPayload.name,
versionId: datasetPreviewPayload.versionId,
versionInfo: {
majorNumber: datasetPreviewPayload.majorVersion,
minorNumber: datasetPreviewPayload.minorVersion,
state: datasetPreviewPayload.versionState as DatasetVersionState,
createTime: new Date(datasetPreviewPayload.createdAt),
lastUpdateTime: new Date(datasetPreviewPayload.updatedAt),
...(datasetPreviewPayload.published_at && { releaseTime: new Date(datasetPreviewPayload.published_at) }),
},
citation: datasetPreviewPayload.citation,
description: datasetPreviewPayload.description,
};
};
What kind of user is the feature intended for?
Developer
What inspired the request?
What existing behavior do you want changed?
None
Any brand new behavior do you want to add to Dataverse?
None
Any open or closed issues related to this feature request?
- https://github.com/IQSS/dataverse-client-javascript/pull/107 (First time we introduce payload models to avoid 'any')
- Vorherrschende Sprache
- TypeScript
- Sterne
- 20
- Forks
- 11
- Ø Merge
- 4 T. 9 Std.
- Gemergte PRs (30 T.)
- 3
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus IQSS/dataverse-client-javascript
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
IQSS/dataverse-client-javascript#477 · 1 Kommentar ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
IQSS/dataverse-client-javascript#476 · 4 Kommentare ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
IQSS/dataverse-client-javascript#465 · 1 Kommentar · 2 Reaktionen ·
-
GREI Re-arch
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
-
Add use cases for dataset curation status and submit for reviewEvtl. vergeben @ChengShi-1 hat das vor 4 Tagen übernommen. OffenFY27 Sprint 8 Size: 10 SPA
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 72/100
IQSS/dataverse-client-javascript#493 · 1 zugewiesene Person ·
Alle Issues in IQSS/dataverse-client-javascript
Ähnliche Issues
-
Bayern feature:Application ready web
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 67/100
digitalfabrik/entitlementcard#3176 ·
Maintainer antworten meist innerhalb von 7 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
NanmiCoder/cc-haha#1533 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
Maintainer antworten meist innerhalb von 1 Tag
-
🐛 Bug: Calendar work items cannot be opened on mobileEvtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offen
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 75/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 92/100