Skip to content

Commit

Permalink
Merge pull request #1 from Wiklem/main
Browse files Browse the repository at this point in the history
Lagt til bedre håndtering av skilttyper og forbedret router
  • Loading branch information
storbukas authored Feb 21, 2021
2 parents aebd18c + 4ed8224 commit 0353280
Show file tree
Hide file tree
Showing 4 changed files with 176 additions and 124 deletions.
136 changes: 73 additions & 63 deletions src/fargekoder.ts
Original file line number Diff line number Diff line change
@@ -1,63 +1,73 @@
export interface FargeKode {
skiltrammeFarge: string;
skiltBakgrunnsfarge: string;
flaggBakgrunnsfarge: string;
tekstFarge: string;
}

export const VANLIG_SKILT: FargeKode = {
skiltrammeFarge: "000000",
skiltBakgrunnsfarge: "FFFFFF",
flaggBakgrunnsfarge: "003399",
tekstFarge: "000000"
}

export const VANLIG_SKILT_SVART_FLAGGBÅND: FargeKode = {
skiltrammeFarge: "000000",
skiltBakgrunnsfarge: "FFFFFF",
flaggBakgrunnsfarge: "000000",
tekstFarge: "000000"
}

export const VAREBIL_SKILT: FargeKode = {
skiltrammeFarge: "000000",
skiltBakgrunnsfarge: "019460",
flaggBakgrunnsfarge: "003399",
tekstFarge: "000000"
}

export const SVALBARD_SKILT: FargeKode = {
skiltrammeFarge: "FFD51F",
skiltBakgrunnsfarge: "000000",
flaggBakgrunnsfarge: "003399",
tekstFarge: "FFD51F"
}

export const AMBASSADE_SKILT: FargeKode = {
skiltrammeFarge: "FE7400",
skiltBakgrunnsfarge: "1A85FF",
flaggBakgrunnsfarge: "003399",
tekstFarge: "FE7400"
}

export const MILITÆR_SKILT: FargeKode = {
skiltrammeFarge: "000000",
skiltBakgrunnsfarge: "FFD51F",
flaggBakgrunnsfarge: "003399",
tekstFarge: "000000"
}

export const RALLY_SKILT: FargeKode = {
skiltrammeFarge: "FFFFFF",
skiltBakgrunnsfarge: "000000",
flaggBakgrunnsfarge: "003399",
tekstFarge: "FFFFFF"
}

export const settFarger = (fil: any, fargeKode: FargeKode): any => {
return fil.replace("SKILTRAMME_FARGE", fargeKode.skiltrammeFarge)
.replace("SKILT_BAKGRUNNSFARGE", fargeKode.skiltBakgrunnsfarge)
.replace("FLAGG_BAKGRUNNSFARGE", fargeKode.flaggBakgrunnsfarge)
.replace("TEKST_FARGE", fargeKode.tekstFarge)
.replace("TEKST_FARGE", fargeKode.tekstFarge);
}
import { IFargeKode, SkiltType } from "./skiltTyper";

const VelgFargekode = (skiltType: SkiltType): IFargeKode => {
switch (skiltType) {
case SkiltType.ambassade:
return AMBASSADE_SKILT;
case SkiltType.militaer:
return MILITÆR_SKILT;
case SkiltType.rally:
return RALLY_SKILT;
case SkiltType.svalbard:
return SVALBARD_SKILT;
case SkiltType.varebil:
return VAREBIL_SKILT;
case SkiltType.vanlig:
return VANLIG_SKILT;
case SkiltType.svart:
return VANLIG_SKILT_SVART_FLAGGBÅND;
default:
return VANLIG_SKILT;
}
};

const VANLIG_SKILT: IFargeKode = {
skiltrammeFarge: "000000",
skiltBakgrunnsfarge: "FFFFFF",
flaggBakgrunnsfarge: "003399",
tekstFarge: "000000",
};

