ichinose9372 / ft_transcendense_42

4 stars 1 forks source link

トーナメント画面作成 #44

Closed ryhara closed 4 months ago

ryhara commented 5 months ago

トーナメント画面作成

ryhara commented 5 months ago

今日より着手

ryhara commented 4 months ago

2024/05/04

jestの実行方法,ローカルのみ(ymlに書いてしまうとその他に影響ありそうなのでDockerfile単体で機能)

front-build:
    docker build -t frontend-test -f ./src/frontend/Dockerfile ./src/frontend

front-run:
    docker run -it --rm -p 3000:3000 -v ./src/frontend/:/app  --name frontend-test frontend-test bash

front-build→front-run→(dockerのbashが起動)→npm test


完了

image

次回以降 トーナメントの描画

yuidvg commented 4 months ago

2024/05/05週

ryhara commented 4 months ago

以下の画面でフォームに情報を入力して,下のボタンを押してください。

ボタン押す→storeTournamentResult.py内のsave_testに対してPOST→save_testからレスポンス→レスポンスをtestData.js内でconsole.logで出力

CSRFは余り分かっていないのでとりあえず無視の実装してます。urls.pyも追加してます。

image

testData.js

// testデータをpushする用の関数
function testDataPush() {
  const data = getFormData();
  appState.setState(data);
    const info = makeTournament();
    appState.setState({
        tournament: info.tournament,
        matches: info.matches,
        participants: info.participants,
    });
  const state = appState.getState();
  console.log(state);
  // テストデータをdjangoに送信し,djangoからの返り値をコンソールに表示する
  // djangoのurlをここで指定する
  fetch("/game/save_test/", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
    },
    body: JSON.stringify(state),
  })
    .then((response) => response.json())
    .then((responseData) => {
      console.log("Success! From Django:", responseData);
    })
    .catch((error) => {
      console.error("Error:", error);
    });
}

storeTournamentResult.py

@csrf_exempt # TODO: 本番環境では無効化しないほうがいいかも
@require_http_methods(["POST"])
def save_test(request):
    data = json.loads(request.body)

    # TODO : データの処理を行う
    print("Received data:", data)

    # TODO : 必要があればレスポンスを作成する,現在はデータが受け取れたことを確認するためにそのままデータを返している
    response_data = {
        'status': 'success',
        'message': 'Data received successfully',
        'data': data,
    }

    # JSONレスポンスを返す
    return JsonResponse(response_data)
ryhara commented 4 months ago

対応してないこと