From 8860cee7d8262def11f22dbd4c7e88183dfa795d Mon Sep 17 00:00:00 2001 From: Sebastian Marcet Date: Tue, 18 Sep 2018 11:03:31 -0300 Subject: [PATCH] Fixed validation on member affiliation endpoints Fixed end_date validation condition for current one Change-Id: I39adda4b6c9ddef754e0297ccae7bc02378cbd7e --- .../Apis/Protected/Main/OAuth2MembersApiController.php | 4 ++-- app/Providers/AppServiceProvider.php | 4 +++- tests/OAuth2MembersApiTest.php | 1 + 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/Apis/Protected/Main/OAuth2MembersApiController.php b/app/Http/Controllers/Apis/Protected/Main/OAuth2MembersApiController.php index ca06f8a8..7e3ab4d1 100644 --- a/app/Http/Controllers/Apis/Protected/Main/OAuth2MembersApiController.php +++ b/app/Http/Controllers/Apis/Protected/Main/OAuth2MembersApiController.php @@ -239,7 +239,7 @@ final class OAuth2MembersApiController extends OAuth2ProtectedController $rules = [ 'is_current' => 'required|boolean', 'start_date' => 'required|date_format:U|valid_epoch', - 'end_date' => 'sometimes|date_format:U|after_or_null_epoch:start_date', + 'end_date' => 'sometimes|after_or_null_epoch:start_date', 'organization_id' => 'required|integer', 'job_title' => 'sometimes|string|max:255' ]; @@ -294,7 +294,7 @@ final class OAuth2MembersApiController extends OAuth2ProtectedController $rules = [ 'is_current' => 'sometimes|boolean', 'start_date' => 'sometimes|date_format:U|valid_epoch', - 'end_date' => 'sometimes|date_format:U|after_or_null_epoch:start_date', + 'end_date' => 'sometimes|after_or_null_epoch:start_date', 'organization_id' => 'sometimes|integer', 'job_title' => 'sometimes|string|max:255' ]; diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 2ce46635..35095d95 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -251,7 +251,9 @@ class AppServiceProvider extends ServiceProvider if(is_null($value) || intval($value) == 0 ) return true; if(isset($data[$parameters[0]])){ $compare_to = $data[$parameters[0]]; - return intval($compare_to) < intval($value); + $parsed = date_parse_from_format('U', $value); + $valid = $parsed['error_count'] === 0 && $parsed['warning_count'] === 0; + return $valid && intval($compare_to) < intval($value); } return true; }); diff --git a/tests/OAuth2MembersApiTest.php b/tests/OAuth2MembersApiTest.php index a39ff8f0..148d587e 100644 --- a/tests/OAuth2MembersApiTest.php +++ b/tests/OAuth2MembersApiTest.php @@ -173,6 +173,7 @@ final class OAuth2MembersApiTest extends ProtectedApiTest 'is_current' => true, 'start_date' => $start_datetime_unix, 'job_title' => 'test affiliation', + 'end_date' => null, 'organization_id' => 1 ];