const VANLIG_SKILT_SVART_FLAGGBÅND: IFargeKode = {
skiltrammeFarge: "000000",
skiltBakgrunnsfarge: "FFFFFF",
flaggBakgrunnsfarge: "000000",
tekstFarge: "000000",
};

const VAREBIL_SKILT: IFargeKode = {
skiltrammeFarge: "000000",
skiltBakgrunnsfarge: "019460",
flaggBakgrunnsfarge: "003399",
tekstFarge: "000000",
};

const SVALBARD_SKILT: IFargeKode = {
skiltrammeFarge: "FFD51F",
skiltBakgrunnsfarge: "000000",
flaggBakgrunnsfarge: "003399",
tekstFarge: "FFD51F",
};

const AMBASSADE_SKILT: IFargeKode = {
skiltrammeFarge: "FE7400",
skiltBakgrunnsfarge: "1A85FF",
flaggBakgrunnsfarge: "003399",
tekstFarge: "FE7400",
};

const MILITÆR_SKILT: IFargeKode = {
skiltrammeFarge: "000000",
skiltBakgrunnsfarge: "FFD51F",
flaggBakgrunnsfarge: "003399",
tekstFarge: "000000",
};

const RALLY_SKILT: IFargeKode = {
skiltrammeFarge: "FFFFFF",
skiltBakgrunnsfarge: "000000",
flaggBakgrunnsfarge: "003399",
tekstFarge: "FFFFFF",
};

export default VelgFargekode;
51 changes: 10 additions & 41 deletions src/index.ts
Original file line number Diff line number Diff line change
@@ -1,50 +1,19 @@
import express = require('express');
import { AMBASSADE_SKILT, MILITÆR_SKILT, RALLY_SKILT, settFarger, SVALBARD_SKILT, VANLIG_SKILT, VANLIG_SKILT_SVART_FLAGGBÅND, VAREBIL_SKILT } from './fargekoder';
import { genererBilskilt } from './util';
import express = require("express");
import { genererBilskilt, velgSkiltType } from "./util";

const PORT = Number(process.env.PORT) || 8080;
const app = express();

