nativegallery/app/Controllers/Api/Admin/Images/SetVisibility.php
2024-07-21 04:43:25 +03:00

36 lines
No EOL
1.2 KiB
PHP

<?php
namespace App\Controllers\Api\Admin\Images;
use App\Services\{Auth, Router, GenerateRandomStr, DB, Json, EXIF};
use App\Models\{User, Vote, Photo};
class SetVisibility
{
public function __construct()
{
$photo = new Photo($_GET['id']);
$data = json_decode($photo->i('content'), true);
if (!array_key_exists('declineReason', $data)) {
$data['declineReason'] = null;
}
$data['declineReason'] = $_GET['decline_reason'];
$updatedJsonString = json_encode($data);
DB::query('UPDATE photos SET moderated=:mod, timeupload=:time, content=:c WHERE id=:id', array(':id'=>$_GET['id'], ':mod'=>$_GET['mod'], ':time'=>time(), ':c'=>$updatedJsonString));
$uid = DB::query('SELECT user_id FROM photos WHERE id=:id', array(':id'=>$_GET['id']))[0]['user_id'];
if ($_GET['mod'] === 1) {
$followers = DB::query('SELECT * FROM followers WHERE user_id=:uid', array(':uid'=>$uid));
foreach ($followers as $f) {
DB::query('INSERT INTO followers_notifications VALUES (\'0\', :uid, :fid, :pid, 0)', array(':uid'=>$uid, ':fid'=>$f['follower_id'], ':pid'=>$_GET['id']));
}
}
header('Location: ' . $_SERVER['HTTP_REFERER']);
}
}