|
| 1 | +import programs from './data/programs.json'; |
1 | 2 | import cors from 'cors';
|
2 |
| -import fs from 'fs'; |
| 3 | +import {randomUUID} from 'crypto'; |
3 | 4 | import express, {Express, Request, Response} from 'express';
|
4 |
| -import programs from './data/programs.json'; |
5 |
| -import { randomUUID, UUID } from 'crypto'; |
| 5 | +import fs from 'fs'; |
| 6 | +import path from 'path'; |
| 7 | + |
6 | 8 | import {Program} from '../../types';
|
7 | 9 |
|
8 |
| -const PROGRAMS_FILE = './data/programs.json'; |
9 |
| -const UUID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i |
| 10 | +const PROGRAMS_FILE = path.resolve(__dirname, './data/programs.json'); |
| 11 | +const UUID_PATTERN = |
| 12 | + /^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i; |
10 | 13 |
|
11 | 14 | const app: Express = express();
|
12 | 15 |
|
13 | 16 | app.use(express.static('public'));
|
14 |
| -app.use(express.json()) |
| 17 | +app.use(express.json()); |
15 | 18 | app.use(express.urlencoded({extended: true}));
|
16 | 19 | app.use(cors());
|
17 | 20 |
|
@@ -42,10 +45,18 @@ app.get('/programs', async (req: Request, res: Response<Program[]>) => {
|
42 | 45 | app.post('/programs', async (req: Request<Partial<Program>>, res: Response) => {
|
43 | 46 | const newProgram = req.body;
|
44 | 47 | programs.push({id: randomUUID(), ...newProgram});
|
45 |
| - fs.writeFile(PROGRAMS_FILE, JSON.stringify(programs, null, 2), (err) => { |
46 |
| - if (err) return console.log(err); |
47 |
| - console.log(`Updated ${PROGRAMS_FILE}`); |
48 |
| - }); |
| 48 | + fs.writeFile( |
| 49 | + PROGRAMS_FILE, |
| 50 | + JSON.stringify(programs, null, 2), |
| 51 | + (err: unknown) => { |
| 52 | + if (err) { |
| 53 | + res.status(500).send({error: 'Failed to write to file.'}); |
| 54 | + return; |
| 55 | + } |
| 56 | + console.log(`Updated ${PROGRAMS_FILE}`); |
| 57 | + res.status(201).send(); |
| 58 | + } |
| 59 | + ); |
49 | 60 | });
|
50 | 61 |
|
51 | 62 | const port = 4000;
|
|
0 commit comments