Categorygithub.com/ChuBu0012/reserve-Buffet-api
repositorypackage
0.0.0-20240227161938-63def08be5d5
Repository: https://github.com/chubu0012/reserve-buffet-api.git
Documentation: pkg.go.dev

# README

websocket -> /ws
updatestate -> /updatestate/:id POST Method
{
    "phone": "099-999-9999",
    "status": (0,1,2), 0 = ว่าง, 1 = จองเเล้ว, 2 = โต๊ะไม่ว่าง
    "startTime": "2024-2-19 16.00",
    "endTime": "2024-2-19 18.50"
}
gettables -> /gettables GET Method
import { useEffect, useState } from 'react';

function App() {
  const [wsData, setWsData] = useState([]);
  const [ws, setWs] = useState(null);

  useEffect(() => {
    const fetchData = async () => {
      const response = await fetch('http://localhost:8080/gettables');
      const data = await response.json();
      setWsData(data)
      console.log(data)
    };

    fetchData();

    const ws = new WebSocket('ws://localhost:8080/ws');

    ws.onopen = () => {
      console.log('WebSocket is connected.');
    };

    ws.onmessage = (event) => {
      console.log(JSON.parse(event.data));
      const newData = JSON.parse(event.data);
      setWsData(oldData => oldData.map(ele => ele.tableid === newData.tableid ? newData : ele));
    };

    ws.onerror = (error) => {
      console.log('WebSocket error:', error);
    };

    ws.onclose = () => {
      console.log('WebSocket is closed.');
    };

    setWs(ws);
    
    return () => {
      ws.close();
    };
  }, []);


  return (
    <>
    <table cellSpacing={10} >
      <thead></thead>
      <tbody>
      {
        wsData.map((ele)=>{
          return <tr key={ele.tableid}>
            <td>{ele.tableid}</td>
            <td>{ele.phone}</td>
            <td>{ele.status}</td>
            <td>{ele.code}</td>
            <td>{ele.startTime}</td>
            <td>{ele.endTime}</td>
            </tr>
        })
      }

      </tbody>
      <tfoot></tfoot>
    </table>
    </>
  );
}

export default App;