Skip to content

Commit

Permalink
feat: refactor user application checks and move related functions to …
Browse files Browse the repository at this point in the history
…a new query module
  • Loading branch information
GGWPXXXX committed Nov 11, 2024
1 parent 493d280 commit a04a3a2
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 36 deletions.
39 changes: 3 additions & 36 deletions src/app/business/apply/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand Down Expand Up @@ -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;
Expand Down
38 changes: 38 additions & 0 deletions src/app/business/apply/query.ts
Original file line number Diff line number Diff line change
@@ -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;
};

0 comments on commit a04a3a2

Please sign in to comment.