Created
May 9, 2020 11:12
-
-
Save vinodchauhan7/17eee56bcc7bb87236faadf33a274bac to your computer and use it in GitHub Desktop.
This file contains 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