Skip to content

Instantly share code, notes, and snippets.

@vinodchauhan7
Created May 9, 2020 11:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vinodchauhan7/17eee56bcc7bb87236faadf33a274bac to your computer and use it in GitHub Desktop.
Save vinodchauhan7/17eee56bcc7bb87236faadf33a274bac to your computer and use it in GitHub Desktop.
import { Application, Router } from "https://deno.land/x/oak/mod.ts";
const router = new Router();
router.get("/", (context : any) => {
context.response.body = "Hello world!";
});
//getUser
router.get("/getUser",(context : any) => {
try{
const decoder = new TextDecoder("utf-8");
const data = Deno.readFileSync("./users.json");
console.log(decoder.decode(data));
context.response.body = decoder.decode(data)
}
catch(err){
console.log(err);
context.response.status = 500;
context.response.body = err;
}
})
router.get("/getUser/:id",(context : any) => {
try{
const decoder = new TextDecoder("utf-8");
const data = Deno.readFileSync("./users.json");
console.log(decoder.decode(data));
const users = JSON.parse(decoder.decode(data));
if (context.params && context.params.id && users["user"+context.params.id])
{
const user = users["user"+context.params.id];
context.response.body = user;
}
else{
context.response.status = 404;
context.response.body = `User with id ${context.params.id} does not exist`;
}
}
catch(err){
console.log(err);
context.response.status = 500;
context.response.body = err;
}
})
router.post("/addUser",(context : any) => {
try{
const decoder = new TextDecoder("utf-8");
const data = Deno.readFileSync("./users.json");
console.log(decoder.decode(data));
const users = JSON.parse(decoder.decode(data));
console.log(Object.keys(users).length);
var len = Object.keys(users).length;
var user :any = {
"name":"New User",
"password":`password${len + 1}`,
"profession":"webdeveloper",
"id":len+1
}
users["user"+(len+1)] = user;
console.log(users);
const encoder = new TextEncoder();
const updatedUser = Deno.writeFileSync("./users.json",encoder.encode(JSON.stringify(users)));;
context.response.status = 201;
context.response.body = "User added successfully";
}
catch(err){
console.log(err);
context.response.status = 500;
context.response.body = err;
}
})
router.delete("/deleteUser/:id",(context : any) => {
try{
const decoder = new TextDecoder("utf-8");
const data = Deno.readFileSync("./users.json");
const users = JSON.parse(decoder.decode(data));
if (context.params && context.params.id && users["user"+context.params.id])
{
delete users["user"+context.params.id];
console.log(users);
const encoder = new TextEncoder();
const updatedUser = Deno.writeFileSync("./users.json",encoder.encode(JSON.stringify(users)));;
context.response.status = 201;
context.response.body = `User ${context.params.id} deleted successfully`;
}
else{
context.response.status = 404;
context.response.body = `User with id ${context.params.id} does not exist`;
}
}
catch(err){
console.log(err);
context.response.status = 500;
context.response.body = err;
}
})
router.put("/updateUser/:id",async (context : any) => {
try{
const decoder = new TextDecoder("utf-8");
const data = Deno.readFileSync("./users.json");
const users = JSON.parse(decoder.decode(data));
const body = await context.request.body().then((user : Object) => user);
if (context.params && context.params.id && users["user"+context.params.id] && body.value )
{
const user = users["user"+context.params.id];
for( let [key,value] of Object.entries(user)){
if(key !== "id"){
if(body.value[key]){
user[key] = body.value[key]
}
}
}
users["user"+context.params.id] = user
const encoder = new TextEncoder();
Deno.writeFileSync("./users.json",encoder.encode(JSON.stringify(users)));;
context.response.status = 200;
context.response.body = `User ${context.params.id} updated successfully`;
}
else{
context.response.status = 404;
context.response.body = `User with id ${context.params.id} does not exist`;
}
}
catch(err){
console.log(err);
context.response.status = 500;
context.response.body = err;
}
})
const app = new Application();
app.use(router.routes());
app.use(router.allowedMethods());
console.log("Server is running on address : http://localhost:8000")
await app.listen({ port: 8000 })
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment