Implement piggy bank API.

This commit is contained in:
James Cole
2018-06-29 08:06:17 +02:00
parent 12a84572e2
commit f048e943f8
3 changed files with 18 additions and 10 deletions

View File

@@ -160,14 +160,22 @@ class PiggyBankController extends Controller
} }
/** /**
* @param Request $request * @param PiggyBankRequest $request
* @param string $object * @param PiggyBank $piggyBank
* *
* @return JsonResponse * @return JsonResponse
*/ */
public function update(Request $request, string $object): JsonResponse public function update(PiggyBankRequest $request, PiggyBank $piggyBank): JsonResponse
{ {
// todo replace code and replace request object. $data = $request->getAll();
$budget = $this->repository->update($piggyBank, $data);
$manager = new Manager();
$baseUrl = $request->getSchemeAndHttpHost() . '/api/v1';
$manager->setSerializer(new JsonApiSerializer($baseUrl));
$resource = new Item($budget, new PiggyBankTransformer($this->parameters), 'piggy_banks');
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json');
} }
} }

View File

@@ -78,8 +78,8 @@ class PiggyBankRequest extends Request
case 'PUT': case 'PUT':
case 'PATCH': case 'PATCH':
/** @var PiggyBank $piggyBank */ /** @var PiggyBank $piggyBank */
$piggyBank = $this->route()->parameter('piggyBank'); $piggyBank = $this->route()->parameter('piggyBank');
$rules['name'] = 'required|between:1,255|uniquePiggyBankForUser:' . $piggyBank->id; $rules['name'] = 'required|between:1,255|uniquePiggyBankForUser:' . $piggyBank->id;
break; break;
} }

View File

@@ -478,7 +478,7 @@ class PiggyBankRepository implements PiggyBankRepositoryInterface
/** @var PiggyBank $piggyBank */ /** @var PiggyBank $piggyBank */
$piggyBank = PiggyBank::create($data); $piggyBank = PiggyBank::create($data);
$this->updateNote($piggyBank, $data['note']); $this->updateNote($piggyBank, $data['note']); // todo rename to 'notes'
// repetition is auto created. // repetition is auto created.
$repetition = $this->getRepetition($piggyBank); $repetition = $this->getRepetition($piggyBank);
@@ -500,9 +500,9 @@ class PiggyBankRepository implements PiggyBankRepositoryInterface
{ {
$piggyBank->name = $data['name']; $piggyBank->name = $data['name'];
$piggyBank->account_id = (int)$data['account_id']; $piggyBank->account_id = (int)$data['account_id'];
$piggyBank->targetamount = round($data['targetamount'], 2); $piggyBank->targetamount = $data['targetamount'];
$piggyBank->targetdate = $data['targetdate']; $piggyBank->targetdate = $data['targetdate'] ?? $piggyBank->targetdate;
$piggyBank->startdate = $data['startdate']; $piggyBank->startdate = $data['startdate'] ?? $piggyBank->startdate;
$piggyBank->save(); $piggyBank->save();