diff --git a/VERSION.txt b/VERSION.txt index b3ec1cfe93..6e02819658 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -5.10.43 \ No newline at end of file +5.10.44 \ No newline at end of file diff --git a/app/Http/Controllers/PreviewPurchaseOrderController.php b/app/Http/Controllers/PreviewPurchaseOrderController.php index 234dc7d7d5..0d4d16f5b9 100644 --- a/app/Http/Controllers/PreviewPurchaseOrderController.php +++ b/app/Http/Controllers/PreviewPurchaseOrderController.php @@ -11,34 +11,35 @@ namespace App\Http\Controllers; -use App\DataMapper\Analytics\LivePreview; -use App\Factory\PurchaseOrderFactory; -use App\Http\Requests\Preview\PreviewPurchaseOrderRequest; -use App\Jobs\Util\PreviewPdf; -use App\Libraries\MultiDB; -use App\Models\Client; -use App\Models\PurchaseOrder; -use App\Models\PurchaseOrderInvitation; -use App\Models\Vendor; -use App\Models\VendorContact; -use App\Repositories\PurchaseOrderRepository; -use App\Services\Pdf\PdfService; -use App\Services\PdfMaker\Design; -use App\Services\PdfMaker\Design as PdfDesignModel; -use App\Services\PdfMaker\Design as PdfMakerDesign; -use App\Services\PdfMaker\PdfMaker; -use App\Utils\HostedPDF\NinjaPdf; use App\Utils\Ninja; -use App\Utils\PhantomJS\Phantom; +use App\Models\Client; +use App\Models\Vendor; +use App\Libraries\MultiDB; +use App\Jobs\Util\PreviewPdf; +use App\Models\PurchaseOrder; +use App\Models\VendorContact; use App\Utils\Traits\MakesHash; -use App\Utils\Traits\MakesInvoiceHtml; -use App\Utils\Traits\Pdf\PageNumbering; use App\Utils\VendorHtmlEngine; -use Illuminate\Support\Facades\App; +use App\Services\Pdf\PdfService; +use App\Utils\PhantomJS\Phantom; +use App\Services\PdfMaker\Design; +use App\Utils\HostedPDF\NinjaPdf; use Illuminate\Support\Facades\DB; +use App\Services\PdfMaker\PdfMaker; +use Illuminate\Support\Facades\App; +use App\Factory\PurchaseOrderFactory; +use App\Utils\Traits\MakesInvoiceHtml; +use Turbo124\Beacon\Facades\LightLogs; +use App\Models\PurchaseOrderInvitation; +use App\Utils\Traits\Pdf\PageNumbering; use Illuminate\Support\Facades\Request; use Illuminate\Support\Facades\Response; -use Turbo124\Beacon\Facades\LightLogs; +use App\DataMapper\Analytics\LivePreview; +use App\Repositories\PurchaseOrderRepository; +use App\Http\Requests\Preview\ShowPreviewRequest; +use App\Services\PdfMaker\Design as PdfDesignModel; +use App\Services\PdfMaker\Design as PdfMakerDesign; +use App\Http\Requests\Preview\PreviewPurchaseOrderRequest; class PreviewPurchaseOrderController extends BaseController { @@ -84,7 +85,7 @@ class PreviewPurchaseOrderController extends BaseController * ), * ) */ - public function show(Request $request) + public function show(ShowPreviewRequest $request) { if (request()->has('entity') && request()->has('entity_id') && diff --git a/app/Http/Requests/EInvoice/Peppol/AddTaxIdentifierRequest.php b/app/Http/Requests/EInvoice/Peppol/AddTaxIdentifierRequest.php index 4c33452614..6283346315 100644 --- a/app/Http/Requests/EInvoice/Peppol/AddTaxIdentifierRequest.php +++ b/app/Http/Requests/EInvoice/Peppol/AddTaxIdentifierRequest.php @@ -53,7 +53,7 @@ class AddTaxIdentifierRequest extends FormRequest /** @var \App\Models\User $user */ $user = auth()->user(); - if (app()->isLocal()) { + if (config('ninja.app_env') == 'local') { return true; } diff --git a/app/Http/Requests/EInvoice/Peppol/DisconnectRequest.php b/app/Http/Requests/EInvoice/Peppol/DisconnectRequest.php index bbe3222346..0cbc157825 100644 --- a/app/Http/Requests/EInvoice/Peppol/DisconnectRequest.php +++ b/app/Http/Requests/EInvoice/Peppol/DisconnectRequest.php @@ -27,7 +27,7 @@ class DisconnectRequest extends FormRequest */ $user = auth()->user(); - if (app()->isLocal()) { + if (config('ninja.app_env') == 'local') { return true; } diff --git a/app/Http/Requests/EInvoice/Peppol/ShowEntityRequest.php b/app/Http/Requests/EInvoice/Peppol/ShowEntityRequest.php index 76c04708ef..7a13dff130 100644 --- a/app/Http/Requests/EInvoice/Peppol/ShowEntityRequest.php +++ b/app/Http/Requests/EInvoice/Peppol/ShowEntityRequest.php @@ -23,7 +23,7 @@ class ShowEntityRequest extends FormRequest */ $user = auth()->user(); - if (app()->isLocal()) { + if (config('ninja.app_env') == 'local') { return true; } diff --git a/app/Http/Requests/EInvoice/Peppol/StoreEntityRequest.php b/app/Http/Requests/EInvoice/Peppol/StoreEntityRequest.php index b617fa1ad8..4cdd854c92 100644 --- a/app/Http/Requests/EInvoice/Peppol/StoreEntityRequest.php +++ b/app/Http/Requests/EInvoice/Peppol/StoreEntityRequest.php @@ -57,7 +57,7 @@ class StoreEntityRequest extends FormRequest */ $user = auth()->user(); - if (app()->isLocal()) { + if (config('ninja.app_env') == 'local') { return true; } diff --git a/app/Http/Requests/EInvoice/Peppol/UpdateEntityRequest.php b/app/Http/Requests/EInvoice/Peppol/UpdateEntityRequest.php index 8c59ab8164..a4b69bc4f2 100644 --- a/app/Http/Requests/EInvoice/Peppol/UpdateEntityRequest.php +++ b/app/Http/Requests/EInvoice/Peppol/UpdateEntityRequest.php @@ -27,7 +27,7 @@ class UpdateEntityRequest extends FormRequest */ $user = auth()->user(); - if (app()->isLocal()) { + if (config('ninja.app_env') == 'local') { return true; } diff --git a/app/Http/Requests/EInvoice/ShowQuotaRequest.php b/app/Http/Requests/EInvoice/ShowQuotaRequest.php index b3248cf117..cc51fe35f4 100644 --- a/app/Http/Requests/EInvoice/ShowQuotaRequest.php +++ b/app/Http/Requests/EInvoice/ShowQuotaRequest.php @@ -8,7 +8,7 @@ class ShowQuotaRequest extends FormRequest { public function authorize(): bool { - if (app()->isLocal()) { + if (config('ninja.app_env') == 'local') { return true; } diff --git a/app/Http/Requests/EInvoice/UpdateTokenRequest.php b/app/Http/Requests/EInvoice/UpdateTokenRequest.php index 6db08cf44f..af6f2e8d34 100644 --- a/app/Http/Requests/EInvoice/UpdateTokenRequest.php +++ b/app/Http/Requests/EInvoice/UpdateTokenRequest.php @@ -24,7 +24,7 @@ class UpdateTokenRequest extends Request */ public function authorize(): bool { - if (app()->isLocal()) { + if (config('ninja.app_env') == 'local') { return true; } diff --git a/app/Services/Bank/ProcessBankRules.php b/app/Services/Bank/ProcessBankRules.php index 98c22195e1..b4ce0ae867 100644 --- a/app/Services/Bank/ProcessBankRules.php +++ b/app/Services/Bank/ProcessBankRules.php @@ -93,210 +93,210 @@ class ProcessBankRules extends AbstractService // $client.custom2 // $client.custom3 // $client.custom4 - private function matchCreditXX() - { - $match_set = []; + // private function matchCreditXX() //phpstan-ignore-line + // { + // $match_set = []; - $this->credit_rules = $this->bank_transaction->company->credit_rules(); + // $this->credit_rules = $this->bank_transaction->company->credit_rules(); - foreach ($this->credit_rules as $bank_transaction_rule) { - $match_set = []; + // foreach ($this->credit_rules as $bank_transaction_rule) { + // $match_set = []; - if (!is_array($bank_transaction_rule['rules'])) { - continue; - } + // if (!is_array($bank_transaction_rule['rules'])) { + // continue; + // } - $rule_count = count($bank_transaction_rule['rules']); + // $rule_count = count($bank_transaction_rule['rules']); - foreach ($bank_transaction_rule['rules'] as $rule) { + // foreach ($bank_transaction_rule['rules'] as $rule) { - $results = []; + // $results = []; - $payments = Payment::query() - ->withTrashed() - ->whereIn('status_id', [1,4]) - ->where('is_deleted', 0) - ->whereNull('transaction_id') - ->get(); + // $payments = Payment::query() + // ->withTrashed() + // ->whereIn('status_id', [1,4]) + // ->where('is_deleted', 0) + // ->whereNull('transaction_id') + // ->get(); - $invoices = Invoice::query() - ->withTrashed() - ->where('company_id', $this->bank_transaction->company_id) - ->whereIn('status_id', [1,2,3]) - ->where('is_deleted', 0) - ->get(); + // $invoices = Invoice::query() + // ->withTrashed() + // ->where('company_id', $this->bank_transaction->company_id) + // ->whereIn('status_id', [1,2,3]) + // ->where('is_deleted', 0) + // ->get(); - match($rule['search_key']) { - '$payment.amount' => $results = [Payment::class, $this->searchPaymentResource('amount', $rule, $payments)], - '$payment.transaction_reference' => $results = [Payment::class, $this->searchPaymentResource('transaction_reference', $rule, $payments)], - '$payment.custom1' => $results = [Payment::class, $this->searchPaymentResource('custom_value1', $rule, $payments)], - '$payment.custom2' => $results = [Payment::class, $this->searchPaymentResource('custom_value2', $rule, $payments)], - '$payment.custom3' => $results = [Payment::class, $this->searchPaymentResource('custom_value3', $rule, $payments)], - '$payment.custom4' => $results = [Payment::class, $this->searchPaymentResource('custom_value4', $rule, $payments)], - '$invoice.amount' => $results = [Invoice::class, $this->searchInvoiceResource('amount', $rule, $invoices)], - '$invoice.number' => $results = [Invoice::class, $this->searchInvoiceResource('number', $rule, $invoices)], - '$invoice.po_number' => $results = [Invoice::class, $this->searchInvoiceResource('po_number', $rule, $invoices)], - '$invoice.custom1' => $results = [Invoice::class, $this->searchInvoiceResource('custom_value1', $rule, $invoices)], - '$invoice.custom2' => $results = [Invoice::class, $this->searchInvoiceResource('custom_value2', $rule, $invoices)], - '$invoice.custom3' => $results = [Invoice::class, $this->searchInvoiceResource('custom_value3', $rule, $invoices)], - '$invoice.custom4' => $results = [Invoice::class, $this->searchInvoiceResource('custom_value4', $rule, $invoices)], - '$client.id_number' => $results = [Client::class, $this->searchClientResource('id_number', $rule, $invoices, $payments)], - '$client.email' => $results = [Client::class, $this->searchClientResource('email', $rule, $invoices, $payments)], - '$client.custom1' => $results = [Client::class, $this->searchClientResource('custom_value1', $rule, $invoices, $payments)], - '$client.custom2' => $results = [Client::class, $this->searchClientResource('custom_value2', $rule, $invoices, $payments)], - '$client.custom3' => $results = [Client::class, $this->searchClientResource('custom_value3', $rule, $invoices, $payments)], - '$client.custom4' => $results = [Client::class, $this->searchClientResource('custom_value4', $rule, $invoices, $payments)], - default => $results = [Client::class, [collect([]), Invoice::class]], - }; + // match($rule['search_key']) { + // '$payment.amount' => $results = [Payment::class, $this->searchPaymentResource('amount', $rule, $payments)], + // '$payment.transaction_reference' => $results = [Payment::class, $this->searchPaymentResource('transaction_reference', $rule, $payments)], + // '$payment.custom1' => $results = [Payment::class, $this->searchPaymentResource('custom_value1', $rule, $payments)], + // '$payment.custom2' => $results = [Payment::class, $this->searchPaymentResource('custom_value2', $rule, $payments)], + // '$payment.custom3' => $results = [Payment::class, $this->searchPaymentResource('custom_value3', $rule, $payments)], + // '$payment.custom4' => $results = [Payment::class, $this->searchPaymentResource('custom_value4', $rule, $payments)], + // '$invoice.amount' => $results = [Invoice::class, $this->searchInvoiceResource('amount', $rule, $invoices)], + // '$invoice.number' => $results = [Invoice::class, $this->searchInvoiceResource('number', $rule, $invoices)], + // '$invoice.po_number' => $results = [Invoice::class, $this->searchInvoiceResource('po_number', $rule, $invoices)], + // '$invoice.custom1' => $results = [Invoice::class, $this->searchInvoiceResource('custom_value1', $rule, $invoices)], + // '$invoice.custom2' => $results = [Invoice::class, $this->searchInvoiceResource('custom_value2', $rule, $invoices)], + // '$invoice.custom3' => $results = [Invoice::class, $this->searchInvoiceResource('custom_value3', $rule, $invoices)], + // '$invoice.custom4' => $results = [Invoice::class, $this->searchInvoiceResource('custom_value4', $rule, $invoices)], + // '$client.id_number' => $results = [Client::class, $this->searchClientResource('id_number', $rule, $invoices, $payments)], + // '$client.email' => $results = [Client::class, $this->searchClientResource('email', $rule, $invoices, $payments)], + // '$client.custom1' => $results = [Client::class, $this->searchClientResource('custom_value1', $rule, $invoices, $payments)], + // '$client.custom2' => $results = [Client::class, $this->searchClientResource('custom_value2', $rule, $invoices, $payments)], + // '$client.custom3' => $results = [Client::class, $this->searchClientResource('custom_value3', $rule, $invoices, $payments)], + // '$client.custom4' => $results = [Client::class, $this->searchClientResource('custom_value4', $rule, $invoices, $payments)], + // default => $results = [Client::class, [collect([]), Invoice::class]], + // }; - if($results[0] == 'App\Models\Client') { - $set = $results[1]; - $result_set = $set[0]; - $entity = $set[1]; + // if($results[0] == 'App\Models\Client') { + // $set = $results[1]; + // $result_set = $set[0]; + // $entity = $set[1]; - if($result_set->count() > 0) { - $match_set[] = [$entity, $result_set->pluck('id')]; - } + // if($result_set->count() > 0) { + // $match_set[] = [$entity, $result_set->pluck('id')]; + // } - } elseif($results[1]->count() > 0) { - $match_set[] = $results; - } - } + // } elseif($results[1]->count() > 0) { + // $match_set[] = $results; + // } + // } - if (($bank_transaction_rule['matches_on_all'] && $this->checkMatchSetForKey($match_set, $rule_count)) || (!$bank_transaction_rule['matches_on_all'] && count($match_set) > 0)) - { + // if (($bank_transaction_rule['matches_on_all'] && $this->checkMatchSetForKey($match_set, $rule_count)) || (!$bank_transaction_rule['matches_on_all'] && count($match_set) > 0)) + // { - $this->bank_transaction->status_id = BankTransaction::STATUS_MATCHED; - $this->bank_transaction->bank_transaction_rule_id = $bank_transaction_rule->id; - $this->bank_transaction->save(); + // $this->bank_transaction->status_id = BankTransaction::STATUS_MATCHED; + // $this->bank_transaction->bank_transaction_rule_id = $bank_transaction_rule->id; + // $this->bank_transaction->save(); - $first_result = reset($match_set); + // $first_result = reset($match_set); - $invoice_id = false; - $payment_id = false; + // $invoice_id = false; + // $payment_id = false; - if($first_result[0] == Payment::class) { - $payment_id = $first_result[1][0]; - } - elseif($first_result[0] == Invoice::class) { - $invoice_id = $first_result[1][0]; - } + // if($first_result[0] == Payment::class) { + // $payment_id = $first_result[1][0]; + // } + // elseif($first_result[0] == Invoice::class) { + // $invoice_id = $first_result[1][0]; + // } - if ($bank_transaction_rule['auto_convert']) { - (new MatchBankTransactions($this->bank_transaction->company->id, $this->bank_transaction->company->db, [ - 'transactions' => [ - [ - 'id' => $this->bank_transaction->id, - 'invoice_ids' => $invoice_id ?? '', - 'payment_id' => $payment_id ?? '', - ], - ], - ]))->handle(); - } - else { + // if ($bank_transaction_rule['auto_convert']) { + // (new MatchBankTransactions($this->bank_transaction->company->id, $this->bank_transaction->company->db, [ + // 'transactions' => [ + // [ + // 'id' => $this->bank_transaction->id, + // 'invoice_ids' => $invoice_id ?? '', + // 'payment_id' => $payment_id ?? '', + // ], + // ], + // ]))->handle(); + // } + // else { - if($invoice_id){ - $this->bank_transaction->invoice_ids = $this->encodePrimaryKey($invoice_id); - } - elseif($payment_id){ - $this->bank_transaction->payment_id = $payment_id; - } + // if($invoice_id){ + // $this->bank_transaction->invoice_ids = $this->encodePrimaryKey($invoice_id); + // } + // elseif($payment_id){ + // $this->bank_transaction->payment_id = $payment_id; + // } - $this->bank_transaction->save(); + // $this->bank_transaction->save(); - } + // } - } + // } - } + // } - } + // } - private function checkMatchSetForKey(array $match_set, $rule_count) - { + // private function checkMatchSetForKey(array $match_set, $rule_count) + // { - } + // } - private function searchInvoiceResource(string $column, array $rule, $invoices) - { + // private function searchInvoiceResource(string $column, array $rule, $invoices) + // { - return $invoices->when($column != 'amount', function ($q) use ($rule, $column) { - return $q->filter(function ($record) use ($rule, $column) { - return $this->matchStringOperator($this->bank_transaction->description, $record->{$column}, $rule['operator']); - }); - }) - ->when($column == 'amount', function ($q) use ($rule, $column) { - return $q->filter(function ($record) use ($rule, $column) { - return $this->matchNumberOperator($this->bank_transaction->amount, $record->{$column}, $rule['operator']); - }); - })->pluck("id"); + // return $invoices->when($column != 'amount', function ($q) use ($rule, $column) { + // return $q->filter(function ($record) use ($rule, $column) { + // return $this->matchStringOperator($this->bank_transaction->description, $record->{$column}, $rule['operator']); + // }); + // }) + // ->when($column == 'amount', function ($q) use ($rule, $column) { + // return $q->filter(function ($record) use ($rule, $column) { + // return $this->matchNumberOperator($this->bank_transaction->amount, $record->{$column}, $rule['operator']); + // }); + // })->pluck("id"); - } + // } - private function searchPaymentResource(string $column, array $rule, $payments) - { - return $payments->when($column != 'amount', function ($q) use ($rule, $column) { - return $q->filter(function ($record) use ($rule, $column) { + // private function searchPaymentResource(string $column, array $rule, $payments) + // { + // return $payments->when($column != 'amount', function ($q) use ($rule, $column) { + // return $q->filter(function ($record) use ($rule, $column) { - $bool = $this->matchStringOperator($this->bank_transaction->description, $record->{$column}, $rule['operator']); - return $bool; - }); - }) - ->when($column == 'amount', function ($q) use ($rule, $column) { - return $q->filter(function ($record) use ($rule, $column) { - return $this->matchNumberOperator($this->bank_transaction->amount, $record->{$column}, $rule['operator']); - }); - })->pluck("id"); + // $bool = $this->matchStringOperator($this->bank_transaction->description, $record->{$column}, $rule['operator']); + // return $bool; + // }); + // }) + // ->when($column == 'amount', function ($q) use ($rule, $column) { + // return $q->filter(function ($record) use ($rule, $column) { + // return $this->matchNumberOperator($this->bank_transaction->amount, $record->{$column}, $rule['operator']); + // }); + // })->pluck("id"); - } + // } - private function searchClientResource(string $column, array $rule, $invoices, $payments) - { + // private function searchClientResource(string $column, array $rule, $invoices, $payments) + // { - $invoice_matches = Client::query() - ->whereIn('id', $invoices->pluck('client_id')) - ->when($column == 'email', function ($q) { - return $q->whereHas('contacts', function ($qc) { - $qc->where('email', $this->bank_transaction->description); - }); - }) - ->when($column != 'email', function ($q) use ($rule, $column) { + // $invoice_matches = Client::query() + // ->whereIn('id', $invoices->pluck('client_id')) + // ->when($column == 'email', function ($q) { + // return $q->whereHas('contacts', function ($qc) { + // $qc->where('email', $this->bank_transaction->description); + // }); + // }) + // ->when($column != 'email', function ($q) use ($rule, $column) { - return $q->cursor()->filter(function ($record) use ($rule, $column) { - return $this->matchStringOperator($this->bank_transaction->description, $record->{$column}, $rule['operator']); - }); - })->pluck('id'); + // return $q->cursor()->filter(function ($record) use ($rule, $column) { + // return $this->matchStringOperator($this->bank_transaction->description, $record->{$column}, $rule['operator']); + // }); + // })->pluck('id'); - $intersection = $invoices->whereIn('client_id', $invoice_matches); + // $intersection = $invoices->whereIn('client_id', $invoice_matches); - if($intersection->count() > 0) { - return [$intersection, Invoice::class]; - } + // if($intersection->count() > 0) { + // return [$intersection, Invoice::class]; + // } - $payments_matches = Client::query() - ->whereIn('id', $payments->pluck('client_id')) - ->when($column == 'email', function ($q) { - return $q->whereHas('contacts', function ($qc) { - $qc->where('email', $this->bank_transaction->description); - }); - }) - ->when($column != 'email', function ($q) use ($rule, $column) { + // $payments_matches = Client::query() + // ->whereIn('id', $payments->pluck('client_id')) + // ->when($column == 'email', function ($q) { + // return $q->whereHas('contacts', function ($qc) { + // $qc->where('email', $this->bank_transaction->description); + // }); + // }) + // ->when($column != 'email', function ($q) use ($rule, $column) { - return $q->cursor()->filter(function ($record) use ($rule, $column) { - return $this->matchStringOperator($this->bank_transaction->description, $record->{$column}, $rule['operator']); - }); - })->pluck('id'); + // return $q->cursor()->filter(function ($record) use ($rule, $column) { + // return $this->matchStringOperator($this->bank_transaction->description, $record->{$column}, $rule['operator']); + // }); + // })->pluck('id'); - $intersection = $payments->whereIn('client_id', $payments_matches); + // $intersection = $payments->whereIn('client_id', $payments_matches); - if($intersection->count() > 0) { - return [$intersection, Payment::class]; - } + // if($intersection->count() > 0) { + // return [$intersection, Payment::class]; + // } - return [Client::class, collect([])]; + // return [Client::class, collect([])]; - } + // } private function matchDebit() { diff --git a/app/Services/EDocument/Jobs/SendEDocument.php b/app/Services/EDocument/Jobs/SendEDocument.php index dcb2edaf12..03c848b91d 100644 --- a/app/Services/EDocument/Jobs/SendEDocument.php +++ b/app/Services/EDocument/Jobs/SendEDocument.php @@ -94,6 +94,7 @@ class SendEDocument implements ShouldQueue // nlog($r->body()); } + //@todo remove early return prior to release return; @@ -159,16 +160,16 @@ class SendEDocument implements ShouldQueue /** * Self hosted request headers * - * @return array - */ - private function getHeaders(): array - { - return [ - 'X-API-SELF-HOST-TOKEN' => config('ninja.license_key'), - "X-Requested-With" => "XMLHttpRequest", - "Content-Type" => "application/json", - ]; - } + * + **/ + // private function getHeaders(): array + // { + // return [ + // 'X-API-SELF-HOST-TOKEN' => config('ninja.license_key'), + // "X-Requested-With" => "XMLHttpRequest", + // "Content-Type" => "application/json", + // ]; + // } public function failed($exception = null) { diff --git a/config/ninja.php b/config/ninja.php index cf2113df5a..5642da0d2c 100644 --- a/config/ninja.php +++ b/config/ninja.php @@ -17,8 +17,8 @@ return [ 'require_https' => env('REQUIRE_HTTPS', true), 'app_url' => rtrim(env('APP_URL', ''), '/'), 'app_domain' => env('APP_DOMAIN', 'invoicing.co'), - 'app_version' => env('APP_VERSION', '5.10.43'), - 'app_tag' => env('APP_TAG', '5.10.43'), + 'app_version' => env('APP_VERSION', '5.10.44'), + 'app_tag' => env('APP_TAG', '5.10.44'), 'minimum_client_version' => '5.0.16', 'terms_version' => '1.0.1', 'api_secret' => env('API_SECRET', false),