From eec55a38ddb6cd9a2c89f02f5734563bc915abfb Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sat, 20 Jun 2020 09:46:49 +1000 Subject: [PATCH 1/9] Debugging company deletion --- app/Http/Controllers/CompanyController.php | 4 ++++ app/Http/Middleware/StartupCheck.php | 2 -- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/CompanyController.php b/app/Http/Controllers/CompanyController.php index 19c68657414b..fb06b051fc75 100644 --- a/app/Http/Controllers/CompanyController.php +++ b/app/Http/Controllers/CompanyController.php @@ -466,9 +466,13 @@ class CompanyController extends BaseController */ public function destroy(DestroyCompanyRequest $request, Company $company) { + info(print_r($request->all())); + info("destroying {$company->present()->name()} - {$company->hashed_id}"); $company_count = $company->account->companies->count(); $account = $company->account; + + info("company count = {$company_count}"); if ($company_count == 1) { diff --git a/app/Http/Middleware/StartupCheck.php b/app/Http/Middleware/StartupCheck.php index d8abfe9ca4a4..84a0e1f37cb1 100644 --- a/app/Http/Middleware/StartupCheck.php +++ b/app/Http/Middleware/StartupCheck.php @@ -45,8 +45,6 @@ class StartupCheck Session::flash('message', 'Cache cleared'); } - - /* Make sure our cache is built */ $cached_tables = config('ninja.cached_tables'); From 9e2087b73cbae0343c38a0b36aa6f7eb1b29983b Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sun, 21 Jun 2020 20:07:23 +1000 Subject: [PATCH 2/9] Add sample .htaccess --- .htaccess | 146 +++++++++++++++++++++ app/Http/Controllers/InvoiceController.php | 2 +- 2 files changed, 147 insertions(+), 1 deletion(-) create mode 100644 .htaccess diff --git a/.htaccess b/.htaccess new file mode 100644 index 000000000000..886d649923e3 --- /dev/null +++ b/.htaccess @@ -0,0 +1,146 @@ + + RewriteEngine On + RewriteRule "^.env" - [F,L] + RewriteRule "^storage" - [F,L] + RewriteRule ^(.well-known)($|/) - [L] + + RewriteRule ^(.*)$ public/$1 [L] + + +# https://github.com/h5bp/server-configs-apache/blob/master/dist/.htaccess + + +# ###################################################################### +# # INTERNET EXPLORER # +# ###################################################################### + +# ---------------------------------------------------------------------- +# | Iframes cookies | +# ---------------------------------------------------------------------- + +# Allow cookies to be set from iframes in Internet Explorer. +# +# https://msdn.microsoft.com/en-us/library/ms537343.aspx +# http://www.w3.org/TR/2000/CR-P3P-20001215/ + + + Header set P3P "policyref=\"/w3c/p3p.xml\", CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"" + + + +# ###################################################################### +# # MEDIA TYPES AND CHARACTER ENCODINGS # +# ###################################################################### + +# ---------------------------------------------------------------------- +# | Character encodings | +# ---------------------------------------------------------------------- + +# Serve all resources labeled as `text/html` or `text/plain` +# with the media type `charset` parameter set to `UTF-8`. +# +# https://httpd.apache.org/docs/current/mod/core.html#adddefaultcharset + +AddDefaultCharset utf-8 + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +# Serve the following file types with the media type `charset` +# parameter set to `UTF-8`. +# +# https://httpd.apache.org/docs/current/mod/mod_mime.html#addcharset + + + AddCharset utf-8 .atom \ + .bbaw \ + .css \ + .geojson \ + .js \ + .json \ + .jsonld \ + .manifest \ + .rdf \ + .rss \ + .topojson \ + .vtt \ + .webapp \ + .webmanifest \ + .xloc \ + .xml + + + +# ###################################################################### +# # WEB PERFORMANCE # +# ###################################################################### + +# ---------------------------------------------------------------------- +# | Compression | +# ---------------------------------------------------------------------- + + + + # Force compression for mangled headers. + # https://developer.yahoo.com/blogs/ydn/pushing-beyond-gzipping-25601.html + + + + SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding + RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding + + + + # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + # Map certain file types to the specified encoding type in order to + # make Apache serve them with the appropriate `Content-Encoding` HTTP + # response header (this will NOT make Apache compress them!). + + # If the following file types wouldn't be served without the appropriate + # `Content-Enable` HTTP response header, client applications (e.g.: + # browsers) wouldn't know that they first need to uncompress the response, + # and thus, wouldn't be able to understand the content. + + # http://httpd.apache.org/docs/current/mod/mod_mime.html#addencoding + + + AddEncoding gzip svgz + + + # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + # Compress all output labeled with one of the following media types. + + # IMPORTANT: For Apache versions below 2.3.7 you don't need to enable + # `mod_filter` and can remove the `` & `` + # lines as `AddOutputFilterByType` is still in the core directives. + + + AddOutputFilterByType DEFLATE "application/atom+xml" \ + "application/javascript" \ + "application/json" \ + "application/ld+json" \ + "application/manifest+json" \ + "application/rdf+xml" \ + "application/rss+xml" \ + "application/schema+json" \ + "application/vnd.geo+json" \ + "application/vnd.ms-fontobject" \ + "application/x-font-ttf" \ + "application/x-web-app-manifest+json" \ + "application/xhtml+xml" \ + "application/xml" \ + "font/opentype" \ + "image/svg+xml" \ + "image/x-icon" \ + "text/cache-manifest" \ + "text/css" \ + "text/html" \ + "text/javascript" \ + "text/plain" \ + "text/vtt" \ + "text/x-component" \ + "text/xml" + + + diff --git a/app/Http/Controllers/InvoiceController.php b/app/Http/Controllers/InvoiceController.php index e0e95cbc19f2..1e4c975b0841 100644 --- a/app/Http/Controllers/InvoiceController.php +++ b/app/Http/Controllers/InvoiceController.php @@ -701,7 +701,7 @@ class InvoiceController extends BaseController } break; case 'email': - + //check query paramater for email_type and set the template else use calculateTemplate $this->reminder_template = $invoice->calculateTemplate(); $invoice->invitations->load('contact.client.country','invoice.client.country','invoice.company')->each(function ($invitation) use ($invoice) { From 79ce603d60b25c1dcb6101a4c6f5cef1030f5107 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Mon, 22 Jun 2020 07:21:56 +1000 Subject: [PATCH 3/9] Fix for require invoices array UpdatePaymentRequest --- app/Http/Requests/Payment/UpdatePaymentRequest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Requests/Payment/UpdatePaymentRequest.php b/app/Http/Requests/Payment/UpdatePaymentRequest.php index e5cb40f81b4f..9ad49edfb776 100644 --- a/app/Http/Requests/Payment/UpdatePaymentRequest.php +++ b/app/Http/Requests/Payment/UpdatePaymentRequest.php @@ -37,7 +37,7 @@ class UpdatePaymentRequest extends Request public function rules() {//min:1 removed return [ - 'invoices' => ['required','array',new PaymentAppliedValidAmount,new ValidCreditsPresentRule], + 'invoices' => ['array',new PaymentAppliedValidAmount,new ValidCreditsPresentRule], 'invoices.*.invoice_id' => 'distinct', 'documents' => 'mimes:png,ai,svg,jpeg,tiff,pdf,gif,psd,txt,doc,xls,ppt,xlsx,docx,pptx', ]; From 7787aa49e900f291d5a6a5883bedbda3a8e71a74 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Mon, 22 Jun 2020 07:23:32 +1000 Subject: [PATCH 4/9] assigned_user_id added to fillable models --- app/Http/Requests/Payment/UpdatePaymentRequest.php | 2 +- app/Models/Client.php | 1 + app/Models/Credit.php | 1 + app/Models/Quote.php | 1 + 4 files changed, 4 insertions(+), 1 deletion(-) diff --git a/app/Http/Requests/Payment/UpdatePaymentRequest.php b/app/Http/Requests/Payment/UpdatePaymentRequest.php index 9ad49edfb776..7abe8aeebd65 100644 --- a/app/Http/Requests/Payment/UpdatePaymentRequest.php +++ b/app/Http/Requests/Payment/UpdatePaymentRequest.php @@ -35,7 +35,7 @@ class UpdatePaymentRequest extends Request public function rules() - {//min:1 removed + {//min:1 removed, 'required' return [ 'invoices' => ['array',new PaymentAppliedValidAmount,new ValidCreditsPresentRule], 'invoices.*.invoice_id' => 'distinct', diff --git a/app/Models/Client.php b/app/Models/Client.php index d186023b0ea0..79457ea7d864 100644 --- a/app/Models/Client.php +++ b/app/Models/Client.php @@ -64,6 +64,7 @@ class Client extends BaseModel implements HasLocalePreference ]; protected $fillable = [ + 'assigned_user_id', 'currency_id', 'name', 'website', diff --git a/app/Models/Credit.php b/app/Models/Credit.php index abb776c12e1d..c82292a24b59 100644 --- a/app/Models/Credit.php +++ b/app/Models/Credit.php @@ -38,6 +38,7 @@ class Credit extends BaseModel protected $presenter = 'App\Models\Presenters\CreditPresenter'; protected $fillable = [ + 'assigned_user_id', 'number', 'discount', 'po_number', diff --git a/app/Models/Quote.php b/app/Models/Quote.php index 362829eefede..debd2e8058bb 100644 --- a/app/Models/Quote.php +++ b/app/Models/Quote.php @@ -42,6 +42,7 @@ class Quote extends BaseModel protected $presenter = 'App\Models\Presenters\QuotePresenter'; protected $fillable = [ + 'assigned_user_id', 'number', 'discount', 'po_number', From 52e00e2a90690f6924eb49c60d57dd61e2a7efff Mon Sep 17 00:00:00 2001 From: David Bomba Date: Mon, 22 Jun 2020 07:24:03 +1000 Subject: [PATCH 5/9] enabled_tax_rates defaults to 0 --- database/migrations/2014_10_13_000000_create_users_table.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/database/migrations/2014_10_13_000000_create_users_table.php b/database/migrations/2014_10_13_000000_create_users_table.php index 7ec7235b8fe3..2f8011779281 100644 --- a/database/migrations/2014_10_13_000000_create_users_table.php +++ b/database/migrations/2014_10_13_000000_create_users_table.php @@ -156,7 +156,7 @@ class CreateUsersTable extends Migration $table->boolean('custom_surcharge_taxes4')->default(false); //$table->boolean('enable_invoice_quantity')->default(true); $table->boolean('show_product_cost')->default(false); - $table->unsignedInteger('enabled_tax_rates')->default(1); + $table->unsignedInteger('enabled_tax_rates')->default(0); $table->unsignedInteger('enabled_modules')->default(0); $table->boolean('enable_product_cost')->default(0); From dbff1ab6ab36ca492f5f51a04ac6e71fc65dbb13 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Mon, 22 Jun 2020 07:30:25 +1000 Subject: [PATCH 6/9] remove x-api-version and replace with x-minimum-client-version --- app/Http/Controllers/AccountController.php | 2 +- app/Http/Controllers/ActivityController.php | 2 +- .../Auth/ForgotPasswordController.php | 2 +- app/Http/Controllers/Auth/LoginController.php | 12 +++++------ app/Http/Controllers/BaseController.php | 4 ++-- app/Http/Controllers/ClientController.php | 16 +++++++-------- app/Http/Controllers/CompanyController.php | 14 ++++++------- .../Controllers/CompanyGatewayController.php | 16 +++++++-------- .../Controllers/CompanyLedgerController.php | 2 +- .../Controllers/CompanyUserController.php | 2 +- app/Http/Controllers/CreditController.php | 16 +++++++-------- app/Http/Controllers/DesignController.php | 16 +++++++-------- app/Http/Controllers/EmailController.php | 2 +- app/Http/Controllers/ExpenseController.php | 16 +++++++-------- .../Controllers/GroupSettingController.php | 14 ++++++------- app/Http/Controllers/InvoiceController.php | 20 +++++++++---------- app/Http/Controllers/LicenseController.php | 2 +- app/Http/Controllers/MigrationController.php | 6 +++--- app/Http/Controllers/OpenAPI/Headers.php | 2 +- app/Http/Controllers/PaymentController.php | 20 +++++++++---------- .../Controllers/PaymentTermController.php | 16 +++++++-------- app/Http/Controllers/PreviewController.php | 2 +- app/Http/Controllers/ProductController.php | 16 +++++++-------- app/Http/Controllers/QuoteController.php | 18 ++++++++--------- .../RecurringInvoiceController.php | 18 ++++++++--------- .../Controllers/RecurringQuoteController.php | 18 ++++++++--------- .../Controllers/SubscriptionController.php | 20 +++++++++---------- .../Support/Messages/SendingController.php | 2 +- app/Http/Controllers/TaxRateController.php | 12 +++++------ app/Http/Controllers/TemplateController.php | 2 +- app/Http/Controllers/TokenController.php | 16 +++++++-------- app/Http/Controllers/UserController.php | 20 +++++++++---------- app/Http/Controllers/VendorController.php | 16 +++++++-------- app/Http/Middleware/ApiSecretCheck.php | 2 +- app/Http/Middleware/Cors.php | 2 +- config/ninja.php | 2 +- resources/views/index/index.blade.php | 3 ++- 37 files changed, 186 insertions(+), 185 deletions(-) diff --git a/app/Http/Controllers/AccountController.php b/app/Http/Controllers/AccountController.php index 91190bb2db15..cac67e2c27dd 100644 --- a/app/Http/Controllers/AccountController.php +++ b/app/Http/Controllers/AccountController.php @@ -125,7 +125,7 @@ class AccountController extends BaseController * @OA\Response( * response=200, * description="The Company User response", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/CompanyUser"), diff --git a/app/Http/Controllers/ActivityController.php b/app/Http/Controllers/ActivityController.php index 0a23c3bdfaaf..f008681254b7 100644 --- a/app/Http/Controllers/ActivityController.php +++ b/app/Http/Controllers/ActivityController.php @@ -52,7 +52,7 @@ class ActivityController extends BaseController * @OA\Response( * response=200, * description="A list of actvities", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Activity"), diff --git a/app/Http/Controllers/Auth/ForgotPasswordController.php b/app/Http/Controllers/Auth/ForgotPasswordController.php index 9374f6a46ec3..7b4f9ad17462 100644 --- a/app/Http/Controllers/Auth/ForgotPasswordController.php +++ b/app/Http/Controllers/Auth/ForgotPasswordController.php @@ -71,7 +71,7 @@ class ForgotPasswordController extends Controller * @OA\Response( * response=201, * description="The Reset response", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent( diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php index e42f036ae0fa..5dd43a5ace30 100644 --- a/app/Http/Controllers/Auth/LoginController.php +++ b/app/Http/Controllers/Auth/LoginController.php @@ -136,7 +136,7 @@ class LoginController extends BaseController * @OA\Response( * response=200, * description="The Company User response", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/CompanyUser"), @@ -168,7 +168,7 @@ class LoginController extends BaseController return response() ->json(['message' => 'Too many login attempts, you are being throttled'], 401) ->header('X-App-Version', config('ninja.app_version')) - ->header('X-Api-Version', config('ninja.api_version')); + ->header('X-Api-Version', config('ninja.minimum_client_version')); } if ($this->attemptLogin($request)) { @@ -196,7 +196,7 @@ class LoginController extends BaseController return response() ->json(['message' => ctrans('texts.invalid_credentials')], 401) ->header('X-App-Version', config('ninja.app_version')) - ->header('X-Api-Version', config('ninja.api_version')); + ->header('X-Api-Version', config('ninja.minimum_client_version')); } } @@ -221,7 +221,7 @@ class LoginController extends BaseController * @OA\Response( * response=200, * description="The Company User response", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/CompanyUser"), @@ -267,7 +267,7 @@ class LoginController extends BaseController return response() ->json(['message' => 'Provider not supported'], 400) ->header('X-App-Version', config('ninja.app_version')) - ->header('X-Api-Version', config('ninja.api_version')); + ->header('X-Api-Version', config('ninja.minimum_client_version')); } private function handleGoogleOauth() @@ -344,7 +344,7 @@ class LoginController extends BaseController return response() ->json(['message' => ctrans('texts.invalid_credentials')], 401) ->header('X-App-Version', config('ninja.app_version')) - ->header('X-Api-Version', config('ninja.api_version')); + ->header('X-Api-Version', config('ninja.minimum_client_version')); } diff --git a/app/Http/Controllers/BaseController.php b/app/Http/Controllers/BaseController.php index 39699f662f26..f1b2af101f40 100644 --- a/app/Http/Controllers/BaseController.php +++ b/app/Http/Controllers/BaseController.php @@ -100,7 +100,7 @@ class BaseController extends Controller public function notFound() { return response()->json(['message' => '404 | Nothing to see here!'], 404) - ->header('X-API-VERSION', config('ninja.api_version')) + ->header('X-API-VERSION', config('ninja.minimum_client_version')) ->header('X-APP-VERSION', config('ninja.app_version')); } @@ -240,7 +240,7 @@ class BaseController extends Controller { return [ 'Content-Type' => 'application/json', - 'X-Api-Version' => config('ninja.api_version'), + 'X-Api-Version' => config('ninja.minimum_client_version'), 'X-App-Version' => config('ninja.app_version'), ]; } diff --git a/app/Http/Controllers/ClientController.php b/app/Http/Controllers/ClientController.php index d9f8c43b04dc..1edba051e169 100644 --- a/app/Http/Controllers/ClientController.php +++ b/app/Http/Controllers/ClientController.php @@ -89,7 +89,7 @@ class ClientController extends BaseController * @OA\Response( * response=200, * description="A list of clients", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Client"), @@ -146,7 +146,7 @@ class ClientController extends BaseController * @OA\Response( * response=200, * description="Returns the cl.ient object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Client"), @@ -201,7 +201,7 @@ class ClientController extends BaseController * @OA\Response( * response=200, * description="Returns the client object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Client"), @@ -258,7 +258,7 @@ class ClientController extends BaseController * @OA\Response( * response=200, * description="Returns the client object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Client"), @@ -310,7 +310,7 @@ class ClientController extends BaseController * @OA\Response( * response=200, * description="A blank client object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Client"), @@ -357,7 +357,7 @@ class ClientController extends BaseController * @OA\Response( * response=200, * description="Returns the saved client object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Client"), @@ -418,7 +418,7 @@ class ClientController extends BaseController * @OA\Response( * response=200, * description="Returns a HTTP status", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * ), @@ -479,7 +479,7 @@ class ClientController extends BaseController * @OA\Response( * response=200, * description="The Client User response", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Client"), diff --git a/app/Http/Controllers/CompanyController.php b/app/Http/Controllers/CompanyController.php index fb06b051fc75..0877a2769736 100644 --- a/app/Http/Controllers/CompanyController.php +++ b/app/Http/Controllers/CompanyController.php @@ -89,7 +89,7 @@ class CompanyController extends BaseController * @OA\Response( * response=200, * description="A list of companies", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Company"), @@ -135,7 +135,7 @@ class CompanyController extends BaseController * @OA\Response( * response=200, * description="A blank company object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Company"), @@ -181,7 +181,7 @@ class CompanyController extends BaseController * @OA\Response( * response=200, * description="Returns the saved company object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Company"), @@ -274,7 +274,7 @@ class CompanyController extends BaseController * @OA\Response( * response=200, * description="Returns the company object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Company"), @@ -329,7 +329,7 @@ class CompanyController extends BaseController * @OA\Response( * response=200, * description="Returns the company object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Company"), @@ -385,7 +385,7 @@ class CompanyController extends BaseController * @OA\Response( * response=200, * description="Returns the company object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Company"), @@ -446,7 +446,7 @@ class CompanyController extends BaseController * @OA\Response( * response=200, * description="Returns a HTTP status", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * ), diff --git a/app/Http/Controllers/CompanyGatewayController.php b/app/Http/Controllers/CompanyGatewayController.php index bdd89008d676..58a4d5bd33c7 100644 --- a/app/Http/Controllers/CompanyGatewayController.php +++ b/app/Http/Controllers/CompanyGatewayController.php @@ -74,7 +74,7 @@ class CompanyGatewayController extends BaseController * @OA\Response( * response=200, * description="A list of company_gateways", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/CompanyGateway"), @@ -120,7 +120,7 @@ class CompanyGatewayController extends BaseController * @OA\Response( * response=200, * description="A blank CompanyGateway object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/CompanyGateway"), @@ -167,7 +167,7 @@ class CompanyGatewayController extends BaseController * @OA\Response( * response=200, * description="Returns the saved CompanyGateway object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/CompanyGateway"), @@ -226,7 +226,7 @@ class CompanyGatewayController extends BaseController * @OA\Response( * response=200, * description="Returns the CompanyGateway object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/CompanyGateway"), @@ -281,7 +281,7 @@ class CompanyGatewayController extends BaseController * @OA\Response( * response=200, * description="Returns the CompanyGateway object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/CompanyGateway"), @@ -337,7 +337,7 @@ class CompanyGatewayController extends BaseController * @OA\Response( * response=200, * description="Returns the CompanyGateway object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/CompanyGateway"), @@ -400,7 +400,7 @@ class CompanyGatewayController extends BaseController * @OA\Response( * response=200, * description="Returns a HTTP status", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * ), @@ -460,7 +460,7 @@ class CompanyGatewayController extends BaseController * @OA\Response( * response=200, * description="The Company Gateways response", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/CompanyGateway"), diff --git a/app/Http/Controllers/CompanyLedgerController.php b/app/Http/Controllers/CompanyLedgerController.php index c09ae7b022a3..faecd4d0fc48 100644 --- a/app/Http/Controllers/CompanyLedgerController.php +++ b/app/Http/Controllers/CompanyLedgerController.php @@ -46,7 +46,7 @@ class CompanyLedgerController extends BaseController * @OA\Response( * response=200, * description="A list of company_ledger", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/CompanyLedger"), diff --git a/app/Http/Controllers/CompanyUserController.php b/app/Http/Controllers/CompanyUserController.php index 990b07a34f39..572e6bb541b8 100644 --- a/app/Http/Controllers/CompanyUserController.php +++ b/app/Http/Controllers/CompanyUserController.php @@ -105,7 +105,7 @@ class CompanyUserController extends BaseController * @OA\Response( * response=200, * description="The Company User response", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/CompanyUser"), diff --git a/app/Http/Controllers/CreditController.php b/app/Http/Controllers/CreditController.php index 2341ffca289c..8b56a5685c2f 100644 --- a/app/Http/Controllers/CreditController.php +++ b/app/Http/Controllers/CreditController.php @@ -69,7 +69,7 @@ class CreditController extends BaseController * @OA\Response( * response=200, * description="A list of credits", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Credit"), @@ -117,7 +117,7 @@ class CreditController extends BaseController * @OA\Response( * response=200, * description="A blank credit object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Credit"), @@ -164,7 +164,7 @@ class CreditController extends BaseController * @OA\Response( * response=200, * description="Returns the saved credit object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Credit"), @@ -229,7 +229,7 @@ class CreditController extends BaseController * @OA\Response( * response=200, * description="Returns the credit object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Credit"), @@ -285,7 +285,7 @@ class CreditController extends BaseController * @OA\Response( * response=200, * description="Returns the credit object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Invoice"), @@ -342,7 +342,7 @@ class CreditController extends BaseController * @OA\Response( * response=200, * description="Returns the Credit object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Credit"), @@ -406,7 +406,7 @@ class CreditController extends BaseController * @OA\Response( * response=200, * description="Returns a HTTP status", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * ), @@ -464,7 +464,7 @@ class CreditController extends BaseController * @OA\Response( * response=200, * description="The Bulk Action response", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * ), diff --git a/app/Http/Controllers/DesignController.php b/app/Http/Controllers/DesignController.php index 388ce1d375af..f39047e2f1f1 100644 --- a/app/Http/Controllers/DesignController.php +++ b/app/Http/Controllers/DesignController.php @@ -65,7 +65,7 @@ class DesignController extends BaseController * @OA\Response( * response=200, * description="A list of designs", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Design"), @@ -122,7 +122,7 @@ class DesignController extends BaseController * @OA\Response( * response=200, * description="Returns the expense object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Design"), @@ -177,7 +177,7 @@ class DesignController extends BaseController * @OA\Response( * response=200, * description="Returns the design object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Design"), @@ -234,7 +234,7 @@ class DesignController extends BaseController * @OA\Response( * response=200, * description="Returns the design object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Design"), @@ -285,7 +285,7 @@ class DesignController extends BaseController * @OA\Response( * response=200, * description="A blank design object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Design"), @@ -332,7 +332,7 @@ class DesignController extends BaseController * @OA\Response( * response=200, * description="Returns the saved design object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Design"), @@ -391,7 +391,7 @@ class DesignController extends BaseController * @OA\Response( * response=200, * description="Returns a HTTP status", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * ), @@ -454,7 +454,7 @@ class DesignController extends BaseController * @OA\Response( * response=200, * description="The Design User response", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Design"), diff --git a/app/Http/Controllers/EmailController.php b/app/Http/Controllers/EmailController.php index c40b2a4804c1..62760c5acce3 100644 --- a/app/Http/Controllers/EmailController.php +++ b/app/Http/Controllers/EmailController.php @@ -88,7 +88,7 @@ class EmailController extends BaseController * @OA\Response( * response=200, * description="success", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Template"), diff --git a/app/Http/Controllers/ExpenseController.php b/app/Http/Controllers/ExpenseController.php index fa4e2fd6cd83..487b15fe86d5 100644 --- a/app/Http/Controllers/ExpenseController.php +++ b/app/Http/Controllers/ExpenseController.php @@ -77,7 +77,7 @@ class ExpenseController extends BaseController * @OA\Response( * response=200, * description="A list of expenses", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Expense"), @@ -134,7 +134,7 @@ class ExpenseController extends BaseController * @OA\Response( * response=200, * description="Returns the expense object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Expense"), @@ -189,7 +189,7 @@ class ExpenseController extends BaseController * @OA\Response( * response=200, * description="Returns the client object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Expense"), @@ -246,7 +246,7 @@ class ExpenseController extends BaseController * @OA\Response( * response=200, * description="Returns the client object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Expense"), @@ -298,7 +298,7 @@ class ExpenseController extends BaseController * @OA\Response( * response=200, * description="A blank client object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Expense"), @@ -345,7 +345,7 @@ class ExpenseController extends BaseController * @OA\Response( * response=200, * description="Returns the saved client object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Expense"), @@ -406,7 +406,7 @@ class ExpenseController extends BaseController * @OA\Response( * response=200, * description="Returns a HTTP status", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * ), @@ -467,7 +467,7 @@ class ExpenseController extends BaseController * @OA\Response( * response=200, * description="The Expense User response", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Expense"), diff --git a/app/Http/Controllers/GroupSettingController.php b/app/Http/Controllers/GroupSettingController.php index c0fab0ad4ba6..4dcf7923e0e5 100644 --- a/app/Http/Controllers/GroupSettingController.php +++ b/app/Http/Controllers/GroupSettingController.php @@ -64,7 +64,7 @@ class GroupSettingController extends BaseController * @OA\Response( * response=200, * description="A list of group_settings", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/GroupSetting"), @@ -110,7 +110,7 @@ class GroupSettingController extends BaseController * @OA\Response( * response=200, * description="A blank GroupSetting object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/GroupSetting"), @@ -157,7 +157,7 @@ class GroupSettingController extends BaseController * @OA\Response( * response=200, * description="Returns the saved GroupSetting object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/GroupSetting"), @@ -221,7 +221,7 @@ class GroupSettingController extends BaseController * @OA\Response( * response=200, * description="Returns the GroupSetting object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/GroupSetting"), @@ -276,7 +276,7 @@ class GroupSettingController extends BaseController * @OA\Response( * response=200, * description="Returns the GroupSetting object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/GroupSetting"), @@ -332,7 +332,7 @@ class GroupSettingController extends BaseController * @OA\Response( * response=200, * description="Returns the GroupSetting object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/GroupSetting"), @@ -391,7 +391,7 @@ class GroupSettingController extends BaseController * @OA\Response( * response=200, * description="Returns a HTTP status", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * ), diff --git a/app/Http/Controllers/InvoiceController.php b/app/Http/Controllers/InvoiceController.php index 1e4c975b0841..48251ead318d 100644 --- a/app/Http/Controllers/InvoiceController.php +++ b/app/Http/Controllers/InvoiceController.php @@ -94,7 +94,7 @@ class InvoiceController extends BaseController * @OA\Response( * response=200, * description="A list of invoices", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Invoice"), @@ -141,7 +141,7 @@ class InvoiceController extends BaseController * @OA\Response( * response=200, * description="A blank invoice object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Invoice"), @@ -188,7 +188,7 @@ class InvoiceController extends BaseController * @OA\Response( * response=200, * description="Returns the saved invoice object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Invoice"), @@ -251,7 +251,7 @@ class InvoiceController extends BaseController * @OA\Response( * response=200, * description="Returns the invoice object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Invoice"), @@ -307,7 +307,7 @@ class InvoiceController extends BaseController * @OA\Response( * response=200, * description="Returns the invoice object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Invoice"), @@ -364,7 +364,7 @@ class InvoiceController extends BaseController * @OA\Response( * response=200, * description="Returns the invoice object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Invoice"), @@ -428,7 +428,7 @@ class InvoiceController extends BaseController * @OA\Response( * response=200, * description="Returns a HTTP status", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * ), @@ -486,7 +486,7 @@ class InvoiceController extends BaseController * @OA\Response( * response=200, * description="The Bulk Action response", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * ), @@ -599,7 +599,7 @@ class InvoiceController extends BaseController * @OA\Response( * response=200, * description="Returns the invoice object", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * @OA\JsonContent(ref="#/components/schemas/Invoice"), @@ -753,7 +753,7 @@ class InvoiceController extends BaseController * @OA\Response( * response=200, * description="Returns the invoice pdf", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * ), diff --git a/app/Http/Controllers/LicenseController.php b/app/Http/Controllers/LicenseController.php index 537f141f1cff..7c80e8faad7c 100644 --- a/app/Http/Controllers/LicenseController.php +++ b/app/Http/Controllers/LicenseController.php @@ -62,7 +62,7 @@ class LicenseController extends BaseController * @OA\Response( * response=200, * description="Success!", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * ), diff --git a/app/Http/Controllers/MigrationController.php b/app/Http/Controllers/MigrationController.php index 07fc187fd3cf..59c7db415a5a 100644 --- a/app/Http/Controllers/MigrationController.php +++ b/app/Http/Controllers/MigrationController.php @@ -59,7 +59,7 @@ class MigrationController extends BaseController * @OA\Response( * response=200, * description="Success", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * ), @@ -122,7 +122,7 @@ class MigrationController extends BaseController * @OA\Response( * response=200, * description="Success", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * ), @@ -174,7 +174,7 @@ class MigrationController extends BaseController * @OA\Response( * response=200, * description="Success", - * @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"), + * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * ), diff --git a/app/Http/Controllers/OpenAPI/Headers.php b/app/Http/Controllers/OpenAPI/Headers.php index 549c3f0fce24..b9aef8924c2d 100644 --- a/app/Http/Controllers/OpenAPI/Headers.php +++ b/app/Http/Controllers/OpenAPI/Headers.php @@ -1,7 +1,7 @@ json($error, 403) ->header('X-App-Version', config('ninja.app_version')) - ->header('X-Api-Version', config('ninja.api_version')); + ->header('X-Minimum-Client-Version', config('ninja.minimum_client_version')); } } } diff --git a/app/Http/Middleware/Cors.php b/app/Http/Middleware/Cors.php index f1ca85bf62f7..210a45855106 100644 --- a/app/Http/Middleware/Cors.php +++ b/app/Http/Middleware/Cors.php @@ -39,7 +39,7 @@ class Cors $response->headers->set('Access-Control-Allow-Headers', 'X-API-SECRET,X-API-TOKEN,X-API-PASSWORD,DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range'); $response->headers->set('Access-Control-Expose-Headers', 'X-APP-VERSION'); $response->headers->set('X-APP-VERSION', config('ninja.app_version')); - $response->headers->set('X-API-VERSION', config('ninja.api_version')); + $response->headers->set('X-MINIMUM-CLIENT-VERSION', config('ninja.minimum_client_version')); return $response; } diff --git a/config/ninja.php b/config/ninja.php index d2a5bed810ff..8675ced52548 100644 --- a/config/ninja.php +++ b/config/ninja.php @@ -13,7 +13,7 @@ return [ 'app_url' => env('APP_URL', ''), 'app_domain' => env('APP_DOMAIN', ''), 'app_version' => '5.0.4', - 'api_version' => '5.0.4', + 'minimum_client_version' => '5.0.4', 'terms_version' => '1.0.1', 'api_secret' => env('API_SECRET', ''), 'google_maps_api_key' => env('GOOGLE_MAPS_API_KEY'), diff --git a/resources/views/index/index.blade.php b/resources/views/index/index.blade.php index 48236cbcb726..1e63b29e1698 100644 --- a/resources/views/index/index.blade.php +++ b/resources/views/index/index.blade.php @@ -5,6 +5,7 @@ Invoice Ninja + @@ -16,7 +17,7 @@ } - +
Loading... From 6b7db63e666ce59f911f936b8f167889d18732b4 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Mon, 22 Jun 2020 08:34:02 +1000 Subject: [PATCH 7/9] Design repository --- app/Events/Design/DesignWasArchived.php | 54 +++++++++++++++++++++++ app/Events/Design/DesignWasCreated.php | 48 ++++++++++++++++++++ app/Events/Design/DesignWasDeleted.php | 49 ++++++++++++++++++++ app/Events/Design/DesignWasRestored.php | 48 ++++++++++++++++++++ app/Events/Design/DesignWasUpdated.php | 49 ++++++++++++++++++++ app/Http/Controllers/DesignController.php | 8 +++- app/Providers/EventServiceProvider.php | 42 +++++++++++------- app/Repositories/BaseRepository.php | 10 +++-- app/Repositories/DesignRepository.php | 40 +++++++++++++++++ routes/api.php | 1 + 10 files changed, 327 insertions(+), 22 deletions(-) create mode 100644 app/Events/Design/DesignWasArchived.php create mode 100644 app/Events/Design/DesignWasCreated.php create mode 100644 app/Events/Design/DesignWasDeleted.php create mode 100644 app/Events/Design/DesignWasRestored.php create mode 100644 app/Events/Design/DesignWasUpdated.php create mode 100644 app/Repositories/DesignRepository.php diff --git a/app/Events/Design/DesignWasArchived.php b/app/Events/Design/DesignWasArchived.php new file mode 100644 index 000000000000..c41303db150d --- /dev/null +++ b/app/Events/Design/DesignWasArchived.php @@ -0,0 +1,54 @@ +design = $design; + } + + /** + * Get the channels the event should broadcast on. + * + * @return \Illuminate\Broadcasting\Channel|array + */ + public function broadcastOn() + { + return new PrivateChannel('channel-name'); + } +} diff --git a/app/Events/Design/DesignWasCreated.php b/app/Events/Design/DesignWasCreated.php new file mode 100644 index 000000000000..b44e8fcd90a2 --- /dev/null +++ b/app/Events/Design/DesignWasCreated.php @@ -0,0 +1,48 @@ +design = $design; + } + + /** + * Get the channels the event should broadcast on. + * + * @return \Illuminate\Broadcasting\Channel|array + */ + public function broadcastOn() + { + return new PrivateChannel('channel-name'); + } +} diff --git a/app/Events/Design/DesignWasDeleted.php b/app/Events/Design/DesignWasDeleted.php new file mode 100644 index 000000000000..653a40f47836 --- /dev/null +++ b/app/Events/Design/DesignWasDeleted.php @@ -0,0 +1,49 @@ +design = $design; + } + + /** + * Get the channels the event should broadcast on. + * + * @return \Illuminate\Broadcasting\Channel|array + */ + public function broadcastOn() + { + return new PrivateChannel('channel-name'); + } +} +} diff --git a/app/Events/Design/DesignWasRestored.php b/app/Events/Design/DesignWasRestored.php new file mode 100644 index 000000000000..1b71ecf93233 --- /dev/null +++ b/app/Events/Design/DesignWasRestored.php @@ -0,0 +1,48 @@ +design = $design; + } + + /** + * Get the channels the event should broadcast on. + * + * @return \Illuminate\Broadcasting\Channel|array + */ + public function broadcastOn() + { + return new PrivateChannel('channel-name'); + } +} diff --git a/app/Events/Design/DesignWasUpdated.php b/app/Events/Design/DesignWasUpdated.php new file mode 100644 index 000000000000..f90d8c76b4e3 --- /dev/null +++ b/app/Events/Design/DesignWasUpdated.php @@ -0,0 +1,49 @@ +design = $design; + } + + /** + * Get the channels the event should broadcast on. + * + * @return \Illuminate\Broadcasting\Channel|array + */ + public function broadcastOn() + { + return new PrivateChannel('channel-name'); + } +} +} diff --git a/app/Http/Controllers/DesignController.php b/app/Http/Controllers/DesignController.php index f39047e2f1f1..77c465b19eb5 100644 --- a/app/Http/Controllers/DesignController.php +++ b/app/Http/Controllers/DesignController.php @@ -21,6 +21,7 @@ use App\Http\Requests\Design\StoreDesignRequest; use App\Http\Requests\Design\UpdateDesignRequest; use App\Jobs\Entity\ActionEntity; use App\Models\Design; +use App\Repositories\DesignRepository; use App\Transformers\DesignTransformer; use App\Utils\Traits\BulkOptions; use App\Utils\Traits\MakesHash; @@ -40,14 +41,17 @@ class DesignController extends BaseController protected $entity_transformer = DesignTransformer::class; + protected $design_repo; /** * DesignController constructor. * @param DesignRepository $designRepo */ - public function __construct() + public function __construct(DesignRepository $design_repo) { parent::__construct(); + + $this->design_repo = $design_repo; } /** @@ -480,7 +484,7 @@ class DesignController extends BaseController $designs->each(function ($design, $key) use ($action) { if (auth()->user()->can('edit', $design)) { - //$this->design_repo->{$action}($design);@todo + $this->design_repo->{$action}($design);@todo } }); diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php index 85bc5e3ec942..f2b657e4ea42 100644 --- a/app/Providers/EventServiceProvider.php +++ b/app/Providers/EventServiceProvider.php @@ -11,10 +11,18 @@ namespace App\Providers; +use App\Events\Client\ClientWasArchived; use App\Events\Client\ClientWasCreated; +use App\Events\Client\ClientWasDeleted; +use App\Events\Client\ClientWasRestored; +use App\Events\Client\ClientWasUpdated; +use App\Events\Client\DesignWasDeleted; +use App\Events\Client\DesignWasRestored; +use App\Events\Client\DesignWasUpdated; use App\Events\Company\CompanyWasDeleted; use App\Events\Contact\ContactLoggedIn; use App\Events\Credit\CreditWasMarkedSent; +use App\Events\Design\DesignWasArchived; use App\Events\Invoice\InvoiceWasCancelled; use App\Events\Invoice\InvoiceWasCreated; use App\Events\Invoice\InvoiceWasDeleted; @@ -78,11 +86,6 @@ class EventServiceProvider extends ServiceProvider ContactLoggedIn::class => [ UpdateContactLastLogin::class, ], - // Clients - ClientWasCreated::class => [ - CreatedClientActivity::class, - // 'App\Listeners\SubscriptionListener@createdClient', - ], PaymentWasCreated::class => [ PaymentCreatedActivity::class, PaymentNotification::class, @@ -96,24 +99,29 @@ class EventServiceProvider extends ServiceProvider PaymentWasVoided::class => [ PaymentVoidedActivity::class, ], - 'App\Events\ClientWasArchived' => [ - 'App\Listeners\ActivityListener@archivedClient', + // Clients + ClientWasCreated::class =>[ + CreatedClientActivity::class, ], - 'App\Events\ClientWasUpdated' => [ - 'App\Listeners\SubscriptionListener@updatedClient', + ClientWasArchived::class =>[ ], - 'App\Events\ClientWasDeleted' => [ - 'App\Listeners\ActivityListener@deletedClient', - 'App\Listeners\SubscriptionListener@deletedClient', - 'App\Listeners\HistoryListener@deletedClient', + ClientWasUpdated::class =>[ ], - 'App\Events\ClientWasRestored' => [ - 'App\Listeners\ActivityListener@restoredClient', + ClientWasDeleted::class =>[ + ], + ClientWasRestored::class =>[ ], - CreditWasMarkedSent::class => [ ], - + //Designs + DesignWasArchived::class => [ + ], + DesignWasUpdated::class => [ + ], + DesignWasDeleted::class => [ + ], + DesignWasRestored::class => [ + ], //Invoices InvoiceWasMarkedSent::class => [ CreateInvoiceHtmlBackup::class, diff --git a/app/Repositories/BaseRepository.php b/app/Repositories/BaseRepository.php index 277b15a6b984..72286610f6bc 100644 --- a/app/Repositories/BaseRepository.php +++ b/app/Repositories/BaseRepository.php @@ -203,13 +203,14 @@ class BaseRepository $lcfirst_resource_id = lcfirst($resource) . '_id'; if ($class->name == Invoice::class || $class->name == Quote::class) { + info("class name = invoice"); $state['starting_amount'] = $model->amount; + info("starting amount = {$model->amount}"); } if (!$model->id) { $company_defaults = $client->setCompanyDefaults($data, lcfirst($resource)); $model->uses_inclusive_taxes = $client->getSetting('inclusive_taxes'); - $data = array_merge($company_defaults, $data); } @@ -281,7 +282,10 @@ class BaseRepository $model->service()->createInvitations(); } + $model = $model->calc()->getInvoice(); $state['finished_amount'] = $model->amount; + + info("finished amount = {$model->amount}"); $model = $model->service()->applyNumber()->save(); @@ -291,11 +295,11 @@ class BaseRepository if ($class->name == Invoice::class) { if (($state['finished_amount'] != $state['starting_amount']) && ($model->status_id != Invoice::STATUS_DRAFT)) { + info("inside ledger updating"); $model->ledger()->updateInvoiceBalance(($state['finished_amount'] - $state['starting_amount'])); + $model->client->service()->updateBalance(($state['finished_amount'] - $state['starting_amount']))->save(); } - $model = $model->calc()->getInvoice(); - event(new InvoiceWasUpdated($model, $model->company)); } diff --git a/app/Repositories/DesignRepository.php b/app/Repositories/DesignRepository.php new file mode 100644 index 000000000000..9e9070aa866f --- /dev/null +++ b/app/Repositories/DesignRepository.php @@ -0,0 +1,40 @@ + ['api_db', 'token_auth', 'locale'], 'prefix' => 'a Route::post('migrate', 'MigrationController@index')->name('migrate.start'); Route::resource('designs', 'DesignController');// name = (payments. index / create / show / update / destroy / edit + Route::post('designs/bulk', 'DesignController@bulk')->name('designs.bulk'); Route::get('users', 'UserController@index'); Route::put('users/{user}', 'UserController@update')->middleware('password_protected'); From c2211bf2f016103d179e2a80245a66daa12ab069 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Mon, 22 Jun 2020 13:07:58 +1000 Subject: [PATCH 8/9] FIxes for tests --- app/Exceptions/Handler.php | 36 ++++++++++--------- app/Http/Controllers/DesignController.php | 2 +- .../Requests/Payment/StorePaymentRequest.php | 2 ++ app/Transformers/PaymentTransformer.php | 2 +- tests/Feature/PaymentTest.php | 5 +-- 5 files changed, 27 insertions(+), 20 deletions(-) diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php index 25b9ab51b118..7a9425d72010 100644 --- a/app/Exceptions/Handler.php +++ b/app/Exceptions/Handler.php @@ -57,25 +57,29 @@ class Handler extends ExceptionHandler */ public function report(Exception $exception) { - if(!Schema::hasTable('accounts')) + if(!Schema::hasTable('accounts')){ + info("account table not found"); return; + } if (app()->bound('sentry') && $this->shouldReport($exception)) { - app('sentry')->configureScope(function (Scope $scope): void { - if (auth()->guard('contact') && auth()->guard('contact')->user() && auth()->guard('contact')->user()->company->account->report_errors) { - $scope->setUser([ - 'id' => auth()->guard('contact')->user()->company->account->key, - 'email' => "anonymous@example.com", - 'name' => "Anonymous User", - ]); - } elseif (auth()->guard('user')->user() && auth()->user()->company() && auth()->user()->company()->account->report_errors) { - $scope->setUser([ - 'id' => auth()->user()->account->key, - 'email' => "anonymous@example.com", - 'name' => "Anonymous User", - ]); - } - }); + + // app('sentry')->configureScope(function (Scope $scope): void { + + // if (auth()->guard('contact') && auth()->guard('contact')->user() && auth()->guard('contact')->user()->company->account->report_errors) { + // $scope->setUser([ + // 'id' => auth()->guard('contact')->user()->company->account->key, + // 'email' => "anonymous@example.com", + // 'name' => "Anonymous User", + // ]); + // } elseif (auth()->guard('user') && auth()->guard('user')->user() && auth()->user()->company() && auth()->user()->company()->account->report_errors) { + // $scope->setUser([ + // 'id' => auth()->user()->account->key, + // 'email' => "anonymous@example.com", + // 'name' => "Anonymous User", + // ]); + // } + // }); app('sentry')->captureException($exception); } diff --git a/app/Http/Controllers/DesignController.php b/app/Http/Controllers/DesignController.php index 77c465b19eb5..833f7b7f4100 100644 --- a/app/Http/Controllers/DesignController.php +++ b/app/Http/Controllers/DesignController.php @@ -484,7 +484,7 @@ class DesignController extends BaseController $designs->each(function ($design, $key) use ($action) { if (auth()->user()->can('edit', $design)) { - $this->design_repo->{$action}($design);@todo + $this->design_repo->{$action}($design); } }); diff --git a/app/Http/Requests/Payment/StorePaymentRequest.php b/app/Http/Requests/Payment/StorePaymentRequest.php index e553cfba30d3..a46f5c68f802 100644 --- a/app/Http/Requests/Payment/StorePaymentRequest.php +++ b/app/Http/Requests/Payment/StorePaymentRequest.php @@ -76,6 +76,8 @@ class StorePaymentRequest extends Request $input['is_manual'] = true; + info(print_r($input,1)); + $this->replace($input); } diff --git a/app/Transformers/PaymentTransformer.php b/app/Transformers/PaymentTransformer.php index 9889e6f18d0d..1347a760cf3a 100644 --- a/app/Transformers/PaymentTransformer.php +++ b/app/Transformers/PaymentTransformer.php @@ -23,7 +23,7 @@ class PaymentTransformer extends EntityTransformer protected $serializer; - protected $defaultIncludes = []; + protected $defaultIncludes = ['invoices']; protected $availableIncludes = [ 'client', diff --git a/tests/Feature/PaymentTest.php b/tests/Feature/PaymentTest.php index 8963494ce2cd..afae8009ebf2 100644 --- a/tests/Feature/PaymentTest.php +++ b/tests/Feature/PaymentTest.php @@ -191,7 +191,7 @@ class PaymentTest extends TestCase $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token, - ])->post('/api/v1/payments?include=invoices', $data); + ])->post('/api/v1/payments?include=invoices,paymentables', $data); } catch (ValidationException $e) { $message = json_decode($e->validator->getMessageBag(), 1); $this->assertNotNull($message); @@ -204,6 +204,7 @@ class PaymentTest extends TestCase $payment_id = $arr['data']['id']; $payment = Payment::find($this->decodePrimaryKey($payment_id))->first(); + $payment->load('invoices'); $this->assertNotNull($payment); $this->assertNotNull($payment->invoices()); @@ -663,7 +664,7 @@ class PaymentTest extends TestCase } if ($response) { - $response->assertStatus(302); + $response->assertStatus(200); } } From 8ddbfa662a321729e74f021e51dfebcd77f912ec Mon Sep 17 00:00:00 2001 From: David Bomba Date: Mon, 22 Jun 2020 14:38:24 +1000 Subject: [PATCH 9/9] Design controller bulk actions --- app/Http/Controllers/DesignController.php | 5 +++++ app/Repositories/BaseRepository.php | 2 ++ 2 files changed, 7 insertions(+) diff --git a/app/Http/Controllers/DesignController.php b/app/Http/Controllers/DesignController.php index 833f7b7f4100..088dcd277eed 100644 --- a/app/Http/Controllers/DesignController.php +++ b/app/Http/Controllers/DesignController.php @@ -482,8 +482,13 @@ class DesignController extends BaseController $ids = request()->input('ids'); $designs = Design::withTrashed()->find($this->transformKeys($ids)); + info($designs); + info(auth()->user()->id); + info(auth()->user()->getCompany()->id); + $designs->each(function ($design, $key) use ($action) { if (auth()->user()->can('edit', $design)) { + info("authed"); $this->design_repo->{$action}($design); } }); diff --git a/app/Repositories/BaseRepository.php b/app/Repositories/BaseRepository.php index 72286610f6bc..a3cc6e5ed1ce 100644 --- a/app/Repositories/BaseRepository.php +++ b/app/Repositories/BaseRepository.php @@ -73,6 +73,8 @@ class BaseRepository $entity->delete(); + info("archived"); + $className = $this->getEventClass($entity, 'Archived'); if (class_exists($className)) {