import { DraftMessage } from "../constants"; export async function fetchDraftDetails(draftSessionId) { return fetch(`/api/draft/${draftSessionId}/`) .then((response) => { if (response.ok) { return response.json(); } else { throw new Error(); } }) .catch((err) => { console.error("Error fetching draft details", err); }); } export async function fetchMovieDetails(draftSessionId) { return fetch(`/api/draft/${draftSessionId}/movie/`) .then((response) => { if (response.ok) { return response.json(); } else { throw new Error(); } }) .catch((err) => { console.error("Error fetching draft details", err); }); } export function isEmptyObject(obj) { return ( obj == null || (Object.keys(obj).length === 0 && obj.constructor === Object) ); } export const handleDraftStatusMessages = (event, setDraftState) => { const message = JSON.parse(event.data); const { type, payload } = message; console.log("Message: ", type, event?.data); if (!payload) return; const { connected_participants, phase, draft_order, draft_index, current_movie, bidding_timer_end, bidding_timer_start } = payload; if (type == DraftMessage.STATUS_SYNC_INFORM) { setDraftState(payload); } setDraftState((prev) => ({ ...prev, ...(connected_participants ? { connected_participants } : {}), ...(draft_order ? { draft_order } : {}), ...(draft_index ? { draft_index } : {}), ...(phase ? { phase: Number(phase) } : {}), ...(current_movie ? { current_movie } : {}), ...(bidding_timer_end ? { bidding_timer_end: Number(bidding_timer_end) } : {}), ...(bidding_timer_start ? { bidding_timer_start: Number(bidding_timer_start) } : {}), })); }; export const handleUserIdentifyMessages = (event, setUser) => { const message = JSON.parse(event.data); const { type, payload } = message; if (type == DraftMessage.USER_IDENTIFICATION_INFORM) { console.log("Message: ", type, event.data); const { user } = payload; setUser(user); } };