diff --git a/app/Http/Controllers/BookingController.php b/app/Http/Controllers/BookingController.php index 2cf7fc89..6650c2a3 100644 --- a/app/Http/Controllers/BookingController.php +++ b/app/Http/Controllers/BookingController.php @@ -328,4 +328,22 @@ class BookingController extends Controller 'china_beneficary' => $china_beneficiary ], 200); } -} \ No newline at end of file + + public function approveBankSlip(Request $request, $book_id) + { + if (!$Booking = Booking::where('user_id',Auth::user()->id)->where('id',$book_id)->first()) + { + return response()->json(['message'=>'Access denied'], 200); + } + + if(!$userBankSlip = UserBankSlip::where('book_id',$Booking->id)->first()) + { + return response()->json(['message'=>'Access denied'], 200); + } + + $userBankSlip->is_approve = 1; + $userBankSlip->save(); + return response()->json(['message'=>'Success'],200); + } + +} diff --git a/database/factories/UserBankSlipFactory.php b/database/factories/UserBankSlipFactory.php index 1fd73bba..78f1be24 100644 --- a/database/factories/UserBankSlipFactory.php +++ b/database/factories/UserBankSlipFactory.php @@ -3,7 +3,13 @@ use Faker\Generator as Faker; $factory->define(App\UserBankSlip::class, function (Faker $faker) { + $book_id = App\Booking::pluck('id')->toArray(); + return [ - // + 'bank_slip_type' => str_random(10), + 'bankslip_url' => str_random(10), + 'transfer_amount' => $faker->randomDigit, + 'cust_marking' => str_random(10), + 'book_id' => $faker->randomElement($book_id), ]; }); diff --git a/routes/api.php b/routes/api.php index 7c59f094..e341545f 100644 --- a/routes/api.php +++ b/routes/api.php @@ -40,6 +40,7 @@ Route::group(['middleware' => 'auth:api'], function () { Route::post('/booking/{id}/upload-user-bankslip', 'BookingController@uploadbankslip'); Route::post('/booking/{id}/upload-po', 'BookingController@uploadPurchaseOrder'); Route::patch('/booking/{id}/bankslip-amount', 'BookingController@updateBankSlipAmount'); + Route::post('booking/{book_id}/approve-bank-slip','BookingController@approveBankSlip'); Route::get('/user', 'UserController@show'); }); diff --git a/tests/Feature/BookingTest.php b/tests/Feature/BookingTest.php index 332df182..f18bde52 100644 --- a/tests/Feature/BookingTest.php +++ b/tests/Feature/BookingTest.php @@ -14,11 +14,13 @@ use Auth; use Artisan; use App\User; use App\Booking; +use App\UserBankSlip; class BookingTest extends TestCase { protected $user; protected $booking; + protected $userBankSlip; public function setUp() { @@ -28,6 +30,10 @@ class BookingTest extends TestCase $this->booking = factory(Booking::class)->create([ 'user_id' => $this->user->id ]); + $this->userBankSlip = factory(UserBankSlip::class)->create([ + 'book_id' => $this->booking->id + ]); + } public function testPost() @@ -113,4 +119,11 @@ class BookingTest extends TestCase ->json('POST','/api/booking/' . $this->booking->id . '/cancel', []) ->assertSuccessful(); } + + public function testApproveBankSlip() + { + $this->actingAs($this->user) + ->json('POST','/api/booking/' . $this->booking->id . '/approve-bank-slip', []) + ->assertSuccessful(); + } }