dj_mix_hosting_software/classes/Playcount.php
Cody Cook 70c8a87e15
All checks were successful
SonarQube Scan / SonarQube Trigger (push) Successful in 30s
Changes.
2024-05-19 20:01:13 -07:00

61 lines
1.6 KiB
PHP

<?php
namespace DJMixHosting;
class Playcount
{
private $db;
private $mix_id;
public function __construct($mix, $db)
{
$this->db = $db;
$this->mix_id = $mix;
}
public function getPlaycount()
{
$sql = "SELECT value FROM mix_meta WHERE mix_id = ? AND attribute = 'playcount'";
$stmt = $this->db->prepare($sql);
$stmt->execute([$this->mix_id]);
$result = $stmt->get_result();
$row = $result->fetch_assoc();
return $row['value'];
}
public function updatePlaycount(): void
{
if ($this->checkForPlaycount()) {
$this->incrementPlaycount();
} else {
$this->addPlaycount();
}
}
private function checkForPlaycount()
{
$sql = "SELECT meta_id FROM mix_meta WHERE mix_id = ? AND attribute = 'playcount'";
$stmt = $this->db->prepare($sql);
$stmt->bind_param('i', $this->mix_id);
$stmt->execute();
$result = $stmt->get_result();
return $result->fetch_assoc();
}
private function incrementPlaycount()
{
$sql = "UPDATE mix_meta SET value = value + 1 WHERE mix_id = ? AND attribute = 'playcount'";
$stmt = $this->db->prepare($sql);
$stmt->execute([$this->mix_id]);
}
public function addPlaycount()
{
$sql = "INSERT INTO mix_meta (mix_id, attribute, value) VALUES (?, 'playcount', 1)";
$stmt = $this->db->prepare($sql);
$stmt->execute([$this->mix_id]);
}
}