.ts
TypeScript
(application/typescript)
// 1st-party
import { ReqHandler } from "@ethicdevs/react-monolith";
// app
import { AppRoute } from "../../routes";
import { makeUsersService } from "../../services/user";
// app views
import RepositoryCreateView, {
  RepositoryCreateViewProps,
} from "../../views/repository/RepositoryCreateView";

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

  const reqHandler = reply.makeRequestHandler(request, reply);
  const usersService = makeUsersService({ request });

  return reqHandler<RepositoryCreateViewProps>(RepositoryCreateView.name, {
    availableParentOrgs: await usersService.getUserOrganizations(
      request.session.data.curr_user_uid
    ),
  });
};

export default getRepositoryCreateView;