Skip to content

Commit fc9313d

Browse files
authored
fix: updates server to resolve issues with create api (#645)
* chore: add server host binding for template Signed-off-by: Anthony D. Mays <[email protected]> * fix: actually adds valid responses for the api Signed-off-by: Anthony D. Mays <[email protected]> * fix: corrects file path to json file. --------- Signed-off-by: Anthony D. Mays <[email protected]>
1 parent 03d2a45 commit fc9313d

File tree

2 files changed

+26
-12
lines changed

2 files changed

+26
-12
lines changed

lesson_27/api/src/server.ts

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
1+
import programs from './data/programs.json';
12
import cors from 'cors';
2-
import fs from 'fs';
3+
import {randomUUID} from 'crypto';
34
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+
68
import {Program} from '../../types';
79

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;
1013

1114
const app: Express = express();
1215

1316
app.use(express.static('public'));
14-
app.use(express.json())
17+
app.use(express.json());
1518
app.use(express.urlencoded({extended: true}));
1619
app.use(cors());
1720

@@ -42,10 +45,18 @@ app.get('/programs', async (req: Request, res: Response<Program[]>) => {
4245
app.post('/programs', async (req: Request<Partial<Program>>, res: Response) => {
4346
const newProgram = req.body;
4447
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+
);
4960
});
5061

5162
const port = 4000;

lesson_27/template/vite.config.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import react from '@vitejs/plugin-react';
2-
import {URL, fileURLToPath} from 'url';
3-
import {defineConfig} from 'vite';
2+
import { URL, fileURLToPath } from 'url';
3+
import { defineConfig } from 'vite';
44

55
// https://vitejs.dev/config/
66
export default defineConfig({
@@ -13,4 +13,7 @@ export default defineConfig({
1313
},
1414
],
1515
},
16+
server: {
17+
host: '0.0.0.0',
18+
},
1619
});

0 commit comments

Comments
 (0)