GitFOSS
.ts
TypeScript
(application/typescript)
// 3rd-party
import type { ReqHandler } from "@ethicdevs/react-monolith";
// app
import { AppRoute } from "../../routes";
import { makeUsersService } from "../../services/user";
// app views
import DashboardView, {
  DashboardViewProps,
} from "../../views/auth/DashboardView";

const getDashboardView: ReqHandler = async (request, reply) => {
  const { authenticated, curr_user_uid } = request.session.data;
  if (authenticated === false || curr_user_uid == null) {
    reply.redirect(307, request.namedViewsPathMap[AppRoute.AUTH_LOGIN]);
    return reply;
  }

  const usersService = makeUsersService({ request });
  const currentUser = await usersService.getUserById(curr_user_uid);

  const reqHandler = reply.makeRequestHandler(request, reply);
  return reqHandler<DashboardViewProps>(DashboardView.name, {
    currentUser,
  });
};

export default getDashboardView;