Sobre este proyecto
it-programming / web-development
Abierto
Contexto general del proyecto
Descripción del Proyecto: Estamos desarrollando una aplicación de apuestas de lotería y hemos encontrado un problema crítico que necesitamos resolver. El problema se presenta en la función que maneja el evento onClick de un botón, cuyo propósito es crear un nuevo documento en la biblioteca "bets" en MongoDB. Descripción del Problema: La función Onsubmitform se encarga de enviar una solicitud http post para crear una nueva apuesta en nuestra base de datos. Sin embargo, hemos notado que, bajo ciertas condiciones (especialmente cuando la conexión a Internet es inestable o el ping es intermitente), la solicitud se envía dos veces a pesar de que el botón solo se presiona una vez. Esto está causando la duplicación de registros en la base de datos, lo que genera problemas en la gestión de las apuestas. Detalles Técnicos: Aplicación: App de apuestas de lotería Funcionalidad: Crear un nuevo documento en la biblioteca "bets" en MongoDB Problema: Duplicación de solicitudes http post cuando la conexión a internet es intermitente código relacionado: const onsubmitform: submithandler<formdata> = async (data) => { if (loading) return; dispatch(startloading()); let newbet = { betid: '', number: data?.number.toString(), price: data?.price, position: data?.position === 0 ? 1 : data?.position, bufferCount: bufferCount + 1, lotteries: selectedLotteries.map((lottery) => lottery?.id), lotteriesNames: selectedLotteries.map((lottery) => { return { code: lottery?.code, name: lottery?.name }; }), particular: showParticularInput }; if (showRedoubleInput) { if (data.redoublePosition < data.position) { dispatch(setMessage({ action: 'La posición del segundo número debe ser igual o superior a la posición del primer número' }, 'error')); dispatch(endLoading()); return; } const newRedoubleBet = { number: '**' + data?.redoubleNumber.toString(), position: data?.redoublePosition === 0 ? 2 : data?.redoublePosition, }; if (data?.redoubleNumber && !redoubleDisabled()) { newBet.redouble = newRedoubleBet; } } const body = [ { bookie: { ...User }, ...NewBet, 'be-bufferCount': bufferCount + 1, bufferCount: bufferCount + 1, id: 12, 'be-id': false, sending: false, deleted: false, sendingDeletion: false, toDelete: false, show: true, game: 'quiniela', }, ]; try { const response = await postBets(body); if (response?.data?.status === 'success') { newBet.betId = response?.data?.data[0]?._id; setSavedLotteriesBets([...SavedLotteriesBets, newBet]); setBufferCount(bufferCount + 1); setBetsIds([...BetsIds, response?.data?.data[0]?.id]); setBetsOfTodayId(response?.data?.data[0]?.day); } dispatch(setMessage({ action: 'Jugada realizada con éxito' })); } catch (error) { dispatch(setMessage({ action: 'ERROR Jugada no realizada' }, 'error')); } finally { getTodayBets(); reset({ price: watch('price') }); focusInputNumber(); dispatch(endLoading()); } }; Requisitos del Desarrollador: Experiencia en desarrollo con React Conocimiento en manejo de eventos y solicitudes HTTP Experiencia con Redux para la gestión del estado Familiaridad con bases de datos MongoDB Capacidad para solucionar problemas relacionados con la intermitencia de la red Objetivo del Proyecto: El objetivo es asegurar que la función onSubmitForm se ejecute una sola vez por cada clic del usuario, independientemente de la estabilidad de la conexión a Internet, y prevenir la duplicación de registros en la base de datos. Cómo Aplicar: Si tienes experiencia en el manejo de estos problemas y crees que puedes ayudarnos a resolver este inconveniente, por favor aplica a este proyecto. Asegúrate de incluir ejemplos de trabajos similares que hayas realizado y detallar tu experiencia con React y el manejo de solicitudes HTTP.
Categoría Programación y Tecnología
Subcategoría Programación Web
¿Cuál es el alcance del proyecto? Cambio mediano
¿Es un proyecto o una posición? Un proyecto
Actualmente tengo No aplica
Disponibilidad requerida Según se necesite
Integraciones de API Otros (Otras APIs)
Roles necesarios Programador
Plazo de Entrega: No definido
Habilidades necesarias