Skip to content
Snippets Groups Projects
Commit 293c1a05 authored by Omar Elkadi's avatar Omar Elkadi
Browse files

sicknotefile name = matrikel + auto file extention

parent 3c453414
No related branches found
No related tags found
No related merge requests found
import { NextFunction, Request, Response, Router } from "express"; import { NextFunction, Request, Response, Router } from "express";
import { writeFile } from "fs"; import { writeFile } from "fs";
import multer = require("multer"); import multer = require("multer");
import { extname } from "path";
//import * as bodyParser from "body-parser"; // not necessary, since body-parser is part of NodeJS //import * as bodyParser from "body-parser"; // not necessary, since body-parser is part of NodeJS
export class patientRoutes { export class patientRoutes {
...@@ -14,21 +16,26 @@ export class patientRoutes { ...@@ -14,21 +16,26 @@ export class patientRoutes {
routes() { routes() {
// configure a multer Storage (folder + filename) // configure a multer Storage path (folder + filename)
var storage = multer.diskStorage({ var storage = multer.diskStorage({
destination: function(req, file, cb) { destination: function (req, file, cb) {
//uploads is the folder name
cb(null, "uploads"); cb(null, "uploads");
}, },
filename: function(req, file, cb) { filename: function (req, file, cb) {
cb(null, Date.now()+ '-' + file.fieldname + '.pdf' ); var patientStudent = JSON.parse(req.body.patientStudent);
cb(
null,
patientStudent.MatrikelNumber + extname(file.originalname)
);
} }
}); });
//create upload instance (will recive the file and the body from request) //create upload instance (will recive the file and the body from request)
var upload = multer({ storage: storage }); var upload = multer({ storage: storage });
console.log("patient routes"); console.log("patient routes");
// recives the file from request // recives the file from request -> the name of the file in the single() must be the same on the client side in FormData
this.router.post("/ppatient", upload.single('evd') , this.post); this.router.post("/ppatient", upload.single('sickNoteEvidence') , this.post);
this.router.get("/patient", this.get); this.router.get("/patient", this.get);
} }
...@@ -41,31 +48,29 @@ export class patientRoutes { ...@@ -41,31 +48,29 @@ export class patientRoutes {
post(req: Request, res: Response) { post(req: Request, res: Response) {
//recived the body as a stringified JOSN
var body = req.body; // response body var body = req.body; // response body
// parse JSON to Objects
var patientStudent = JSON.parse(body.patientStudent)
var sickNote = JSON.parse(body.sickNoteData);
var sicknessReport = {
patientStudent,
sickNote
}
const file = req.file; const file = req.file;
if (!file) { if (!file) {
console.log("not file error") console.log("not file error")
} }
var patientStudent = JSON.parse(body.patientStudent)
var sickNote = JSON.parse(body.sickNote)
body = {
patientStudent,
sickNote
}
res.status(200).send("the body and the file are recived" + JSON.stringify(body)) res.status(200).send("the body and the file are recived" + JSON.stringify(body))
console.log(typeof(body)) const path = './public/'+ 'sickNoteReport'+ patientStudent.MatrikelNumber+ '.json'
console.log(typeof(patientStudent))
console.log(typeof(sickNote))
const path = './public/' + patientStudent.MatrikelNumber+ '.json'
writeFile(path, JSON.stringify(body), function (err) { writeFile(path, JSON.stringify(sicknessReport), function(err) {
if (err) return console.log(err) if (err) return console.log(err);
else return console.log('file generated in path: ' + path) else return console.log("file generated in path: " + path);
}); });
} }
......
...@@ -111,7 +111,8 @@ ...@@ -111,7 +111,8 @@
</div> </div>
<div class="form-group col-md-4"> <div class="form-group col-md-4">
<label for="formFile" class="form-label">Krankmeldung</label> <label for="formFile" class="form-label">Krankmeldung</label>
<input class="form-control" type="file" id="formFile" ref="file" accept=".pdf|.docx|image/*" @change="handleFileUpload()"> <!-- set a refrence on tag using ref="file" will allow us to get the file -->
<input class="form-control" type="file" id="formFile" ref="file" accept=".pdf,.docx,image/*" @change="handleFileUpload()" required>
</div> </div>
</div> </div>
<!-- <!--
...@@ -402,7 +403,7 @@ export default { ...@@ -402,7 +403,7 @@ export default {
} }
}, },
methods: { methods: {
handleFileUpload (event) { handleFileUpload () {
this.EvidenceFile = this.$refs.file.files[0] this.EvidenceFile = this.$refs.file.files[0]
}, },
async OnSubmit () { async OnSubmit () {
...@@ -410,8 +411,9 @@ export default { ...@@ -410,8 +411,9 @@ export default {
// FormData is a dictionary type -> (key , value) // FormData is a dictionary type -> (key , value)
formData.append('patientStudent', JSON.stringify(this.patientStudent)) formData.append('patientStudent', JSON.stringify(this.patientStudent))
formData.append('sickNote', JSON.stringify(this.SickNote)) formData.append('sickNoteData', JSON.stringify(this.SickNote))
formData.append('file', this.EvidenceFile)
formData.append('sickNoteEvidence', this.EvidenceFile)
var res = await axios.post('http://localhost:3000/ppatient', formData, var res = await axios.post('http://localhost:3000/ppatient', formData,
{ {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment