Created
June 25, 2020 18:24
-
-
Save nikhilknoldus/4f93ec739e7f6050c18760fe3959b6ec to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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
Thanks!