mirror of
https://github.com/Sosokker/B2D-Ventures.git
synced 2025-12-18 21:44:06 +01:00
feat: refactor user application checks and move related functions to a new query module
This commit is contained in:
parent
493d2805e6
commit
a04a3a228f
@ -9,6 +9,7 @@ import Swal from "sweetalert2";
|
||||
import { getCurrentUserID } from "@/app/api/userApi";
|
||||
import { uploadFile } from "@/app/api/generalApi";
|
||||
import { Loader } from "@/components/loading/loader";
|
||||
import { hasUserApplied, transformChoice } from "./query";
|
||||
|
||||
type businessSchema = z.infer<typeof businessFormSchema>;
|
||||
const BUCKET_PITCH_NAME = "business-application";
|
||||
@ -77,48 +78,14 @@ export default function ApplyBusiness() {
|
||||
});
|
||||
};
|
||||
|
||||
const hasUserApplied = async (userID: string) => {
|
||||
let { data: business, error } = await supabase.from("business").select("*").eq("user_id", userID);
|
||||
let { data: businessApplication, error: applicationError } = await supabase
|
||||
.from("business_application")
|
||||
.select("*")
|
||||
.eq("user_id", userID);
|
||||
// console.table(business);
|
||||
if (error || applicationError) {
|
||||
console.error(error);
|
||||
console.error(applicationError);
|
||||
}
|
||||
if ((business && business.length != 0) || (businessApplication && businessApplication.length != 0)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
const transformChoice = (data: any) => {
|
||||
// convert any yes and no to true or false
|
||||
const transformedData = Object.entries(data).reduce((acc: Record<any, any>, [key, value]) => {
|
||||
if (typeof value === "string") {
|
||||
const lowerValue = value.toLowerCase();
|
||||
if (lowerValue === "yes") {
|
||||
acc[key] = true;
|
||||
} else if (lowerValue === "no") {
|
||||
acc[key] = false;
|
||||
} else {
|
||||
acc[key] = value; // keep other string values unchanged
|
||||
}
|
||||
} else {
|
||||
acc[key] = value; // keep other types unchanged
|
||||
}
|
||||
return acc;
|
||||
}, {});
|
||||
return transformedData;
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
const fetchUserData = async () => {
|
||||
try {
|
||||
setSucess(false);
|
||||
const userID = await getCurrentUserID();
|
||||
if (userID) {
|
||||
const hasApplied = await hasUserApplied(userID);
|
||||
const hasApplied = await hasUserApplied(supabase, userID);
|
||||
setSucess(true);
|
||||
if (hasApplied && !alertShownRef.current) {
|
||||
alertShownRef.current = true;
|
||||
|
||||
38
src/app/business/apply/query.ts
Normal file
38
src/app/business/apply/query.ts
Normal file
@ -0,0 +1,38 @@
|
||||
import { SupabaseClient } from "@supabase/supabase-js";
|
||||
|
||||
export const hasUserApplied = async (supabase: SupabaseClient, userID: string) => {
|
||||
let { data: business, error } = await supabase.from("business").select("*").eq("user_id", userID);
|
||||
let { data: businessApplication, error: applicationError } = await supabase
|
||||
.from("business_application")
|
||||
.select("*")
|
||||
.eq("user_id", userID);
|
||||
// console.table(business);
|
||||
if (error || applicationError) {
|
||||
console.error(error);
|
||||
console.error(applicationError);
|
||||
}
|
||||
if ((business && business.length > 0) || (businessApplication && businessApplication.length > 0)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
export const transformChoice = (data: any) => {
|
||||
// convert any yes and no to true or false
|
||||
const transformedData = Object.entries(data).reduce((acc: Record<any, any>, [key, value]) => {
|
||||
if (typeof value === "string") {
|
||||
const lowerValue = value.toLowerCase();
|
||||
if (lowerValue === "yes") {
|
||||
acc[key] = true;
|
||||
} else if (lowerValue === "no") {
|
||||
acc[key] = false;
|
||||
} else {
|
||||
acc[key] = value; // keep other string values unchanged
|
||||
}
|
||||
} else {
|
||||
acc[key] = value; // keep other types unchanged
|
||||
}
|
||||
return acc;
|
||||
}, {});
|
||||
return transformedData;
|
||||
};
|
||||
|
||||
Loading…
Reference in New Issue
Block a user