mirror of
https://github.com/cydrobolt/polr.git
synced 2024-09-19 15:11:40 +02:00
Validate forms and APIs using \Validator to reject invalid data
This commit is contained in:
parent
f8565c6dc2
commit
8e3befd96c
@ -7,18 +7,21 @@ use App\Factories\LinkFactory;
|
||||
use App\Helpers\LinkHelper;
|
||||
|
||||
class ApiLinkController extends ApiController {
|
||||
public static function shortenLink(Request $request) {
|
||||
public function shortenLink(Request $request) {
|
||||
$response_type = $request->input('response_type');
|
||||
$user = self::getApiUserInfo($request);
|
||||
|
||||
/* */
|
||||
// Validate parameters
|
||||
$validator = \Validator::make($request->all(), [
|
||||
'url' => 'required|url'
|
||||
]);
|
||||
if ($validator->fails()) {
|
||||
return abort(400, 'Parameters invalid or missing.');
|
||||
}
|
||||
|
||||
$long_url = $request->input('url'); // * required
|
||||
$is_secret = ($request->input('is_secret') == 'true' ? true : false);
|
||||
|
||||
if (!self::checkRequiredArgs([$long_url])) {
|
||||
abort(400, "Missing required arguments.");
|
||||
}
|
||||
|
||||
$link_ip = $request->ip();
|
||||
$custom_ending = $request->input('custom_ending');
|
||||
|
||||
@ -32,18 +35,21 @@ class ApiLinkController extends ApiController {
|
||||
return self::encodeResponse($formatted_link, 'shorten', $response_type);
|
||||
}
|
||||
|
||||
public static function lookupLink(Request $request) {
|
||||
public function lookupLink(Request $request) {
|
||||
$response_type = $request->input('response_type');
|
||||
$user = self::getApiUserInfo($request);
|
||||
|
||||
/* */
|
||||
// Validate URL form data
|
||||
$validator = Validator::make($request, [
|
||||
'url_ending' => 'required|alpha_dash'
|
||||
]);
|
||||
|
||||
$url_ending = $request->input('url_ending'); // * required
|
||||
|
||||
if (!self::checkRequiredArgs([$url_ending])) {
|
||||
abort(400, "Missing required arguments.");
|
||||
if ($validator->fails()) {
|
||||
return abort(400, 'Parameters invalid or missing.');
|
||||
}
|
||||
|
||||
$url_ending = $request->input('url_ending');
|
||||
|
||||
// "secret" key required for lookups on secret URLs
|
||||
$url_key = $request->input('url_key');
|
||||
|
||||
@ -55,7 +61,6 @@ class ApiLinkController extends ApiController {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if ($link) {
|
||||
return self::encodeResponse([
|
||||
'long_url' => $link['long_url'],
|
||||
|
@ -24,14 +24,15 @@ class LinkController extends Controller {
|
||||
return redirect(route('index'))->with('error', 'You must be logged in to shorten links.');
|
||||
}
|
||||
|
||||
$this->request = $request;
|
||||
// Validate URL form data
|
||||
$this->validate($request, [
|
||||
'link-url' => 'required|url'
|
||||
]);
|
||||
|
||||
$long_url = $request->input('link-url');
|
||||
$custom_ending = $request->input('custom-ending');
|
||||
$is_secret = ($request->input('options') == "s" ? true : false);
|
||||
|
||||
$creator = session('username');
|
||||
|
||||
$link_ip = $request->ip();
|
||||
|
||||
try {
|
||||
|
@ -57,15 +57,17 @@ class UserController extends Controller {
|
||||
return redirect(route('index'))->with('error', 'Sorry, but registration is disabled.');
|
||||
}
|
||||
|
||||
// Validate signup form data
|
||||
$this->validate($request, [
|
||||
'username' => 'required|alpha_dash',
|
||||
'password' => 'required',
|
||||
'email' => 'required|email'
|
||||
]);
|
||||
|
||||
$username = $request->input('username');
|
||||
$password = $request->input('password');
|
||||
$email = $request->input('email');
|
||||
|
||||
if (!self::checkRequiredArgs([$username, $password, $email])) {
|
||||
// missing a required argument
|
||||
return redirect(route('signup'))->with('error', 'Please fill in all required fields.');
|
||||
}
|
||||
|
||||
$ip = $request->ip();
|
||||
|
||||
$user_exists = UserHelper::userExists($username);
|
||||
|
@ -59,8 +59,8 @@ $app->middleware([
|
||||
Illuminate\Cookie\Middleware\EncryptCookies::class,
|
||||
// Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
|
||||
Illuminate\Session\Middleware\StartSession::class,
|
||||
// Illuminate\View\Middleware\ShareErrorsFromSession::class,
|
||||
Laravel\Lumen\Http\Middleware\VerifyCsrfToken::class,
|
||||
Illuminate\View\Middleware\ShareErrorsFromSession::class,
|
||||
App\Http\Middleware\VerifyCsrfToken::class
|
||||
]);
|
||||
|
||||
// $app->routeMiddleware([
|
||||
|
@ -102,6 +102,8 @@ return [
|
||||
|
|
||||
*/
|
||||
|
||||
'attributes' => [],
|
||||
'attributes' => [
|
||||
'link-url' => 'link URL'
|
||||
],
|
||||
|
||||
];
|
||||
|
@ -70,6 +70,13 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
@if (Session::has('success'))
|
||||
toastr["success"](`{{session('success')}}`, "Success")
|
||||
@endif
|
||||
|
||||
@if (count($errors) > 0)
|
||||
// Handle Lumen validation errors
|
||||
@foreach ($errors->all() as $error)
|
||||
toastr["error"](`{{$error}}`, "Error")
|
||||
@endforeach
|
||||
@endif
|
||||
</script>
|
||||
|
||||
@yield('js')
|
||||
|
Loading…
Reference in New Issue
Block a user