demo/app/Modules/Tracker/UI/Web/Requests/Announce.php
2023-03-23 18:50:47 +01:00

57 lines
1.5 KiB
PHP

<?php
namespace LaraBB\Tracker\UI\Web\Requests;
use Illuminate\Foundation\Http\FormRequest;
use Rhilip\Bencode\Bencode;
/**
*
*/
class Announce extends FormRequest
{
/**
* @return bool
*/
public function authorize(): bool
{
return true;
}
/**
* @return string[]
*/
public function rules(): array
{
return [
'pid' => 'required|exists:users,pid',
'infohash' => 'required|exists:users_torrents,infohash',
'port' => 'required'
];
}
/**
* @return array|string[]
*/
public function messages(): array
{
return [
'pid.required' => Bencode::encode(['failure reason' => 'PID is missing. Please redownload the torrent.']),
'pid.exists' => Bencode::encode(['failure reason' => 'There is no user with this PID.']),
'infohash.required' => Bencode::encode(['failure reason' => 'Torrent info hash is missing. Please redownload the torrent.']),
'infohash.exists' => Bencode::encode(['failure reason' => 'This torrent is not registered on our tracker.']),
'port' => 'Parameter "port" is missing in request.'
];
}
public function all($keys = null): array
{
$data = parent::all($keys);
$data['pid'] = $this->route('pid');
$data['infohash'] = bin2hex($this->get('info_hash'));
$data['port'] = $this->get('port');
return $data;
}
}