tests for offline payments and paypal standard

This commit is contained in:
Denis Duliçi
2020-06-17 13:45:17 +03:00
parent e85b79b357
commit 6cf90cb5cd
6 changed files with 333 additions and 67 deletions

View File

@ -3,11 +3,13 @@
namespace Modules\OfflinePayments\Http\Controllers;
use App\Abstracts\Http\Controller;
use App\Utilities\Modules;
use Illuminate\Http\Response;
use Modules\OfflinePayments\Http\Requests\Setting as Request;
use Modules\OfflinePayments\Http\Requests\SettingGet as GRequest;
use Modules\OfflinePayments\Http\Requests\SettingDelete as DRequest;
use Modules\OfflinePayments\Jobs\CreatePaymentMethod;
use Modules\OfflinePayments\Jobs\DeletePaymentMethod;
use Modules\OfflinePayments\Jobs\UpdatePaymentMethod;
class Settings extends Controller
{
@ -32,56 +34,24 @@ class Settings extends Controller
*/
public function update(Request $request)
{
$methods = json_decode(setting('offline-payments.methods'), true);
if (!empty($request->get('update_code'))) {
$payment_method = $this->dispatch(new UpdatePaymentMethod($request));
if (!empty($request->get('update_code', null))) {
foreach ($methods as $key => $method) {
if ($method['code'] != $request->get('update_code')) {
continue;
}
$method = explode('.', $request->get('update_code'));
$methods[$key] = [
'code' => 'offline-payments.' . $request->get('code') . '.' . $method[2],
'name' => $request->get('name'),
'customer' => $request->get('customer'),
'order' => $request->get('order'),
'description' => $request->get('description'),
];
}
$message = trans('messages.success.updated', ['type' => $request['name']]);
$message = trans('messages.success.updated', ['type' => $payment_method['name']]);
} else {
$methods[] = [
'code' => 'offline-payments.' . $request->get('code') . '.' . (count($methods) + 1),
'name' => $request->get('name'),
'customer' => $request->get('customer'),
'order' => $request->get('order'),
'description' => $request->get('description'),
];
$payment_method = $this->dispatch(new CreatePaymentMethod($request));
$message = trans('messages.success.added', ['type' => $request->get('name')]);
$message = trans('messages.success.added', ['type' => $payment_method['name']]);
}
setting()->set('offline-payments.methods', json_encode($methods));
setting()->save();
Modules::clearPaymentMethodsCache();
$response = [
'status' => null,
'success' => true,
'error' => false,
'message' => $message,
'data' => null,
'redirect' => route('offline-payments.settings.edit'),
];
flash($message)->success();
return response()->json($response);
return response()->json([
'success' => true,
'error' => false,
'message' => $message,
'redirect' => route('offline-payments.settings.edit'),
]);
}
/**
@ -132,31 +102,10 @@ class Settings extends Controller
*/
public function destroy(DRequest $request)
{
$code = $request->get('code');
$payment_method = $this->dispatch(new DeletePaymentMethod($request));
$methods = json_decode(setting('offline-payments.methods'), true);
$message = trans('messages.success.deleted', ['type' => $payment_method['name']]);
$remove = false;
foreach ($methods as $key => $method) {
if ($method['code'] != $code) {
continue;
}
$remove = $methods[$key];
unset($methods[$key]);
}
// Set Api Token
setting()->set('offline-payments.methods', json_encode($methods));
setting()->save();
Modules::clearPaymentMethodsCache();
$message = trans('messages.success.deleted', ['type' => $remove['name']]);
// because it show notification.
//flash($message)->success();
return response()->json([