import type { ReqHandler } from "@ethicdevs/react-monolith";
import { AppRoute } from "../../routes";
import { makeUsersService } from "../../services/user";
import UserDashboardView, {
UserDashboardViewProps,
} from "../../views/user/UserDashboardView";
const getUserDashboardView: ReqHandler = async (request, reply) => {
const { authenticated, curr_user_uid } = request.session.data;
if (authenticated === false || curr_user_uid == null) {
reply.redirect(302, request.namedViewsPathMap[AppRoute.AUTH_LOGIN]);
return reply;
}
const usersService = makeUsersService({ request });
const currentUser = await usersService.getUserById(curr_user_uid);
if (currentUser == null) {
reply.redirect(302, request.namedViewsPathMap[AppRoute.AUTH_LOGIN]);
return reply;
}
const repositories = await usersService.getUserRepositories(currentUser);
const reqHandler = reply.makeRequestHandler(request, reply);
return reqHandler<UserDashboardViewProps>(UserDashboardView.name, {
currentUser,
repositories,
});
};
export default getUserDashboardView;