ai-flash-card / lib / models / match.js
match.js
Raw
import pool from "../db";

class Match {
  static async createMatch(
    match_name,
    secret_key,
    description,
    match_url,
    id_user,
    id_game
  ) {
    const query =
      "INSERT INTO matchs (match_name, secret_key, description, match_url, id_user, id_game) VALUES (?, ?, ?, ?, ?, ? )";
    const [result] = await pool.execute(query, [
      match_name,
      secret_key,
      description,
      match_url,
      id_user,
      id_game,
    ]);
    return result.insertId;
  }

  static async findByUrl(matchUrl) {
    const query = "SELECT * FROM matchs WHERE match_url = ?";
    const [result] = await pool.execute(query, [matchUrl]);
    return result[0];
  }

  static async findAllMyMatches(id_user) {
    const query = "SELECT * FROM matchs WHERE id_user = ?";
    const [result] = await pool.execute(query, [id_user]);
    return result;
  }

  static async findById(id) {
    const query = "SELECT * FROM matchs WHERE id = ?";
    const [results] = await pool.execute(query, [id]);
    return results[0];
  }

  static async getPlayers(matchId) {
    const query = "SELECT * FROM players WHERE match_id = ? ORDER BY id DESC";
    const [results] = await pool.execute(query, [matchId]);
    return results;
  }

  static async getGame(id) {
    const query = "SELECT * FROM games WHERE id = ?";
    const [results] = await pool.execute(query, [id]);
    return results[0];
  }

  static async submitNickname(matchId, nickname) {
    const query = "INSERT INTO players (match_id, nickname) VALUES (?, ?)";
    await pool.execute(query, [matchId, nickname]);
    return true;
  }
}

export default Match;