This commit is contained in:
Kerim 2023-03-09 03:13:03 +05:00
parent da70b633a7
commit f84d505d0f
6 changed files with 181 additions and 92 deletions

2
.gitignore vendored
View File

@ -1,4 +1,4 @@
config/database.php
/config/database.php
# Composer ignores
/vendor

View File

@ -57,9 +57,9 @@ return [
'engine' => 'InnoDB',
'host' => 'localhost',
'port' => 3306,
'database' => 'sapaly_october',
'username' => 'sapaly',
'password' => '22MOcP6^I#8tI5ovcXluXDT#%vWC^CtsFvKHOygi8TMnzaMuLYx@123',
'database' => 'sapaly_new',
'username' => 'root',
'password' => 'bt110226',
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',

View File

@ -1,4 +1,6 @@
<?php namespace AhmadFatoni\ApiGenerator\Controllers\API;
<?php
namespace AhmadFatoni\ApiGenerator\Controllers\API;
use Cms\Classes\Controller;
use BackendMenu;
@ -7,9 +9,14 @@ use Illuminate\Http\Request;
use AhmadFatoni\ApiGenerator\Helpers\Helpers;
use Illuminate\Support\Facades\Validator;
use Lovata\OrdersShopaholic\Models\Cart;
use Lovata\OrdersShopaholic\Classes\Processor\CartProcessor;
use Lovata\OrdersShopaholic\Classes\Processor\OfferCartPositionProcessor;
use Kharanenka\Helper\Result;
use Input;
class CartAPIController extends Controller
{
protected $Cart;
protected $Cart;
protected $helpers;
@ -20,88 +27,90 @@ class CartAPIController extends Controller
$this->helpers = $helpers;
}
public function index(){
$currentUser = JWTAuth::parseToken()->authenticate();
public function index()
{
// $currentUser = JWTAuth::parseToken()->authenticate();
// $currentUser = \JWTAuth::parseToken()->toUser();
dd($currentUser);
$data = $this->Cart
->paginate(10);
// dd($currentUser);
$data = CartProcessor::instance()->getCartData();
return $this->helpers->apiArrayResponseBuilder(200, 'success', $data);
}
public function show($id){
$data = $this->Cart::with('translations:locale,model_id,attribute_data')
->with(['category' => function ($query) {
$query->with('translations:locale,model_id,attribute_data');
}])
->find($id);
public function addCart()
{
//$arRequestData = Input::get('cart');
$offerId = input('offer_id');
$quantity = input('quantity');
if ($data){
return $this->helpers->apiArrayResponseBuilder(200, 'success', [$data]);
} else {
$this->helpers->apiArrayResponseBuilder(404, 'not found', ['error' => 'Resource id=' . $id . ' could not be found']);
}
$cart = array('cart' => array('offer_id' => $offerId, 'quantity' => $quantity));
CartProcessor::instance()->add($cart, OfferCartPositionProcessor::class);
Result::setData(CartProcessor::instance()->getCartData());
$data = Result::get();
return $this->helpers->apiArrayResponseBuilder(200, 'success', $data);
}
// public function store(Request $request){
// $arr = $request->all();
public function updateCart()
{
//$arRequestData = Input::get('cart');
// while ( $data = current($arr)) {
// $this->Cart->{key($arr)} = $data;
// next($arr);
// }
$offerId = input('offer_id');
$quantity = input('quantity');
// $validation = Validator::make($request->all(), $this->Cart->rules);
$cart = array('cart' => array('offer_id' => $offerId, 'quantity' => $quantity));
// if( $validation->passes() ){
// $this->Cart->save();
// return $this->helpers->apiArrayResponseBuilder(201, 'created', ['id' => $this->Cart->id]);
// }else{
// return $this->helpers->apiArrayResponseBuilder(400, 'fail', $validation->errors() );
// }
CartProcessor::instance()->add($cart, OfferCartPositionProcessor::class);
Result::setData(CartProcessor::instance()->getCartData());
// }
$data = Result::get();
// public function update($id, Request $request){
return $this->helpers->apiArrayResponseBuilder(200, 'success', $data);
}
// $status = $this->Cart->where('id',$id)->update($data);
public function removeProdCart()
{
$offerId = input('offer_id');
// $arRequestData = Input::get('cart');
$sType = Input::get('type', 'offer');
$cart = array('cart' => array('offer_id' => $offerId));
// if( $status ){
CartProcessor::instance()->remove($cart, OfferCartPositionProcessor::class, $sType);
Result::setData(CartProcessor::instance()->getCartData());
// return $this->helpers->apiArrayResponseBuilder(200, 'success', 'Data has been updated successfully.');
$data = Result::get();
// }else{
return $this->helpers->apiArrayResponseBuilder(200, 'success', $data);
}
// return $this->helpers->apiArrayResponseBuilder(400, 'bad request', 'Error, data failed to update.');
public function clearCart()
{
$data = CartProcessor::instance()->clear();
Result::setData(CartProcessor::instance()->getCartData());
$data = Result::get();
return $this->helpers->apiArrayResponseBuilder(200, 'success', $data);
}
// }
// }
// public function delete($id){
// $this->Cart->where('id',$id)->delete();
// return $this->helpers->apiArrayResponseBuilder(200, 'success', 'Data has been deleted successfully.');
// }
// public function destroy($id){
// $this->Cart->where('id',$id)->delete();
// return $this->helpers->apiArrayResponseBuilder(200, 'success', 'Data has been deleted successfully.');
// }
public static function getAfterFilters() {return [];}
public static function getBeforeFilters() {return [];}
public static function getMiddleware() {return [];}
public function callAction($method, $parameters=false) {
public static function getAfterFilters()
{
return [];
}
public static function getBeforeFilters()
{
return [];
}
public static function getMiddleware()
{
return [];
}
public function callAction($method, $parameters = false)
{
return call_user_func_array(array($this, $method), $parameters);
}
}

View File

@ -0,0 +1,67 @@
<?php
namespace AhmadFatoni\ApiGenerator\Controllers\API;
use Cms\Classes\Controller;
use BackendMenu;
use Illuminate\Http\Request;
use AhmadFatoni\ApiGenerator\Helpers\Helpers;
use Illuminate\Support\Facades\Validator;
use Lovata\OrdersShopaholic\Models\Cart;
use Lovata\OrdersShopaholic\Classes\Processor\CartProcessor;
use Lovata\OrdersShopaholic\Classes\Processor\OfferCartPositionProcessor;
use Kharanenka\Helper\Result;
use Input;
use Lovata\OrdersShopaholic\Models\ShippingType;
use Lovata\OrdersShopaholic\Models\PaymentMethod;
class CheckoutAPIController extends Controller
{
// protected $Cart;
protected $helpers;
public function __construct(Cart $Cart, Helpers $helpers)
{
// parent::__construct();
// $this->Cart = $Cart;
$this->helpers = $helpers;
}
public function shippingTypes()
{
$data = ShippingType::where("active", 1)
->with('translations:locale,model_id,attribute_data')
->get();
return $this->helpers->apiArrayResponseBuilder(200, 'success', $data);
}
public function paymentTypes()
{
$data = PaymentMethod::where("active", 1)
->with('translations:locale,model_id,attribute_data')
->get();
return $this->helpers->apiArrayResponseBuilder(200, 'success', $data);
}
public static function getAfterFilters()
{
return [];
}
public static function getBeforeFilters()
{
return [];
}
public static function getMiddleware()
{
return [];
}
public function callAction($method, $parameters = false)
{
return call_user_func_array(array($this, $method), $parameters);
}
}

View File

@ -16,10 +16,19 @@ Route::group(['prefix' =>'api/v1','namespace' =>'AhmadFatoni\ApiGenerator\Contro
Route::get('sliders', 'SliderAPIController@index');
//Route::middleware([\ReaZzon\JWTAuth\Http\Middlewares\ResolveUser::class])->group(function () {
Route::middleware([\ReaZzon\JWTAuth\Http\Middlewares\ResolveUser::class])->group(function () {
//Route::get('cart', 'CartAPIController@index');
Route::get('cart', 'CartAPIController@index');
Route::post('add/cart', 'CartAPIController@addCart');
Route::post('update/cart', 'CartAPIController@updateCart');
Route::post('remove/cart', 'CartAPIController@removeProdCart');
Route::post('clear/cart', 'CartAPIController@clearCart');
// });
Route::get('shippings', 'CheckoutAPIController@shippingTypes');
Route::get('payments', 'CheckoutAPIController@paymentTypes');
});
});

View File

@ -16,6 +16,7 @@ use Lovata\OrdersShopaholic\Classes\PromoMechanism\ItemPriceContainer;
use Lovata\OrdersShopaholic\Classes\PromoMechanism\TotalPriceContainer;
use Lovata\OrdersShopaholic\Classes\Collection\CartPositionCollection;
use Lovata\OrdersShopaholic\Classes\PromoMechanism\CartPromoMechanismProcessor;
use Lovata\Shopaholic\Models\Offer as OfferModel;
/**
* Class CartProcessor
@ -439,9 +440,12 @@ class CartProcessor
}
foreach ($obCartPositionList as $obCartPositionItem) {
$product = OfferModel::where("id", $obCartPositionItem->item_id)->with('product')->first();
// dd($product);
$arPositionData = [
'id' => $obCartPositionItem->id,
'item_id' => $obCartPositionItem->item_id,
'product' => $product,
'item_type' => $obCartPositionItem->item_type,
'quantity' => (int) $obCartPositionItem->quantity,
'max_quantity' => (int) $obCartPositionItem->item->quantity,