Pull Request branch dev-clone to main #1
|
|
@ -0,0 +1,120 @@
|
||||||
|
import client from "@/honoClient";
|
||||||
|
import fetchRPC from "@/utils/fetchRPC";
|
||||||
|
import { queryOptions } from "@tanstack/react-query";
|
||||||
|
import { InferRequestType } from "hono";
|
||||||
|
|
||||||
|
// Query untuk mendapatkan skor assessment saat ini
|
||||||
|
export const getCurrentAssessmentScoreQueryOptions = (assessmentId: string) =>
|
||||||
|
queryOptions({
|
||||||
|
queryKey: ["assessment", { assessmentId }],
|
||||||
|
queryFn: () =>
|
||||||
|
fetchRPC(
|
||||||
|
client.assessments.getCurrentAssessmentScore.$get({
|
||||||
|
query: {
|
||||||
|
assessmentId,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
),
|
||||||
|
});
|
||||||
|
|
||||||
|
export const fetchAspects = async () => {
|
||||||
|
return await fetchRPC(
|
||||||
|
client.assessments.aspect.$get({
|
||||||
|
query: {}
|
||||||
|
})
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
// Query untuk mendapatkan semua pertanyaan berdasarkan halaman dan limit
|
||||||
|
export const getQuestionsAllQueryOptions = (page: number, limit: number, q?: string) =>
|
||||||
|
queryOptions({
|
||||||
|
queryKey: ["assessment", { page, limit, q }],
|
||||||
|
queryFn: () =>
|
||||||
|
fetchRPC(
|
||||||
|
client.assessments.getAllQuestions.$get({
|
||||||
|
query: {
|
||||||
|
limit: String(limit),
|
||||||
|
page: String(page),
|
||||||
|
q: q || "",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
),
|
||||||
|
});
|
||||||
|
|
||||||
|
// Query untuk mendapatkan jawaban berdasarkan assessment ID
|
||||||
|
export const getAnswersQueryOptions = (assessmentId: string, page: number, limit: number, q?: string) =>
|
||||||
|
queryOptions({
|
||||||
|
queryKey: ["assessment", { assessmentId, page, limit, q }],
|
||||||
|
queryFn: () =>
|
||||||
|
fetchRPC(
|
||||||
|
client.assessments.getAnswers.$get({
|
||||||
|
query: {
|
||||||
|
assessmentId,
|
||||||
|
limit: String(limit),
|
||||||
|
page: String(page),
|
||||||
|
q: q || "",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
),
|
||||||
|
});
|
||||||
|
|
||||||
|
// Query untuk toggle flag jawaban berdasarkan questionId
|
||||||
|
export const toggleFlagAnswer = async (questionId: string) => {
|
||||||
|
return await fetchRPC(
|
||||||
|
client.assessments[":questionId"].toggleFlag.$patch({
|
||||||
|
param: { questionId }
|
||||||
|
})
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
// Opsional: Jika Anda ingin menggunakan react-query untuk toggleFlag
|
||||||
|
export const toggleFlagAnswerMutationOptions = (questionId: string) => ({
|
||||||
|
mutationFn: () => toggleFlagAnswer(questionId),
|
||||||
|
});
|
||||||
|
|
||||||
|
// Di file queries (sesuaikan tipe yang diperlukan untuk submitAnswer)
|
||||||
|
export const submitAnswer = async (
|
||||||
|
form: {
|
||||||
|
optionId: string;
|
||||||
|
assessmentId: string;
|
||||||
|
validationInformation: string;
|
||||||
|
}
|
||||||
|
) => {
|
||||||
|
return await fetchRPC(
|
||||||
|
client.assessments.submitAnswer.$post({
|
||||||
|
json: form,
|
||||||
|
})
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
// Opsional: Jika Anda ingin menggunakan react-query untuk submitAnswer
|
||||||
|
export const submitAnswerMutationOptions = () => ({
|
||||||
|
mutationFn: submitAnswer,
|
||||||
|
});
|
||||||
|
|
||||||
|
// Query untuk mendapatkan rata-rata skor berdasarkan aspectId dan assessmentId
|
||||||
|
export const getAverageScoreQueryOptions = (assessmentId: string) =>
|
||||||
|
queryOptions({
|
||||||
|
queryKey: ["averageScore", { assessmentId }],
|
||||||
|
queryFn: () =>
|
||||||
|
fetchRPC(
|
||||||
|
client.assessments["average-score"].aspects.assessments[":assessmentId"].$get({
|
||||||
|
param: {
|
||||||
|
assessmentId,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
),
|
||||||
|
});
|
||||||
|
|
||||||
|
export const getAverageScoreSubAspectQueryOptions = (assessmentId: string) =>
|
||||||
|
queryOptions({
|
||||||
|
queryKey: ["averageScoreSubAspects", { assessmentId }],
|
||||||
|
queryFn: () =>
|
||||||
|
fetchRPC(
|
||||||
|
client.assessments["average-score"]["sub-aspects"].assessments[":assessmentId"].$get({
|
||||||
|
param: {
|
||||||
|
assessmentId,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
),
|
||||||
|
});
|
||||||
Loading…
Reference in New Issue
Block a user