Skip to content

Commit

Permalink
Merge pull request #174 from w3bdesign/162-node-fetch
Browse files Browse the repository at this point in the history
Erstatt Node fetch med Axios
  • Loading branch information
w3bdesign committed Jul 26, 2022
2 parents badc91f + e738829 commit 822759e
Show file tree
Hide file tree
Showing 4 changed files with 178 additions and 46 deletions.
39 changes: 21 additions & 18 deletions api/getRegNummer.ts
Original file line number Diff line number Diff line change
@@ -1,36 +1,39 @@
import fetch from "node-fetch";
import axios from "axios";

import { sanitize } from "isomorphic-dompurify";
import { VercelRequest, VercelResponse } from "@vercel/node";

import { IStatensVegvesenFullData } from "../scripts/types/typeDefinitions";

export default function getRegNummer(
req: VercelRequest,
res: VercelResponse
): void {
const { regNummer = "" } = req.query;
const urlToFetch = `https://www.vegvesen.no/ws/no/vegvesen/kjoretoy/kjoretoyoppslag/v1/kjennemerkeoppslag/kjoretoy/${regNummer}`;
if (regNummer !== undefined) {
fetch(urlToFetch)
.then((response) => response.json())
.then(
({
axios.get<IStatensVegvesenFullData>(urlToFetch).then((response) => {
if (response.status === 200) {
const {
kjennemerke,
registrering: {
forstegangsregistrering,
forstegangsregistreringEier,
},
periodiskKjoretoykontroll: { sistKontrollert },
}) => {
const sanitizedData = {
kjennemerke: sanitize(kjennemerke),
forstegangsregistreringEier: sanitize(forstegangsregistreringEier),
forstegangsregistrering: sanitize(forstegangsregistrering),
sistKontrollert: sanitize(sistKontrollert),
};
res.send(sanitizedData);
}
)
.catch(() => {
return;
});
} = response.data;

const sanitizedData = {
kjennemerke: sanitize(kjennemerke),
forstegangsregistreringEier: sanitize(forstegangsregistreringEier),
forstegangsregistrering: sanitize(forstegangsregistrering),
sistKontrollert: sanitize(sistKontrollert),
};

res.send(sanitizedData);
} else {
res.send({ error: "Feil under henting av data" });
}
});
}
}
125 changes: 99 additions & 26 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,12 @@
"homepage": "https://github.com/w3bdesign/Statens-Vegvesen#readme",
"devDependencies": {
"@popperjs/core": "^2.11.5",
"@types/node": "^18.0.3",
"@types/node": "^18.6.1",
"@types/node-fetch": "^2.6.2",
"@vercel/node": "^2.4.5",
"animate.css": "^4.1.1",
"bootstrap": "^5.2.0",
"node-fetch": "2.6.7",
"axios": "0.27.2",
"node-forge": "1.3.1",
"prettier": "2.7.1",
"sass": "^1.54.0",
Expand Down
56 changes: 56 additions & 0 deletions scripts/types/typeDefinitions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,59 @@ export interface IStatensVegvesenBilData {
// Last time the car had a mandatory roadworthiness test
sistKontrollert: string;
}

export interface IStatensVegvesenFullData {
kjennemerke: string;
understellsnummer: string;
kuid: string;
personligKjennemerke: string | null;
registrering: {
registreringsstatus: string;
registreringsstatusDato: string;
forstegangsregistrering: string;
forstegangsregistreringNorge: string;
forstegangsregistreringEier: string;
avregistrertHosBilforhandler: boolean;
kjennemerkefarge: string;
};
periodiskKjoretoykontroll: { sistKontrollert: string; nesteKontroll: string };
tekniskKjoretoy: {
handelsbetegnelse: string;
typebetegnelse: string;
merke: string;
kjoretoyAvgiftskode: string;
tekniskKode: string;
miljoEuroklasse: null;
sitteplasser: number;
staplasser: null;
oppbygd: boolean;
lengde: number;
bredde: number;
hoyde: null;
lastegenskaper: {
egenvekt: number;
tillattTotalvekt: number;
nyttelast: number;
tillattTilhengervektMedBrems: number;
tillattTilhengervektUtenBrems: number;
tillattVertikalKoplingslast: number;
tillattVogntogvekt: number;
tillattTaklast: number;
};
maksimumHastighet: number;
hybridElektriskKjoretoy: null | boolean;
girkasse: string;
hybridkategori: string;
motorer: string;
karosseri: { farge: string; fargekode: string };
forbrukOgUtslipp: Array<string>;
aksler: {
drivaksler: number;
dekkOgFelger: Array<string>;
aksler: Array<string>;
};
unntak: Array<string>;
};
bruktimport: null | boolean;
vektarsavgiftOppgittGrunnlag: null;
}

1 comment on commit 822759e

@vercel
Copy link

@vercel vercel bot commented on 822759e Jul 26, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.