Complete API for recurring transactions.

This commit is contained in:
James Cole
2018-06-30 06:14:39 +02:00
parent b8893bcad7
commit 0509e54a95
8 changed files with 98 additions and 47 deletions

View File

@@ -155,14 +155,25 @@ class RecurrenceController extends Controller
}
/**
* @param Request $request
* @param string $object
* @param RecurrenceRequest $request
* @param Recurrence $recurrence
*
* @return JsonResponse
*/
public function update(Request $request, string $object): JsonResponse
public function update(RecurrenceRequest $request, Recurrence $recurrence): JsonResponse
{
// todo replace code and replace request object.
$data = $request->getAll();
//
$category = $this->repository->update($recurrence, $data);
$manager = new Manager();
$baseUrl = $request->getSchemeAndHttpHost() . '/api/v1';
$manager->setSerializer(new JsonApiSerializer($baseUrl));
$resource = new Item($category, new RecurrenceTransformer($this->parameters), 'recurrences');
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json');
}
}

View File

@@ -124,7 +124,7 @@ class RecurrenceRequest extends Request
return [
'type' => 'required|in:withdrawal,transfer,deposit',
'title' => 'required|between:1,255',
'title' => 'required|between:1,255|uniqueObjectForUser:recurrences,title',
'description' => 'between:1,65000',
'first_date' => sprintf('required|date|after:%s', $today->format('Y-m-d')),
'repeat_until' => sprintf('date|after:%s', $today->format('Y-m-d')),
@@ -139,8 +139,8 @@ class RecurrenceRequest extends Request
// rules for repetitions.
'repetitions.*.type' => 'required|in:daily,weekly,ndom,monthly,yearly',
'repetitions.*.moment' => 'between:0,10',
'repetitions.*.skip' => 'required|between:0,31',
'repetitions.*.weekend' => 'required|between:1,4',
'repetitions.*.skip' => 'required|numeric|between:0,31',
'repetitions.*.weekend' => 'required|numeric|min:1|max:4',
// rules for transactions.
'transactions.*.currency_id' => 'numeric|exists:transaction_currencies,id|required_without:transactions.*.currency_code',