app.get('/svart/:kjennemerke', (req, res) => {
let kjennemerke = req.params.kjennemerke;

genererBilskilt(res, kjennemerke, VANLIG_SKILT_SVART_FLAGGBÅND);
app.get("/:skiltType/:kjennemerke", (req, res) => {
genererBilskilt(
res,
req.params.kjennemerke,
velgSkiltType(req.params.skiltType)
);
});

app.get('/varebil/:kjennemerke', (req, res) => {
let kjennemerke = req.params.kjennemerke;

genererBilskilt(res, kjennemerke, VAREBIL_SKILT);
});

app.get('/svalbard/:kjennemerke', (req, res) => {
let kjennemerke = req.params.kjennemerke;

genererBilskilt(res, kjennemerke, SVALBARD_SKILT);
});

app.get('/ambassade/:kjennemerke', (req, res) => {
let kjennemerke = req.params.kjennemerke;

genererBilskilt(res, kjennemerke, AMBASSADE_SKILT);
});

app.get('/militaer/:kjennemerke', (req, res) => {
let kjennemerke = req.params.kjennemerke;

genererBilskilt(res, kjennemerke, MILITÆR_SKILT);
});

app.get('/rally/:kjennemerke', (req, res) => {
let kjennemerke = req.params.kjennemerke;

genererBilskilt(res, kjennemerke, RALLY_SKILT);
});

app.get(['/:kjennemerke', '/', '*'], (req, res) => {
let kjennemerke = req.params.kjennemerke;

genererBilskilt(res, kjennemerke, VANLIG_SKILT);
app.get(["/:kjennemerke", "/", "*"], (req, res) => {
genererBilskilt(res, req.params.kjennemerke, velgSkiltType("vanlig"));
});

const server = app.listen(PORT, () => {
Expand Down
28 changes: 28 additions & 0 deletions src/skiltTyper.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
export enum SkiltFarge {
ramme = "SKILTRAMME_FARGE",
bakgrunn = "SKILT_BAKGRUNNSFARGE",
flaggBakgrunn = "FLAGG_BAKGRUNNSFARGE",
tekstFarge = "TEKST_FARGE",
}

export enum SkiltType {
vanlig = "VANLIG_SKILT",
svart = "VANLIG_SKILT_SVART_FLAGGBÅND",
varebil = "VAREBIL_SKILT",
svalbard = "SVALBARD_SKILT",
ambassade = "AMBASSADE_SKILT",
militaer = "MILITÆR_SKILT",
rally = "RALLY_SKILT",
}

export interface IFargeKode {
skiltrammeFarge: string;
skiltBakgrunnsfarge: string;
flaggBakgrunnsfarge: string;
tekstFarge: string;
}

export interface ISkiltType {
skiltType: SkiltType;
fargekoder: IFargeKode;
}
85 changes: 65 additions & 20 deletions src/util.ts
Original file line number Diff line number Diff line change
@@ -1,24 +1,69 @@
import fs = require('fs');
import { FargeKode, settFarger } from './fargekoder';
import fs = require("fs");
import { IFargeKode, ISkiltType, SkiltFarge, SkiltType } from "./skiltTyper";
import VelgFargekode from "./fargekoder";

export const genererBilskilt = (res: any, kjennemerke: string, fargeKode: FargeKode) => {
fs.readFile('media/personlig-bilskilt.svg', 'utf-8', function (err, data) {
if (err) {
res.send("An error occurred.");
} else {
// set the content type based on the file
res.setHeader('Content-Type', 'image/svg+xml');
const settFarger = (fil: any, fargeKode: IFargeKode): any => {
return fil
.replace(SkiltFarge.ramme, fargeKode.skiltrammeFarge)
.replace(SkiltFarge.bakgrunn, fargeKode.skiltBakgrunnsfarge)
.replace(SkiltFarge.flaggBakgrunn, fargeKode.flaggBakgrunnsfarge)
.replace(SkiltFarge.tekstFarge, fargeKode.tekstFarge);
};

if (kjennemerke) {
if (kjennemerke.length > 7) {
kjennemerke = kjennemerke.substring(0, 7);
}
const setSkiltType = (type: string) => {
switch (type) {
case "vanlig":
return SkiltType.vanlig;
case "svart":
return SkiltType.svart;
case "varebil":
return SkiltType.varebil;
case "svalbard":
return SkiltType.svalbard;
case "ambassade":
return SkiltType.ambassade;
case "militaer":
return SkiltType.militaer;
case "rally":
return SkiltType.rally;
default:
return SkiltType.vanlig;
}
};

res.send(settFarger(data, fargeKode).replace('GEEK', kjennemerke.toUpperCase()));
} else {
res.send(settFarger(data, fargeKode));
}
export const velgSkiltType = (inputType: string): ISkiltType => {
let skiltType = setSkiltType(inputType);
return {
skiltType,
fargekoder: VelgFargekode(skiltType),
};
};

export const genererBilskilt = (
res: any,
kjennemerke: string,
skiltType: ISkiltType
) => {
fs.readFile("media/personlig-bilskilt.svg", "utf-8", function (err, data) {
if (err) {
res.send("An error occurred.");
} else {
// set the content type based on the file
res.setHeader("Content-Type", "image/svg+xml");
if (kjennemerke) {
if (kjennemerke.length > 7) {
kjennemerke = kjennemerke.substring(0, 7);
}
res.end();
});
}
res.send(
settFarger(data, skiltType.fargekoder).replace(
"GEEK",
kjennemerke.toUpperCase()
)
);
} else {
res.send(settFarger(data, skiltType.fargekoder));
}
}
res.end();
});
};

0 comments on commit 0353280

Please sign in to comment.