Passed
Pull Request — master (#237)
by Daniel
01:35
created

getRegNummer.ts ➔ handler   A

Complexity

Conditions 4

Size

Total Lines 43
Code Lines 35

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 35
dl 0
loc 43
rs 9.0399
c 0
b 0
f 0
cc 4
1
import axios from "axios";
2
import { sanitize } from "isomorphic-dompurify";
3
import { NextApiRequest, NextApiResponse } from "next";
4
import { IStatensVegvesenFullData } from "../scripts/types/typeDefinitions";
5
6
export default async function handler(
7
  req: NextApiRequest,
8
  res: NextApiResponse
9
): Promise<void> {
10
  const { regNummer = "" } = req.query;
11
12
  if (regNummer === undefined) {
13
    res.status(400).json({ error: "Mangler regNummer parameter" });
14
    return;
15
  }
16
17
  const urlToFetch = `https://www.vegvesen.no/ws/no/vegvesen/kjoretoyinfo/kjop/sok-kjennemerke?p_registreringsnummer=${regNummer}`;
18
19
  try {
20
    const response = await axios.get<IStatensVegvesenFullData>(urlToFetch, {
21
      headers: {
22
        "SVV-Authorization": `Apikey ${process.env.SVV_API_KEY}`,
23
        "X-Client-Identifier": "my-app",
24
      },
25
    });
26
27
    if (response.status === 200) {
28
      const {
29
        kjennemerke,
30
        registrering: { forstegangsregistrering, forstegangsregistreringEier },
31
        periodiskKjoretoykontroll: { sistKontrollert },
32
      } = response.data;
33
34
      const sanitizedData = {
35
        kjennemerke: sanitize(kjennemerke),
36
        forstegangsregistreringEier: sanitize(forstegangsregistreringEier),
37
        forstegangsregistrering: sanitize(forstegangsregistrering),
38
        sistKontrollert: sanitize(sistKontrollert),
39
      };
40
41
      res.status(200).json(sanitizedData);
42
    } else {
43
      res.status(500).json({ error: "Feil under henting av data" });
44
    }
45
  } catch (error) {
46
    console.error(error);
47
    res.status(500).json({ error: "Feil under henting av data" });
48
  }
49
}
50