Move Location validation rules to single method.

This commit is contained in:
James Cole 2019-12-31 14:01:53 +01:00
parent 96aa42b513
commit c193284471
No known key found for this signature in database
GPG Key ID: C16961E655E74B5E
7 changed files with 35 additions and 21 deletions

View File

@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests;
use FireflyIII\Models\Location;
use FireflyIII\Rules\IsBoolean;
/**
@ -77,10 +78,8 @@ class AccountStoreRequest extends Request
'interest' => 'required_if:type,liability|between:0,100|numeric',
'interest_period' => 'required_if:type,liability|in:daily,monthly,yearly',
'notes' => 'min:0|max:65536',
'latitude' => 'numeric|min:-90|max:90|nullable|required_with:longitude',
'longitude' => 'numeric|min:-180|max:180|nullable|required_with:latitude',
'zoom_level' => 'numeric|min:0|max:80|nullable|required_with:latitude',
];
$rules = Location::requestRules($rules);
return $rules;
}

View File

@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests;
use FireflyIII\Models\Location;
use FireflyIII\Rules\IsBoolean;
/**
@ -134,10 +135,8 @@ class AccountUpdateRequest extends Request
'interest' => 'required_if:type,liability|between:0,100|numeric',
'interest_period' => 'required_if:type,liability|in:daily,monthly,yearly',
'notes' => 'min:0|max:65536',
'latitude' => 'numeric|min:-90|max:90|nullable|required_with:longitude',
'longitude' => 'numeric|min:-180|max:180|nullable|required_with:latitude',
'zoom_level' => 'numeric|min:0|max:80|nullable|required_with:latitude',
];
$rules = Location::requestRules($rules);
return $rules;
}

View File

@ -23,6 +23,8 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests;
use FireflyIII\Models\Location;
/**
* Class TagStoreRequest
*
@ -73,13 +75,12 @@ class TagStoreRequest extends Request
*/
public function rules(): array
{
return [
$rules = [
'tag' => 'required|min:1|uniqueObjectForUser:tags,tag',
'description' => 'min:1|nullable',
'date' => 'date|nullable',
'latitude' => 'numeric|min:-90|max:90|nullable|required_with:longitude',
'longitude' => 'numeric|min:-180|max:180|nullable|required_with:latitude',
'zoom_level' => 'numeric|min:0|max:80|nullable',
];
return Location::requestRules($rules);
}
}

View File

@ -24,6 +24,8 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests;
use FireflyIII\Models\Location;
/**
* Class TagUpdateRequest
*
@ -76,13 +78,12 @@ class TagUpdateRequest extends Request
{
$tag = $this->route()->parameter('tagOrId');
return [
$rules = [
'tag' => 'required|min:1|uniqueObjectForUser:tags,tag,' . $tag->id,
'description' => 'min:1|nullable',
'date' => 'date|nullable',
'latitude' => 'numeric|min:-90|max:90|nullable|required_with:longitude',
'longitude' => 'numeric|min:-180|max:180|nullable|required_with:latitude',
'zoom_level' => 'numeric|min:0|max:80|nullable',
];
return Location::requestRules($rules);
}
}

View File

@ -23,6 +23,7 @@ declare(strict_types=1);
namespace FireflyIII\Http\Requests;
use FireflyIII\Models\Account;
use FireflyIII\Models\Location;
use FireflyIII\Rules\UniqueIban;
/**
@ -114,10 +115,8 @@ class AccountFormRequest extends Request
'amount_currency_id_virtual_balance' => 'exists:transaction_currencies,id',
'what' => 'in:' . $types,
'interest_period' => 'in:daily,monthly,yearly',
'latitude' => 'numeric|min:-90|max:90|nullable|required_with:longitude',
'longitude' => 'numeric|min:-180|max:180|nullable|required_with:latitude',
'zoom_level' => 'numeric|min:0|max:80|nullable',
];
$rules = Location::requestRules($rules);
if ('liabilities' === $this->get('objectType')) {
$rules['opening_balance'] = ['numeric', 'required','max:1000000000'];

View File

@ -22,6 +22,7 @@ declare(strict_types=1);
namespace FireflyIII\Http\Requests;
use FireflyIII\Models\Location;
use FireflyIII\Models\Tag;
/**
@ -86,14 +87,12 @@ class TagFormRequest extends Request
$tagRule = 'required|min:1|uniqueObjectForUser:tags,tag,' . $tag->id;
}
return [
$rules= [
'tag' => $tagRule,
'id' => $idRule,
'description' => 'min:1|nullable',
'date' => 'date|nullable',
'latitude' => 'numeric|min:-90|max:90|nullable',
'longitude' => 'numeric|min:-180|max:180|nullable',
'zoom_level' => 'numeric|min:0|max:80|nullable',
];
return Location::requestRules($rules);
}
}

View File

@ -70,4 +70,20 @@ class Location extends Model
return $this->morphTo();
}
/**
* Add rules for locations.
*
* @param array $rules
*
* @return array
*/
public static function requestRules(array $rules): array
{
$rules['latitude'] = 'numeric|min:-90|max:90|nullable|required_with:longitude';
$rules['longitude'] = 'numeric|min:-180|max:180|nullable|required_with:latitude';
$rules['zoom_level'] = 'numeric|min:0|max:80|nullable|required_with:latitude';
return $rules;
}
}