create-mock-backend
Version:
This is npx starter package for installing your favourite backend template for mockBee.
67 lines (60 loc) • 1.43 kB
JavaScript
import { Response } from "miragejs";
import { requiresAuth } from "../utils/authUtils";
/**
* All the routes related to user are present here.
* */
/**
* This handler handles gets all users in the db.
* send GET Request at /api/users
* */
export const getAllUsersHandler = function () {
return new Response(200, {}, { users: this.db.users });
};
export const getUserHandler = function (schema, request) {
const userId = request.params.userId;
try {
const user = this.db.users.findBy({ _id: userId });
return new Response(200, {}, { user });
} catch (error) {
return new Response(
500,
{},
{
error,
}
);
}
};
/**
* This handler handles updating user details.
* send POST Request at /api/users/edit
* body contains { userData }
* */
export const editUserHandler = function (schema, request) {
let user = requiresAuth.call(this, request);
try {
if (!user) {
return new Response(
404,
{},
{
errors: [
"The username you entered is not Registered. Not Found error",
],
}
);
}
const { userData } = JSON.parse(request.requestBody);
user = { ...user, ...userData };
this.db.users.update({ _id: user._id }, user);
return new Response(201, {}, { user });
} catch (error) {
return new Response(
500,
{},
{
error,
}
);
}
};