User can submit new journal through API.

This commit is contained in:
James Cole
2019-03-31 13:36:49 +02:00
parent c07ef3658b
commit b692cccdfb
30 changed files with 1461 additions and 711 deletions

View File

@@ -24,6 +24,7 @@ namespace FireflyIII\Http\Requests;
use Carbon\Carbon;
use Carbon\Exceptions\InvalidDateException;
use Exception;
use Illuminate\Foundation\Http\FormRequest;
use Log;
@@ -36,6 +37,26 @@ use Log;
*/
class Request extends FormRequest
{
/**
* @param $array
*
* @return array|null
*/
public function arrayFromValue($array): ?array
{
if (is_array($array)) {
return $array;
}
if (null === $array) {
return null;
}
if (is_string($array)) {
return explode(',', $array);
}
return null;
}
/**
* Return a boolean value.
*
@@ -60,11 +81,17 @@ class Request extends FormRequest
*
* @return bool
*/
public function convertBoolean(string $value): bool
public function convertBoolean(?string $value): bool
{
if (null === $value) {
return false;
}
if ('true' === $value) {
return true;
}
if ('yes' === $value) {
return true;
}
if (1 === $value) {
return true;
}
@@ -78,6 +105,30 @@ class Request extends FormRequest
return false;
}
/**
* @param string|null $string
*
* @return Carbon|null
*/
public function dateFromValue(?string $string): ?Carbon
{
if (null === $string) {
return null;
}
if ('' === $string) {
return null;
}
try {
$carbon = new Carbon($string);
} catch (Exception $e) {
Log::debug(sprintf('Invalid date: %s: %s', $string, $e->getMessage()));
return null;
}
return $carbon;
}
/**
* Return floating value.
*
@@ -107,6 +158,22 @@ class Request extends FormRequest
return (int)$this->get($field);
}
/**
* Parse to integer
*
* @param string|null $string
*
* @return int|null
*/
public function integerFromValue(?string $string): ?int
{
if (null === $string) {
return null;
}
return (int)$string;
}
/**
* Return string value.
*
@@ -121,12 +188,31 @@ class Request extends FormRequest
return app('steam')->cleanString((string)($this->get($field) ?? ''));
}
/**
* Parse and clean a string.
*
* @param string|null $string
*
* @return string|null
*/
public function stringFromValue(?string $string): ?string
{
if (null === $string) {
return null;
}
$result = app('steam')->cleanString($string);
return '' === $result ? null : $result;
}
/**
* Return date or NULL.
*
* @param string $field
*
* @return Carbon|null
* @throws Exception
*/
protected function date(string $field): ?Carbon
{