/** * Update the data. * * PUT|PATCH /api/positions/:id * * @param Request $request * @param Preset $preset * @param Position $position * @return \Illuminate\Http\JsonResponse */ public function update(Request $request, Preset $preset, Position $position) { $validator = new PositionValidator($preset, $request); if (!$validator->passes()) { return $validator->errors(); } $position->fill($request->only('x', 'y')); $position->save(); return $position->fresh()->load('piece'); }
/** @test **/ public function it_returns_an_errors_json_given_an_invalid_position() { $user = factory(User::class, 'active')->create(); $preset = factory(Preset::class)->create(['user_id' => $user->id]); $position = $preset->positions->first(); $position->x = 0; $position->y = 0; $position->save(); $position = Position::get()->last(); $parameters = ['x' => 0, 'y' => 0]; $expected = ['code' => 422]; $this->json('PUT', "/api/presets/{$preset->id}/positions/{$position->id}", $parameters)->seeJson($expected); }
/** @test **/ public function it_creates_positions_with_the_total_number_of_pieces_available_when_it_is_created() { $user = $this->createActiveUser(); $preset = factory(Preset::class)->create(['user_id' => $user->id]); $this->assertEquals(Piece::count(), Position::count()); }