init
commit
ff3f6e619b
|
@ -0,0 +1,71 @@
|
|||
// Dependencies
|
||||
import { serve, write } from "bun";
|
||||
// Import users json file
|
||||
import users from "./users.json";
|
||||
// Create server
|
||||
serve({
|
||||
async fetch(request) {
|
||||
// Get url and method
|
||||
const { url, method } = request;
|
||||
// Get pathname from url
|
||||
const { pathname } = new URL(url);
|
||||
// Get All Users
|
||||
if (pathname === "/api/users" && method === "GET") {
|
||||
return new Response(JSON.stringify(users), {
|
||||
status: 200,
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
"Access-control-allow-origin": "*",
|
||||
},
|
||||
});
|
||||
}
|
||||
// Create User
|
||||
if (pathname === "/api/users" && method === "POST") {
|
||||
const body = await request.json();
|
||||
const newJson = users.concat(body);
|
||||
write("./users.json", JSON.stringify(newJson), null, 2);
|
||||
return new Response(JSON.stringify(newJson), {
|
||||
status: 200,
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
"Access-control-allow-origin": "*",
|
||||
},
|
||||
});
|
||||
}
|
||||
// Delete User
|
||||
// method == 0 is a DELETE request
|
||||
if (pathname === "/api/users" && method == 0) {
|
||||
const body = await request.json();
|
||||
const newJson = users.filter((user) => user.id !== body.id);
|
||||
write("./users.json", JSON.stringify(newJson), null, 2);
|
||||
return new Response(JSON.stringify(newJson), {
|
||||
status: 200,
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
"Access-control-allow-origin": "*",
|
||||
},
|
||||
});
|
||||
}
|
||||
// Update User
|
||||
if (pathname === "/api/users" && method === "PUT") {
|
||||
const body = await request.json();
|
||||
const newJson = users.map((user) => {
|
||||
if (user.id === body.id) {
|
||||
return body;
|
||||
}
|
||||
return user;
|
||||
});
|
||||
write("./users.json", JSON.stringify(newJson), null, 2);
|
||||
return new Response(JSON.stringify(newJson), {
|
||||
status: 200,
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
"Access-control-allow-origin": "*",
|
||||
},
|
||||
});
|
||||
}
|
||||
// Send 404
|
||||
return new Response("", { status: 404 });
|
||||
},
|
||||
});
|
||||
console.log("Server running on port 3000");
|
|
@ -0,0 +1,8 @@
|
|||
[
|
||||
{ "id": "1", "name": "John", "age": "25", "city": "New York" },
|
||||
{ "id": "2", "name": "Steve", "age": "30", "city": "London" },
|
||||
{ "id": "3", "name": "Bill", "age": "35", "city": "Paris" },
|
||||
{ "id": "4", "name": "Ram", "age": "40", "city": "Jakarta" },
|
||||
{ "id": "5", "name": "Rons", "age": "45", "city": "Tokyo" },
|
||||
{ "id": "6", "name": "Luca", "age": "18", "city": "Argentina" }
|
||||
]
|
Loading…
Reference in New Issue