diff --git a/app/Http/Controllers/BookingController.php b/app/Http/Controllers/BookingController.php index c095741a..0d6255c4 100644 --- a/app/Http/Controllers/BookingController.php +++ b/app/Http/Controllers/BookingController.php @@ -47,13 +47,7 @@ class BookingController extends Controller break; } -<<<<<<< HEAD // Calculation Service charge -======= - - // Calculation - // Service charge ->>>>>>> 83dfca2ae18825a69bca7aec5619abf7f4d0671f $amount = $request->input("amount"); //logic : if amount higher than 10,000, no service charge. if amount lower than 10,000, 20.00 service charge @@ -114,9 +108,13 @@ class BookingController extends Controller return response()->json($booking, 201); } - + public function update(Request $request, $book_id) { + if (!Auth::check()) + { + return response()->json(['message'=>'not loggin'],200); + } $book_id = Booking::find($book_id); $book_id->account_name = $request->input('account_name'); $book_id->account_num = $request->input('account_num'); @@ -134,98 +132,85 @@ class BookingController extends Controller public function uploadbankslip(Request $request, $id) { - $user_bankslip = Booking::where("user_id", Auth::user()->id)->first(); - if (!$user_bankslip) - { - return response()->json(['message'=>'Access denied'], 200); - } - - $validator = Validator::make($request->all(), [ - 'bankslip_url' => 'image|mimes:jpg,jpeg,bmp,png' - ]); - - if($validator->fails()) - { - return response()->json(['message'=>'Incorrect format'],200); - } - - $unique_image_url = ""; //init variable - if($bankslip_url = $request->file('bankslip_url')) - { - // Get image name and store it - $filename = $bankslip_url->getClientOriginalName(); - $input['bankslip_url'] = $filename; - - //hash image name - $unique_name = 'bank_slip_' . md5($filename. time()); - - // Get image extension concentae it with hashed image name - $ext = $bankslip_url->getClientOriginalExtension(); - $unique_image_url = $unique_name. '.' .$ext; - //update database - Storage::putFileAs( - 'bankslip_url',/*folder name*/ $bankslip_url, $unique_image_url - ); - - } //end if - else { - return response()->json(['message' => 'No file detected'], 400); - } - - $booking = Booking::find($id); + + /* Validation*/ + if (!$booking || Auth::user()->id != $booking->user_id) + { + return response()->json(['message'=>'Access denied'], 200); + } + + $validator = Validator::make($request->all(), [ + 'bankslip_url' => 'image|mimes:jpg,jpeg,bmp,png' + ]); + + if($validator->fails()) + { + return response()->json(['message'=>'Incorrect format'],200); + } + + if(!$bankslip_file = $request->file('bankslip_url')) + { + return response()->json(['message' => 'No file detected'], 400); + } + /* End Validation */ + + $filename = $bankslip_file->getClientOriginalName(); + $ext = $bankslip_file->getClientOriginalExtension(); + $input['bankslip_url'] = $filename; + + $unique_name = 'bank_slip_' . md5($filename. time()); + $unique_image_url = $unique_name. '.' .$ext; + Storage::putFileAs( + 'bankslip_url',/*folder name*/ $bankslip_file, $unique_image_url + ); + $booking->cust_marking = $request->input('cust_marking'); $booking->bank_slip_type = $request->input('bank_slip_type'); - // Create Post $user_bankslip = new UserBankSlip; $user_bankslip->book_id = $booking->id; $user_bankslip->bankslip_url = $unique_image_url; $user_bankslip->transfer_amount = $request->input('transfer_amount'); $user_bankslip->save(); - return response()->json(['message'=>$user_bankslip],200); + return response()->json(['message'=>"Success"],200); } public function uploadPurchaseOrder(Request $request, $id) { - $user_po = Booking::where("user_id", Auth::user()->id)->first(); - if (!$user_po) - { - return response()->json(['message'=>'Access denied'], 200); - } + $booking = Booking::find($id); + /* Validation */ + if (!$booking || Auth::user()->id != $booking->user_id) + { + return response()->json(['message'=>'Access denied'], 200); + } - $validator = Validator::make($request->all(), [ - 'image_url' => 'image|mimes:jpg,jpeg,bmp,png' - ]); + $validator = Validator::make($request->all(), [ + 'image_url' => 'image|mimes:jpg,jpeg,bmp,png' + ]); - if($validator->fails()) - { - return response()->json(['message'=>'Incorrect format'],200); - } + if($validator->fails()) + { + return response()->json(['message'=>'Incorrect format'],200); + } - $unique_image_url = ""; // declare variable - if($image_url = $request->file('image_url')) - { - // Get image name and store it - $filename = $image_url->getClientOriginalName(); - $input['image_url'] = $filename; - - // hash image name - $unique_name = 'purchase_order_' . md5($filename. time()); + if(!$user_input_file = $request->file('image_url')) + { + return response()->json(['message' => 'No file detected'], 400); + } + /* End Validation */ - // Get image extension concentae it with hashed image name - $ext = $image_url->getClientOriginalExtension(); - $unique_image_url = $unique_name. '.' .$ext; - //update database - Storage::putFileAs( - 'image_url',/*folder name*/ $image_url, $unique_image_url - ); - } //end if - else { - return response()->json(['message' => 'No file detected'], 400); - } + $filename = $user_input_file->getClientOriginalName(); + $ext = $user_input_file->getClientOriginalExtension(); + + $input['image_url'] = $filename; + $unique_name = 'purchase_order_' . md5($filename. time()); + $unique_image_url = $unique_name. '.' .$ext; + Storage::putFileAs( + 'image_url',/*folder name*/ $user_input_file, $unique_image_url + ); $booking = Booking::find($id); $user_po = new PurchaseOrder; @@ -233,32 +218,12 @@ class BookingController extends Controller $user_po->book_id = $booking->id; $user_po->amount = $request->input('amount'); $user_po->save(); + return response()->json(['message'=>'Success'],200); } -<<<<<<< HEAD -======= - - public function update(Request $request, $book_id) - { - $book_id = Booking::find($book_id); - - $book_id->account_name = $request->input('account_name'); - $book_id->account_num = $request->input('account_num'); - $book_id->bank_name = $request->input('bank_name'); - $book_id->bank_branch = $request->input('bank_branch'); - $book_id->company_name = $request->input('company_name'); - $book_id->company_address = $request->input('company_address'); - $book_id->bank_address = $request->input('bank_address'); - $book_id->swift_code = $request->input('swift_code'); - $book_id->cnap = $request->input('cnap'); - $book_id->save(); - - return response()->json(['book_id'=>$book_id],200); - } - ->>>>>>> 83dfca2ae18825a69bca7aec5619abf7f4d0671f public function delete(Booking $book_id) { + $booking = Booking::where('user_id', Auth::user())->where('id', $book_id)->firstOrFail(); $booking->delete($book_id); return response()->json($book_id, 204); } diff --git a/composer.lock b/composer.lock index 216fe060..a060a284 100644 --- a/composer.lock +++ b/composer.lock @@ -1063,16 +1063,16 @@ }, { "name": "laravel/framework", - "version": "v5.6.24", + "version": "v5.6.25", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "56290edeb0d8051826d40b4cbd8ed3c30348b2b5" + "reference": "a15efe4fbcd6b38ea76edc5c8939ffde4f4c7b7f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/56290edeb0d8051826d40b4cbd8ed3c30348b2b5", - "reference": "56290edeb0d8051826d40b4cbd8ed3c30348b2b5", + "url": "https://api.github.com/repos/laravel/framework/zipball/a15efe4fbcd6b38ea76edc5c8939ffde4f4c7b7f", + "reference": "a15efe4fbcd6b38ea76edc5c8939ffde4f4c7b7f", "shasum": "" }, "require": { @@ -1198,7 +1198,7 @@ "framework", "laravel" ], - "time": "2018-06-04T14:51:03+00:00" + "time": "2018-06-12T14:39:24+00:00" }, { "name": "laravel/socialite", @@ -4730,16 +4730,16 @@ }, { "name": "sebastian/comparator", - "version": "3.0.0", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "ed5fd2281113729f1ebcc64d101ad66028aeb3d5" + "reference": "591a30922f54656695e59b1f39501aec513403da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/ed5fd2281113729f1ebcc64d101ad66028aeb3d5", - "reference": "ed5fd2281113729f1ebcc64d101ad66028aeb3d5", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/591a30922f54656695e59b1f39501aec513403da", + "reference": "591a30922f54656695e59b1f39501aec513403da", "shasum": "" }, "require": { @@ -4790,7 +4790,7 @@ "compare", "equality" ], - "time": "2018-04-18T13:33:00+00:00" + "time": "2018-06-14T15:05:28+00:00" }, { "name": "sebastian/diff", diff --git a/tests/Feature/BookingTest.php b/tests/Feature/BookingTest.php index 55d9a2d4..c25c3ab9 100644 --- a/tests/Feature/BookingTest.php +++ b/tests/Feature/BookingTest.php @@ -2,48 +2,85 @@ namespace Tests\Unit\BookingTest; -use App\User; -use Artisan; use Tests\TestCase; +use Illuminate\Foundation\Testing\WithoutMiddleware; +use Illuminate\Database\Seeder; +use Illuminate\Foundation\Testing\DatabaseMigrations; +use Illuminate\Support\Facades\Storage; +use Illuminate\Http\UploadedFile; +use Illuminate\Foundation\Testing\RefreshDatabase; +use Illuminate\Foundation\Support\Providers\AuthServiceProvider; +use Auth; +use Artisan; +use App\User; +use App\Booking; class BookingTest extends TestCase { protected $user; - + public function setUp() { parent::setUp(); Artisan::call('db:seed'); - $this->user = factory(User::class)->create(); + $this->user = User::Find(1); } public function testPost() { - $response = - $this->actingAs($this->user) - ->postJson('/api/booking/', [ - 'term' => 'x1_ba', - 'account_name' => 'johnny', - 'account_num' => '1234567', - 'bank_name' => 'myabnak', - 'bank_branch' => 'banking', - 'company_name' => 'besaras', - 'company_address' => 'californina', - 'bank_address' => 'cyber', - 'swift_code' => '123wert', - 'cnap' => '2131rew', - 'term' => 'x2_cash', - 'rmb_book_amount' => 14000, - 'rmb_book_pay_method' => 'x1_ba', - 'rmb_book_account_name' => 'Xiao Xue', - 'rmb_book_acc_no' => '12332123123', - 'rmb_book_bank_branch' => 'ShenZhen', - 'amount' => 14000, - ]); - dd($response->getContent()); - $response->assertStatus(200); - + $response = + $this->actingAs($this->user) + ->postJson('/api/booking/', [ + 'account_name' => 'johnny', + 'account_num' => '1234567', + 'bank_name' => 'myabnak', + 'bank_branch' => 'banking', + 'company_name' => 'besaras', + 'company_address' => 'californina', + 'bank_address' => 'cyber', + 'swift_code' => '123wert', + 'cnap' => '2131rew', + 'term' => 'x2_cash', + 'amount' => '14000', + 'rmb_book_amount' => '2131', + 'rmb_book_pay_method' => '2131rea', + 'rmb_book_account_name' => '2131rew', + 'rmb_book_acc_no' => '2131', + 'rmb_book_bank_branch' => '2131rew', + 'usd_book_amount' => '2131', + 'usd_book_pay_method' => '2131rew', + 'usd_book_company_name' => '2131rew', + 'usd_book_company_address' => '2131rew', + 'usd_book_swift_code' => '2131rew', + 'usd_book_cnap' => '2131rew', + 'usd_book_bank_branch' => '2131rew', + 'verification_status' => '1' + ]); + $response->assertStatus(201); + } + + public function testuploadbankslip() + { + $this->actingAs($this->user); + Storage::fake('bankslip_url'); + + $response = $this->json('POST', '/api/booking/1/upload-user-bankslip', [ + 'bankslip_url' => UploadedFile::fake()->image('comp.jpg'), + 'transfer_amount' => '9000' + ]); + $response->assertStatus(200); + } + + public function testuploadPO() + { + $this->actingAs($this->user); + Storage::fake('image_url'); + + $response = $this->json('POST', '/api/booking/1/upload-po', [ + 'image_url' => UploadedFile::fake()->image('comp.jpg'), + 'amount' => '12345' + ]); + $response->assertStatus(200); } - } diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 3ce074de..e628820c 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -1679,6 +1679,7 @@ return array( 'Illuminate\\Foundation\\Testing\\WithoutEvents' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/WithoutEvents.php', 'Illuminate\\Foundation\\Testing\\WithoutMiddleware' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/WithoutMiddleware.php', 'Illuminate\\Foundation\\Validation\\ValidatesRequests' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Validation/ValidatesRequests.php', + 'Illuminate\\Hashing\\AbstractHasher' => $vendorDir . '/laravel/framework/src/Illuminate/Hashing/AbstractHasher.php', 'Illuminate\\Hashing\\ArgonHasher' => $vendorDir . '/laravel/framework/src/Illuminate/Hashing/ArgonHasher.php', 'Illuminate\\Hashing\\BcryptHasher' => $vendorDir . '/laravel/framework/src/Illuminate/Hashing/BcryptHasher.php', 'Illuminate\\Hashing\\HashManager' => $vendorDir . '/laravel/framework/src/Illuminate/Hashing/HashManager.php', @@ -4130,7 +4131,7 @@ return array( 'Tests\\Feature\\RegisterTest' => $baseDir . '/tests/Feature/RegisterTest.php', 'Tests\\Feature\\SettingsTest' => $baseDir . '/tests/Feature/SettingsTest.php', 'Tests\\TestCase' => $baseDir . '/tests/TestCase.php', - 'Tests\\Unit\\BookingTest\\BookingTest' => $baseDir . '/tests/Feature/BookingTest.php', + 'Tests\\Unit\\BookingTest\\BookingTest' => $baseDir . '/tests/Feature/BookingTest2.php', 'Text_Template' => $vendorDir . '/phpunit/php-text-template/src/Template.php', 'TheSeer\\Tokenizer\\Exception' => $vendorDir . '/theseer/tokenizer/src/Exception.php', 'TheSeer\\Tokenizer\\NamespaceUri' => $vendorDir . '/theseer/tokenizer/src/NamespaceUri.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 444c22b5..fdae4849 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,15 +4,7 @@ namespace Composer\Autoload; -<<<<<<< HEAD class ComposerStaticInit6dcfe61ea7999ade723f072fea748b5a -======= -<<<<<<< HEAD -class ComposerStaticInit6dcfe61ea7999ade723f072fea748b5a -======= -class ComposerStaticInit51a2977d18ddf089cd82402f3476f1a0 ->>>>>>> 9fa55b3394b938349e815fea8c8f6acc5b00fd15 ->>>>>>> 83dfca2ae18825a69bca7aec5619abf7f4d0671f { public static $files = array ( '6124b4c8570aa390c21fafd04a26c69f' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php', @@ -2115,6 +2107,7 @@ class ComposerStaticInit51a2977d18ddf089cd82402f3476f1a0 'Illuminate\\Foundation\\Testing\\WithoutEvents' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/WithoutEvents.php', 'Illuminate\\Foundation\\Testing\\WithoutMiddleware' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/WithoutMiddleware.php', 'Illuminate\\Foundation\\Validation\\ValidatesRequests' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Validation/ValidatesRequests.php', + 'Illuminate\\Hashing\\AbstractHasher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Hashing/AbstractHasher.php', 'Illuminate\\Hashing\\ArgonHasher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Hashing/ArgonHasher.php', 'Illuminate\\Hashing\\BcryptHasher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Hashing/BcryptHasher.php', 'Illuminate\\Hashing\\HashManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Hashing/HashManager.php', @@ -4566,7 +4559,7 @@ class ComposerStaticInit51a2977d18ddf089cd82402f3476f1a0 'Tests\\Feature\\RegisterTest' => __DIR__ . '/../..' . '/tests/Feature/RegisterTest.php', 'Tests\\Feature\\SettingsTest' => __DIR__ . '/../..' . '/tests/Feature/SettingsTest.php', 'Tests\\TestCase' => __DIR__ . '/../..' . '/tests/TestCase.php', - 'Tests\\Unit\\BookingTest\\BookingTest' => __DIR__ . '/../..' . '/tests/Feature/BookingTest.php', + 'Tests\\Unit\\BookingTest\\BookingTest' => __DIR__ . '/../..' . '/tests/Feature/BookingTest2.php', 'Text_Template' => __DIR__ . '/..' . '/phpunit/php-text-template/src/Template.php', 'TheSeer\\Tokenizer\\Exception' => __DIR__ . '/..' . '/theseer/tokenizer/src/Exception.php', 'TheSeer\\Tokenizer\\NamespaceUri' => __DIR__ . '/..' . '/theseer/tokenizer/src/NamespaceUri.php', @@ -4757,23 +4750,10 @@ class ComposerStaticInit51a2977d18ddf089cd82402f3476f1a0 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { -<<<<<<< HEAD -======= -<<<<<<< HEAD ->>>>>>> 83dfca2ae18825a69bca7aec5619abf7f4d0671f $loader->prefixLengthsPsr4 = ComposerStaticInit6dcfe61ea7999ade723f072fea748b5a::$prefixLengthsPsr4; $loader->prefixDirsPsr4 = ComposerStaticInit6dcfe61ea7999ade723f072fea748b5a::$prefixDirsPsr4; $loader->prefixesPsr0 = ComposerStaticInit6dcfe61ea7999ade723f072fea748b5a::$prefixesPsr0; $loader->classMap = ComposerStaticInit6dcfe61ea7999ade723f072fea748b5a::$classMap; -<<<<<<< HEAD -======= -======= - $loader->prefixLengthsPsr4 = ComposerStaticInit51a2977d18ddf089cd82402f3476f1a0::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit51a2977d18ddf089cd82402f3476f1a0::$prefixDirsPsr4; - $loader->prefixesPsr0 = ComposerStaticInit51a2977d18ddf089cd82402f3476f1a0::$prefixesPsr0; - $loader->classMap = ComposerStaticInit51a2977d18ddf089cd82402f3476f1a0::$classMap; ->>>>>>> 9fa55b3394b938349e815fea8c8f6acc5b00fd15 ->>>>>>> 83dfca2ae18825a69bca7aec5619abf7f4d0671f }, null, ClassLoader::class); }