Skip to content

Instantly share code, notes, and snippets.

@khanzzirfan
Created July 8, 2021 00:37
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 khanzzirfan/c2c255a29d939ba61a947a385f431558 to your computer and use it in GitHub Desktop.
Save khanzzirfan/c2c255a29d939ba61a947a385f431558 to your computer and use it in GitHub Desktop.
Json server mock custom route setup
/* 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