Created
July 8, 2021 00:37
-
-
Save khanzzirfan/c2c255a29d939ba61a947a385f431558 to your computer and use it in GitHub Desktop.
Json server mock custom route setup
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
/* eslint-disable no-console */ | |
const path = require("path"); | |
const jsonServer = require("json-server"); | |
const server = jsonServer.create(); | |
const router = jsonServer.router(path.join(__dirname, "db.json")); | |
const middlewares = jsonServer.defaults(); | |
const port = process.env.API_PORT || process.env.PORT || 3001; | |
var db = require(path.join(__dirname, "db.json")); | |
server.use(jsonServer.bodyParser); | |
server.use(middlewares); | |
server.use( | |
jsonServer.rewriter({ | |
"/api/merchants": "/post/merchants", | |
"/api/merchants/ChIJ3wzWNSSwOG0RB-zbM8wibus": "/post/merchants/id", | |
"/api/v1/authentication\\?*": "/authorization", | |
"/api/v1/SearchIdentity\\?*": "/post/searchidentity", | |
"/api/v1/GetLookUp\\?*": "/get/lookup", | |
"/api/v1/IdentityVineyard\\?*": "/post/IdentityVineyard", | |
"/api/v1/*": "/$1", | |
"/api/*": "/$1", | |
}) | |
); | |
const BadRequest = (res) => { | |
res.status(400).jsonp({ | |
error: "Mock Server!!! =>> Bad Request", | |
}); | |
}; | |
const InvalidRequest = (res) => { | |
res.status(400).jsonp({ | |
error: "Mock Server!!! =>> Invalid Request", | |
}); | |
}; | |
server.post("/post/user", (req, res) => { | |
if (req.method === "POST") { | |
let userId = req.body["userId"]; | |
if (userId != null && userId >= 0) { | |
let result = db.users.find((user) => { | |
return user.userId == userId; | |
}); | |
if (result) { | |
res.status(200).jsonp(result); | |
} else { | |
BadRequest(res); | |
} | |
} else { | |
InvalidRequest(res); | |
} | |
} | |
}); | |
server.get("/get/user", (req, res) => { | |
if (req.method === "GET") { | |
let userId = req.query["userId"]; | |
if (userId != null && userId >= 0) { | |
let result = db.users.find((user) => { | |
return user.userId == userId; | |
}); | |
if (result) { | |
res.status(200).jsonp(result); | |
} else { | |
res.status(400).jsonp({ | |
error: "Bad userId", | |
}); | |
} | |
} else { | |
res.status(400).jsonp({ | |
error: "No valid userId", | |
}); | |
} | |
} | |
}); | |
server.get("/authorization", (req, res) => { | |
if (req.method === "GET") { | |
let code = req.query["code"]; | |
let authorization = db.authorization; | |
let result; | |
if (code == "isSaleComplete") { | |
result = Object.assign({}, authorization, { isSaleComplete: true }); | |
} else if (code == "nullUserDetails") { | |
result = Object.assign({}, authorization, { | |
email: null, | |
firstName: null, | |
lastName: null, | |
}); | |
} else if (code == "Success") { | |
result = Object.assign({}, authorization, { | |
isSaleComplete: true, | |
isLicenseActive: true, | |
isProvisioned: true, | |
}); | |
} else if (code.length > 10) { | |
result = Object.assign({}, authorization, { | |
isSaleComplete: true, | |
isLicenseActive: true, | |
isProvisioned: true, | |
}); | |
} | |
if (result) { | |
res.status(200).jsonp(result); | |
} else { | |
res.status(400).jsonp({ | |
error: "Bad userId", | |
}); | |
} | |
} | |
}); | |
/*** custom route example */ | |
server.post("/post/merchants", (req, res) => { | |
let merchantName = req.body["name"]; | |
console.log("merchant req name", merchantName); | |
if (merchantName !== null) { | |
let result = db.getPlacesBySearchText[0]; | |
if (result) { | |
res.status(200).jsonp(result); | |
} else { | |
BadRequest(res); | |
} | |
} else { | |
InvalidRequest(res); | |
} | |
}); | |
server.post("/post/IdentityVineyard", (req, res) => { | |
let data = req.body; | |
if (data) { | |
const result = data; | |
result["id"] = 2625; | |
result["ts"] = "AAAAAAAFyY4="; | |
res.status(201).jsonp(result); | |
} else { | |
BadRequest(res); | |
} | |
}); | |
server.post("/post/merchants/id", (req, res) => { | |
let merchantName = req.body["name"]; | |
console.log("merchant req name", merchantName); | |
if (merchantName !== null) { | |
let merchantPlace = db.getMerchant[0]; | |
if (merchantPlace) { | |
let payloadResult = { | |
status: "OK", | |
payload: merchantPlace, | |
}; | |
res.status(200).jsonp(payloadResult); | |
} else { | |
BadRequest(res); | |
} | |
} else { | |
InvalidRequest(res); | |
} | |
}); | |
server.post("/post/searchidentity", (req, res) => { | |
const payloadResult = db.SearchIdentity; | |
res.status(200).jsonp(payloadResult); | |
}); | |
server.get("/get/lookup", (req, res) => { | |
const lookupName = req.query["LookUpName"]; | |
const payloadResult = db[`Lookup${lookupName}`]; | |
if (payloadResult) { | |
res.status(200).jsonp(payloadResult); | |
} else { | |
BadRequest(res); | |
} | |
}); | |
server.use(router); | |
server.listen(port, () => { | |
console.log("JSON Server is running at ", port); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment