diff --git a/src/app/portfolio/[slug]/(portfolio)/settings/page.tsx b/src/app/portfolio/[slug]/(portfolio)/settings/page.tsx
index 952ff3b..9d7e6bc 100644
--- a/src/app/portfolio/[slug]/(portfolio)/settings/page.tsx
+++ b/src/app/portfolio/[slug]/(portfolio)/settings/page.tsx
@@ -1,14 +1,27 @@
-export default async function PortfolioSettings({
+import { getPortfolioSettings } from "../../utils";
+import PortfolioSettings from "./PortfolioSettings";
+
+export default async function PortfolioSettingsPage({
params,
}: {
params: { slug: string };
}) {
- console.log("in the server!");
- console.log(params);
const portfolioId = params.slug;
+ // fetch data securely on the server
+ // Stef's page!!!!
+ // 1) Rename
+ // 2) Delete - much harder
+
+ // fetch data in the server - name, budget, goal,
+ // pass it to a client component to render and take user input
+
+ const portfolioSettingsData = await getPortfolioSettings(portfolioId);
+
return (
<>
-
Hello World This is my settings page!!
+
>
);
}
diff --git a/src/app/portfolio/[slug]/utils.ts b/src/app/portfolio/[slug]/utils.ts
index c50bcd2..3cc8dd5 100644
--- a/src/app/portfolio/[slug]/utils.ts
+++ b/src/app/portfolio/[slug]/utils.ts
@@ -1,3 +1,7 @@
+import type {
+ PortfolioStatus,
+ PortfolioGoal,
+} from "./../../db/schema/portfolio";
import { formatNumber } from "@/app/utils";
import { and, eq, inArray } from "drizzle-orm";
import { db } from "@/app/db/db";
@@ -15,6 +19,38 @@ import {
ScenarioSelect,
} from "@/app/db/schema/recommendations";
+export interface PortfolioSettingsType {
+ name: string;
+ budget: number | null;
+ goal: (typeof PortfolioGoal)[number];
+ status: (typeof PortfolioStatus)[number];
+}
+
+export async function getPortfolioSettings(
+ portfolioId: string
+): Promise {
+ //name, budget, goal, status
+ const data = await db
+ .select({
+ name: portfolio.name,
+ budget: portfolio.budget,
+ goal: portfolio.goal,
+ status: portfolio.status,
+ })
+ .from(portfolio)
+ .where(eq(portfolio.id, BigInt(portfolioId)));
+
+ if (data.length === 0) {
+ throw new Error("Portfolio not found");
+ }
+
+ if (data.length > 1) {
+ throw new Error("More than one portfolio found");
+ }
+
+ return data[0];
+}
+
export async function getPortfolio(portfolioId: string): Promise {
const data = await db
.select()