Merge pull request #3978 from turbo124/v2

Changing error structure, regression fixes for shop/client route
This commit is contained in:
David Bomba 2020-08-12 09:02:41 +10:00 committed by GitHub
commit 9b29460630
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
24 changed files with 122 additions and 38 deletions

View File

@ -134,8 +134,6 @@ class Handler extends ExceptionHandler
return parent::render($request, $exception); return parent::render($request, $exception);
} }
protected function unauthenticated($request, AuthenticationException $exception) protected function unauthenticated($request, AuthenticationException $exception)
{ {
if ($request->expectsJson()) { if ($request->expectsJson()) {

View File

@ -245,8 +245,8 @@ class LoginController extends BaseController
$company_token = CompanyToken::whereRaw("BINARY `token`= ?", [$request->header('X-API-TOKEN')])->first(); $company_token = CompanyToken::whereRaw("BINARY `token`= ?", [$request->header('X-API-TOKEN')])->first();
$cu = CompanyUser::query() $cu = CompanyUser::query()
->where('user_id', $company_token->user_id) ->where('user_id', $company_token->user_id);
->where('company_id', $company_token->company_id); //->where('company_id', $company_token->company_id);
//$ct = CompanyUser::whereUserId(auth()->user()->id); //$ct = CompanyUser::whereUserId(auth()->user()->id);
return $this->refreshResponse($cu); return $this->refreshResponse($cu);

View File

@ -93,7 +93,7 @@ class LicenseController extends BaseController
if ($data == Account::RESULT_FAILURE) { if ($data == Account::RESULT_FAILURE) {
$error = [ $error = [
'message' => trans('texts.invalid_white_label_license'), 'message' => trans('texts.invalid_white_label_license'),
'errors' => [] 'errors' => new \stdClass
]; ];
return response()->json($error, 400); return response()->json($error, 400);
@ -103,7 +103,7 @@ class LicenseController extends BaseController
if ($date < date_create()) { if ($date < date_create()) {
$error = [ $error = [
'message' => trans('texts.invalid_white_label_license'), 'message' => trans('texts.invalid_white_label_license'),
'errors' => [] 'errors' => new \stdClass
]; ];
return response()->json($error, 400); return response()->json($error, 400);
@ -118,7 +118,7 @@ class LicenseController extends BaseController
$error = [ $error = [
'message' => trans('texts.bought_white_label'), 'message' => trans('texts.bought_white_label'),
'errors' => [] 'errors' => new \stdClass
]; ];
return response()->json($error, 200); return response()->json($error, 200);
@ -126,7 +126,7 @@ class LicenseController extends BaseController
} else { } else {
$error = [ $error = [
'message' => trans('texts.white_label_license_error'), 'message' => trans('texts.white_label_license_error'),
'errors' => [] 'errors' => new \stdClass
]; ];
return response()->json($error, 400); return response()->json($error, 400);
@ -135,7 +135,7 @@ class LicenseController extends BaseController
$error = [ $error = [
'message' => "Invalid license, or invalid environment ".config('ninja.environment'), 'message' => "Invalid license, or invalid environment ".config('ninja.environment'),
'errors' => [] 'errors' => new \stdClass
]; ];
return response()->json($error, 400); return response()->json($error, 400);

View File

@ -57,7 +57,7 @@ class ClientController extends BaseController
$company = Company::where('company_key', $request->header('X-API-COMPANY-KEY'))->first(); $company = Company::where('company_key', $request->header('X-API-COMPANY-KEY'))->first();
if(!$company->enable_shop_api) if(!$company->enable_shop_api)
return response()->json(['message' => 'Shop is disabled', 'errors' => []],403); return response()->json(['message' => 'Shop is disabled', 'errors' => new \stdClass],403);
$contact = ClientContact::with('client') $contact = ClientContact::with('client')
->where('company_id', $company->id) ->where('company_id', $company->id)
@ -72,7 +72,7 @@ class ClientController extends BaseController
$company = Company::where('company_key', $request->header('X-API-COMPANY-KEY'))->first(); $company = Company::where('company_key', $request->header('X-API-COMPANY-KEY'))->first();
if(!$company->enable_shop_api) if(!$company->enable_shop_api)
return response()->json(['message' => 'Shop is disabled', 'errors' => []],403); return response()->json(['message' => 'Shop is disabled', 'errors' => new \stdClass],403);
app('queue')->createPayloadUsing(function () use ($company) { app('queue')->createPayloadUsing(function () use ($company) {
return ['db' => $company->db]; return ['db' => $company->db];

View File

@ -57,7 +57,7 @@ class InvoiceController extends BaseController
$company = Company::where('company_key', $request->header('X-API-COMPANY-KEY'))->first(); $company = Company::where('company_key', $request->header('X-API-COMPANY-KEY'))->first();
if(!$company->enable_shop_api) if(!$company->enable_shop_api)
return response()->json(['message' => 'Shop is disabled', 'errors' => []],403); return response()->json(['message' => 'Shop is disabled', 'errors' => new \stdClass],403);
$invitation = InvoiceInvitation::with(['invoice']) $invitation = InvoiceInvitation::with(['invoice'])
->where('company_id', $company->id) ->where('company_id', $company->id)
@ -74,7 +74,7 @@ class InvoiceController extends BaseController
$company = Company::where('company_key', $request->header('X-API-COMPANY-KEY'))->first(); $company = Company::where('company_key', $request->header('X-API-COMPANY-KEY'))->first();
if(!$company->enable_shop_api) if(!$company->enable_shop_api)
return response()->json(['message' => 'Shop is disabled', 'errors' => []],403); return response()->json(['message' => 'Shop is disabled', 'errors' => new \stdClass],403);
app('queue')->createPayloadUsing(function () use ($company) { app('queue')->createPayloadUsing(function () use ($company) {
return ['db' => $company->db]; return ['db' => $company->db];

View File

@ -37,7 +37,7 @@ class ProductController extends BaseController
$company = Company::where('company_key', $request->header('X-API-COMPANY-KEY'))->first(); $company = Company::where('company_key', $request->header('X-API-COMPANY-KEY'))->first();
if(!$company->enable_shop_api) if(!$company->enable_shop_api)
return response()->json(['message' => 'Shop is disabled', 'errors' => []],403); return response()->json(['message' => 'Shop is disabled', 'errors' => new \stdClass],403);
$products = Product::where('company_id', $company->id); $products = Product::where('company_id', $company->id);
@ -49,7 +49,7 @@ class ProductController extends BaseController
$company = Company::where('company_key', $request->header('X-API-COMPANY-KEY'))->first(); $company = Company::where('company_key', $request->header('X-API-COMPANY-KEY'))->first();
if(!$company->enable_shop_api) if(!$company->enable_shop_api)
return response()->json(['message' => 'Shop is disabled', 'errors' => []],403); return response()->json(['message' => 'Shop is disabled', 'errors' => new \stdClass],403);
$product = Product::where('company_id', $company->id) $product = Product::where('company_id', $company->id)
->where('product_key', $product_key) ->where('product_key', $product_key)

View File

@ -34,7 +34,7 @@ class ProfileController extends BaseController
$company = Company::where('company_key', $request->header('X-API-COMPANY-KEY'))->first(); $company = Company::where('company_key', $request->header('X-API-COMPANY-KEY'))->first();
if(!$company->enable_shop_api) if(!$company->enable_shop_api)
return response()->json(['message' => 'Shop is disabled', 'errors' => []],403); return response()->json(['message' => 'Shop is disabled', 'errors' => new \stdClass],403);
return $this->itemResponse($company); return $this->itemResponse($company);
} }

View File

@ -30,7 +30,7 @@ class ApiSecretCheck
} else { } else {
$error = [ $error = [
'message' => 'Invalid secret', 'message' => 'Invalid secret',
'errors' => [] 'errors' => new \stdClass
]; ];
return response() return response()
->json($error, 403) ->json($error, 403)

View File

@ -29,7 +29,7 @@ class ContactSetDb
{ {
$error = [ $error = [
'message' => 'Invalid Token', 'message' => 'Invalid Token',
'errors' => [] 'errors' => new \stdClass
]; ];
if ($request->header('X-API-TOKEN') && config('ninja.db.multi_db_enabled')) { if ($request->header('X-API-TOKEN') && config('ninja.db.multi_db_enabled')) {

View File

@ -32,7 +32,7 @@ class ContactTokenAuth
if ($request->header('X-API-TOKEN') && ($client_contact = ClientContact::with(['company'])->whereRaw("BINARY `token`= ?", [$request->header('X-API-TOKEN')])->first())) { if ($request->header('X-API-TOKEN') && ($client_contact = ClientContact::with(['company'])->whereRaw("BINARY `token`= ?", [$request->header('X-API-TOKEN')])->first())) {
$error = [ $error = [
'message' => 'Authentication disabled for user.', 'message' => 'Authentication disabled for user.',
'errors' => [] 'errors' => new \stdClass
]; ];
//client_contact who once existed, but has been soft deleted //client_contact who once existed, but has been soft deleted
@ -43,7 +43,7 @@ class ContactTokenAuth
$error = [ $error = [
'message' => 'Access is locked.', 'message' => 'Access is locked.',
'errors' => [] 'errors' => new \stdClass
]; ];
//client_contact who has been disabled //client_contact who has been disabled
@ -58,7 +58,7 @@ class ContactTokenAuth
} else { } else {
$error = [ $error = [
'message' => 'Invalid token', 'message' => 'Invalid token',
'errors' => [] 'errors' => new \stdClass
]; ];
return response()->json($error, 403); return response()->json($error, 403);

View File

@ -32,7 +32,7 @@ class PasswordProtection
{ {
$error = [ $error = [
'message' => 'Invalid Password', 'message' => 'Invalid Password',
'errors' => [] 'errors' => new \stdClass
]; ];
if ($request->header('X-API-PASSWORD')) { if ($request->header('X-API-PASSWORD')) {
@ -47,7 +47,7 @@ class PasswordProtection
} else { } else {
$error = [ $error = [
'message' => 'Access denied', 'message' => 'Access denied',
'errors' => [] 'errors' => new \stdClass
]; ];
return response()->json($error, 412); return response()->json($error, 412);
} }

View File

@ -29,7 +29,7 @@ class SetDb
{ {
$error = [ $error = [
'message' => 'Invalid Token', 'message' => 'Invalid Token',
'errors' => [] 'errors' => new \stdClass
]; ];

View File

@ -29,7 +29,7 @@ class SetDbByCompanyKey
{ {
$error = [ $error = [
'message' => 'Invalid Token', 'message' => 'Invalid Token',
'errors' => [] 'errors' => new \stdClass
]; ];

View File

@ -28,7 +28,7 @@ class SetDomainNameDb
{ {
$error = [ $error = [
'message' => 'Invalid token', 'message' => 'Invalid token',
'errors' => [] 'errors' => new \stdClass
]; ];
/* /*
* Use the host name to set the active DB * Use the host name to set the active DB

View File

@ -29,7 +29,7 @@ class SetEmailDb
{ {
$error = [ $error = [
'message' => 'Email not set or not found', 'message' => 'Email not set or not found',
'errors' => [] 'errors' => new \stdClass
]; ];
if ($request->input('email') && config('ninja.db.multi_db_enabled')) { if ($request->input('email') && config('ninja.db.multi_db_enabled')) {

View File

@ -28,7 +28,7 @@ class SetInviteDb
{ {
$error = [ $error = [
'message' => 'Invalid URL', 'message' => 'Invalid URL',
'errors' => [] 'errors' => new \stdClass
]; ];
/* /*
* Use the host name to set the active DB * Use the host name to set the active DB

View File

@ -34,7 +34,7 @@ class TokenAuth
$error = [ $error = [
'message' => 'User inactive', 'message' => 'User inactive',
'errors' => [] 'errors' => new \stdClass
]; ];
//user who once existed, but has been soft deleted //user who once existed, but has been soft deleted
if (!$user) { if (!$user) {
@ -60,7 +60,7 @@ class TokenAuth
if ($user->company_user->is_locked) { if ($user->company_user->is_locked) {
$error = [ $error = [
'message' => 'User access locked', 'message' => 'User access locked',
'errors' => [] 'errors' => new \stdClass
]; ];
return response()->json($error, 403); return response()->json($error, 403);
@ -73,7 +73,7 @@ class TokenAuth
} else { } else {
$error = [ $error = [
'message' => 'Invalid token', 'message' => 'Invalid token',
'errors' => [] 'errors' => new \stdClass
]; ];
return response()->json($error, 403); return response()->json($error, 403);

View File

@ -117,6 +117,8 @@ class BaseDriver extends AbstractPaymentDriver
$payment->invoices()->sync($invoices); $payment->invoices()->sync($invoices);
$payment->save(); $payment->save();
$payment->service()->applyNumber()->save();
return $payment; return $payment;
} }

View File

@ -16,7 +16,9 @@ use App\Models\Activity;
use App\Models\Backup; use App\Models\Backup;
use App\Models\Client; use App\Models\Client;
use App\Models\CompanyToken; use App\Models\CompanyToken;
use App\Models\Credit;
use App\Models\Invoice; use App\Models\Invoice;
use App\Models\Quote;
use App\Models\User; use App\Models\User;
use App\Utils\Traits\MakesInvoiceHtml; use App\Utils\Traits\MakesInvoiceHtml;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
@ -64,14 +66,9 @@ class ActivityRepository extends BaseRepository
{ {
$backup = new Backup(); $backup = new Backup();
// if (get_class($entity) == Client::class) { if (get_class($entity) == Invoice::class || get_class($entity) == Quote::class || get_class($entity) == Credit::class)
// $entity->load('company'); $backup->html_backup = $this->generateEntityHtml($entity->getEntityDesigner(), $entity);
// } elseif (get_class($entity) == User::class) {
// } else {
// $entity->load('company', 'client');
// }
$backup->html_backup = $this->generateEntityHtml($entity->getEntityDesigner(), $entity);
$backup->activity_id = $activity->id; $backup->activity_id = $activity->id;
$backup->json_backup = ''; $backup->json_backup = '';
//$backup->json_backup = $entity->toJson(); //$backup->json_backup = $entity->toJson();

View File

@ -0,0 +1,46 @@
<?php
/**
* Payment Ninja (https://paymentninja.com)
*
* @link https://github.com/paymentninja/paymentninja source repository
*
* @copyright Copyright (c) 2020. Payment Ninja LLC (https://paymentninja.com)
*
* @license https://opensource.org/licenses/AAL
*/
namespace App\Services\Payment;
use App\Events\Payment\PaymentWasCreated;
use App\Factory\PaymentFactory;
use App\Models\Client;
use App\Models\Payment;
use App\Services\AbstractService;
use App\Services\Client\ClientService;
use App\Services\Payment\PaymentService;
use App\Utils\Traits\GeneratesCounter;
class ApplyNumber extends AbstractService
{
use GeneratesCounter;
private $payment;
public function __construct(Payment $payment)
{
$this->client = $payment->client;
$this->payment = $payment;
}
public function run()
{
if ($this->payment->number != '') {
return $this->payment;
}
$this->payment->number = $this->getNextPaymentNumber($this->client);
return $this->payment;
}
}

View File

@ -14,6 +14,7 @@ namespace App\Services\Payment;
use App\Factory\PaymentFactory; use App\Factory\PaymentFactory;
use App\Models\Invoice; use App\Models\Invoice;
use App\Models\Payment; use App\Models\Payment;
use App\Services\Payment\ApplyNumber;
use App\Services\Payment\DeletePayment; use App\Services\Payment\DeletePayment;
use App\Services\Payment\RefundPayment; use App\Services\Payment\RefundPayment;
use App\Services\Payment\UpdateInvoicePayment; use App\Services\Payment\UpdateInvoicePayment;
@ -87,4 +88,12 @@ class PaymentService
{ {
return ((new UpdateInvoicePayment($this->payment)))->run(); return ((new UpdateInvoicePayment($this->payment)))->run();
} }
public function applyNumber()
{
$this->payment = (new ApplyNumber($this->payment))->run();
return $this;
}
} }

View File

@ -39,6 +39,7 @@ class ClientGatewayTokenTransformer extends EntityTransformer
'created_at' => (int)$cgt->created_at, 'created_at' => (int)$cgt->created_at,
'updated_at' => (int)$cgt->updated_at, 'updated_at' => (int)$cgt->updated_at,
'archived_at' => (int)$cgt->deleted_at, 'archived_at' => (int)$cgt->deleted_at,
'is_deleted' => (bool) $cgt->is_deleted,
]; ];
} }
} }

View File

@ -33,6 +33,7 @@ class ClientTransformer extends EntityTransformer
protected $defaultIncludes = [ protected $defaultIncludes = [
'contacts', 'contacts',
'documents', 'documents',
'gateway_tokens',
]; ];
/** /**

View File

@ -0,0 +1,30 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddIsDeletedFlagToClientGatewayTokenTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('client_gateway_tokens', function (Blueprint $table) {
$table->boolean('is_deleted')->default(0);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
}
}