Browse Source
Composer update to lv 5.4.23
Composer update to lv 5.4.23
Added Api/ProductsController for ajax product search Extract authentication routes into routes/web.phppull/5/head
6 changed files with 94 additions and 29 deletions
-
24app/Http/Controllers/Api/ProductsController.php
-
30composer.lock
-
15routes/api.php
-
5routes/web.php
-
33tests/Feature/Cart/SearchProductsTest.php
-
16tests/TestCase.php
@ -0,0 +1,24 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace App\Http\Controllers\Api; |
||||
|
|
||||
|
use App\Http\Controllers\Controller; |
||||
|
use App\Product; |
||||
|
use Illuminate\Http\Request; |
||||
|
|
||||
|
class ProductsController extends Controller |
||||
|
{ |
||||
|
public function search(Request $request) |
||||
|
{ |
||||
|
$query = $request->get('query'); |
||||
|
$queriedProducts = []; |
||||
|
if ($query) { |
||||
|
$queriedProducts = Product::where(function ($q) use ($query) { |
||||
|
$q->where('name', 'like', '%'.$query.'%'); |
||||
|
})->with('unit')->get(); |
||||
|
} |
||||
|
|
||||
|
return response()->json($queriedProducts, 200); |
||||
|
// return view('cart.partials.product-search-result-box', $queriedProducts);
|
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,33 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace Tests\Feature\Cart; |
||||
|
|
||||
|
use App\Product; |
||||
|
use Illuminate\Foundation\Testing\DatabaseMigrations; |
||||
|
use Tests\TestCase; |
||||
|
|
||||
|
class SearchProductsTest extends TestCase |
||||
|
{ |
||||
|
use DatabaseMigrations; |
||||
|
|
||||
|
/** @test */ |
||||
|
public function retrieving_product_list_by_ajax_post_request() |
||||
|
{ |
||||
|
$this->disableExceptionHandling(); |
||||
|
factory(Product::class)->create(['name' => 'Hemaviton']); |
||||
|
factory(Product::class)->create(['name' => 'Zee']); |
||||
|
$product1 = factory(Product::class)->create(['name' => 'Bisolvon 1']); |
||||
|
$product2 = factory(Product::class)->create(['name' => 'Bisolvon 2']); |
||||
|
|
||||
|
$user = $this->loginAsUser(); |
||||
|
|
||||
|
$response = $this->post(route('api.products.search'), ['query'=> 'Bis']); |
||||
|
|
||||
|
$response->assertSuccessful(); |
||||
|
|
||||
|
$response->assertJsonFragment([ |
||||
|
'name' => 'Bisolvon 1', |
||||
|
'name' => 'Bisolvon 2', |
||||
|
]); |
||||
|
} |
||||
|
} |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue