refactor: resolve the unexpected wrong payload
This commit is contained in:
parent
a684cd5a6e
commit
450e76cbe9
|
|
@ -7,8 +7,9 @@ import {
|
||||||
scrapeProduct,
|
scrapeProduct,
|
||||||
getAIRecommendation,
|
getAIRecommendation,
|
||||||
} from "../services/analyze.service";
|
} from "../services/analyze.service";
|
||||||
import { analyzeSchema } from "../app/validation/analyze.schema";
|
import { analyzeSchema } from "../app/validation/analyze.schema";
|
||||||
import { getMetricId } from "../services/metric.service";
|
import { getMetricId } from "../services/metric.service";
|
||||||
|
import { getBrandId } from "../services/brand.service";
|
||||||
|
|
||||||
export const useAnalyseText = () => {
|
export const useAnalyseText = () => {
|
||||||
const { data: session } = useSession();
|
const { data: session } = useSession();
|
||||||
|
|
@ -145,12 +146,14 @@ export const useAnalyseText = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
const metricIdValue = await getMetricId();
|
const metricIdValue = await getMetricId();
|
||||||
|
const brandId = await getBrandId(candidates[0].name);
|
||||||
|
|
||||||
console.log("Payload to AI:", {
|
console.log("Payload to AI:", {
|
||||||
user_email: session.user.email,
|
user_email: session.user.email,
|
||||||
metric_id: metricIdValue,
|
|
||||||
candidateCount: candidates.length,
|
candidateCount: candidates.length,
|
||||||
totalReviews: candidates.reduce((acc, c) => acc + c.reviews.length, 0),
|
totalReviews: candidates.reduce((acc, c) => acc + c.reviews.length, 0),
|
||||||
|
metric_id: metricIdValue,
|
||||||
|
brand_id: brandId,
|
||||||
});
|
});
|
||||||
|
|
||||||
setProgress({ status: "AI sedang menganalisis ulasan...", percent: 70 });
|
setProgress({ status: "AI sedang menganalisis ulasan...", percent: 70 });
|
||||||
|
|
@ -159,6 +162,7 @@ export const useAnalyseText = () => {
|
||||||
user_email: session.user.email as string,
|
user_email: session.user.email as string,
|
||||||
candidates: candidates,
|
candidates: candidates,
|
||||||
metric_id: metricIdValue,
|
metric_id: metricIdValue,
|
||||||
|
brand_id: brandId as number,
|
||||||
},
|
},
|
||||||
{ signal: abortControllerRef.current?.signal },
|
{ signal: abortControllerRef.current?.signal },
|
||||||
);
|
);
|
||||||
|
|
@ -179,7 +183,7 @@ export const useAnalyseText = () => {
|
||||||
} catch (error: any) {
|
} catch (error: any) {
|
||||||
if (error.name === "AbortError" || signal.aborted) {
|
if (error.name === "AbortError" || signal.aborted) {
|
||||||
console.log("🛠️ Request dibatalkan secara aman.");
|
console.log("🛠️ Request dibatalkan secara aman.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
console.error("Analysis Error:", error);
|
console.error("Analysis Error:", error);
|
||||||
|
|
|
||||||
|
|
@ -65,8 +65,9 @@ export const getAnalysisData = async (email: string) => {
|
||||||
export const getAIRecommendation = async (
|
export const getAIRecommendation = async (
|
||||||
payload: {
|
payload: {
|
||||||
user_email: string;
|
user_email: string;
|
||||||
metric_id: number | 1;
|
|
||||||
candidates: { name: string; url: string; reviews: string[] }[];
|
candidates: { name: string; url: string; reviews: string[] }[];
|
||||||
|
metric_id: number | 1;
|
||||||
|
brand_id: number | 1;
|
||||||
},
|
},
|
||||||
options?: { signal?: AbortSignal },
|
options?: { signal?: AbortSignal },
|
||||||
): Promise<AIRecommendationResponse> => {
|
): Promise<AIRecommendationResponse> => {
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
import prisma from "@/lib/prisma";
|
||||||
import { AnalysisData } from "../types";
|
import { AnalysisData } from "../types";
|
||||||
|
|
||||||
export const formatBrandStats = (userAnalysis: AnalysisData[]) => {
|
export const formatBrandStats = (userAnalysis: AnalysisData[]) => {
|
||||||
|
|
@ -42,3 +43,16 @@ export const formatBrandStats = (userAnalysis: AnalysisData[]) => {
|
||||||
|
|
||||||
return formattedBrands;
|
return formattedBrands;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const getBrandId = async (brandName: string) => {
|
||||||
|
const brand = await prisma.brand.findFirst({
|
||||||
|
where: {
|
||||||
|
name: brandName,
|
||||||
|
},
|
||||||
|
select: {
|
||||||
|
brandId: true,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
return brand?.brandId ?? null;
|
||||||
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue