ghost
3 years ago
10 changed files with 244 additions and 2 deletions
Binary file not shown.
@ -0,0 +1,72 @@
@@ -0,0 +1,72 @@
|
||||
<?php |
||||
|
||||
$response = [ |
||||
'success' => false, |
||||
'message' => _('Internal server error'), |
||||
'avatar' => false |
||||
]; |
||||
|
||||
if (isset($_SESSION['userName'])) { |
||||
|
||||
$userName = isset($_POST['userName']) ? Filter::userName($_POST['userName']) : $_SESSION['userName']; |
||||
|
||||
if ($avatarVersions = $_twister->getDHT($userName, 'avatar', 's')) { |
||||
|
||||
// Check avatar exists |
||||
if ($userId = $_modelUser->getUserId($userName)) { |
||||
|
||||
// Add DHT version if not exists |
||||
foreach ($avatarVersions as $avatarVersion) { |
||||
|
||||
if (!$_modelAvatar->versionExists($userId, |
||||
$avatarVersion['p']['height'], |
||||
$avatarVersion['p']['seq'])) { |
||||
|
||||
$_modelAvatar->add( $userId, |
||||
$avatarVersion['p']['height'], |
||||
$avatarVersion['p']['seq'], |
||||
$avatarVersion['p']['time'], |
||||
$avatarVersion['p']['v']); |
||||
} |
||||
} |
||||
} |
||||
|
||||
// Get latest version available |
||||
if ($avatarInfo = $_modelAvatar->get($userId)) { |
||||
|
||||
$response = [ |
||||
'success' => true, |
||||
'message' => _('Avatar successfully received'), |
||||
'avatar' => $avatarInfo['data'] |
||||
]; |
||||
|
||||
} else { |
||||
|
||||
$response = [ |
||||
'success' => false, |
||||
'message' => _('Avatar data not available'), |
||||
'avatar' => false |
||||
]; |
||||
} |
||||
|
||||
} else { |
||||
|
||||
$response = [ |
||||
'success' => false, |
||||
'message' => _('Could not receive avatar details'), |
||||
'avatar' => false |
||||
]; |
||||
|
||||
} |
||||
|
||||
} else { |
||||
|
||||
$response = [ |
||||
'success' => false, |
||||
'message' => _('Session expired. Please, reload the page.'), |
||||
'avatar' => false |
||||
]; |
||||
} |
||||
|
||||
header('Content-Type: application/json; charset=utf-8'); |
||||
echo json_encode($response); |
@ -0,0 +1,72 @@
@@ -0,0 +1,72 @@
|
||||
<?php |
||||
|
||||
class ModelAvatar extends Model { |
||||
|
||||
public function get(int $userId) { |
||||
|
||||
try { |
||||
|
||||
$query = $this->_db->prepare("SELECT * FROM `avatar` |
||||
WHERE `userId` = ? |
||||
|
||||
ORDER BY `seq` DESC |
||||
LIMIT 1"); |
||||
|
||||
$query->execute([$userId]); |
||||
|
||||
return $query->fetch(); |
||||
|
||||
} catch (PDOException $e) { |
||||
|
||||
trigger_error($e->getMessage()); |
||||
return false; |
||||
} |
||||
} |
||||
|
||||
public function versionExists(int $userId, int $blockId, int $seq) { |
||||
|
||||
try { |
||||
|
||||
$query = $this->_db->prepare("SELECT COUNT(*) AS `total` FROM `avatar` |
||||
WHERE `userId` = ? AND `blockId` = ? AND `seq` = ?"); |
||||
|
||||
$query->execute([$userId, $blockId, $seq]); |
||||
|
||||
return $query->fetch()['total']; |
||||
|
||||
} catch (PDOException $e) { |
||||
|
||||
trigger_error($e->getMessage()); |
||||
return false; |
||||
} |
||||
} |
||||
|
||||
public function add(int $userId, |
||||
int $blockId, |
||||
int $seq, |
||||
int $time, |
||||
string $data) { |
||||
|
||||
try { |
||||
|
||||
$query = $this->_db->prepare("INSERT INTO `avatar` SET `userId` = ?, |
||||
`blockId` = ?, |
||||
`seq` = ?, |
||||
`time` = ?, |
||||
`data` = ?"); |
||||
|
||||
$query->execute([$userId, |
||||
$blockId, |
||||
$seq, |
||||
$time, |
||||
$data]); |
||||
|
||||
return $this->_db->lastInsertId(); |
||||
|
||||
} catch (PDOException $e) { |
||||
|
||||
trigger_error($e->getMessage()); |
||||
return false; |
||||
} |
||||
} |
||||
} |
Loading…
Reference in new issue