mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-05-31 08:44:35 -04:00
Plan Tests
This commit is contained in:
parent
d45a8df218
commit
f13ba7d961
@ -11,11 +11,13 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use stdClass;
|
||||||
|
use Carbon\Carbon;
|
||||||
use App\Models\Account;
|
use App\Models\Account;
|
||||||
use App\Utils\CurlUtils;
|
use App\Utils\CurlUtils;
|
||||||
use Carbon\Carbon;
|
|
||||||
use Illuminate\Http\Response;
|
use Illuminate\Http\Response;
|
||||||
use stdClass;
|
use Illuminate\Support\Facades\Http;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
class LicenseController extends BaseController
|
class LicenseController extends BaseController
|
||||||
{
|
{
|
||||||
@ -78,7 +80,7 @@ class LicenseController extends BaseController
|
|||||||
* ),
|
* ),
|
||||||
* )
|
* )
|
||||||
*/
|
*/
|
||||||
public function index()
|
public function indexx()
|
||||||
{
|
{
|
||||||
$this->checkLicense();
|
$this->checkLicense();
|
||||||
|
|
||||||
@ -147,6 +149,57 @@ class LicenseController extends BaseController
|
|||||||
return response()->json($error, 400);
|
return response()->json($error, 400);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function index(Request $request)
|
||||||
|
{
|
||||||
|
$this->checkLicense();
|
||||||
|
|
||||||
|
/* Catch claim license requests */
|
||||||
|
if (config('ninja.environment') == 'selfhost' && request()->has('license_key')) {
|
||||||
|
|
||||||
|
$response = Http::get( config('ninja.license_url')."/claim_license", [
|
||||||
|
'license_key' => $request->input('license_key'),
|
||||||
|
'product_id' => 3,
|
||||||
|
]);
|
||||||
|
|
||||||
|
if($response->successful()) {
|
||||||
|
|
||||||
|
$payload = $response->json();
|
||||||
|
|
||||||
|
$account = auth()->user()->account;
|
||||||
|
|
||||||
|
$account->plan_term = Account::PLAN_TERM_YEARLY;
|
||||||
|
$account->plan_expires = Carbon::parse($payload?->expires)->format('Y-m-d');
|
||||||
|
$account->plan = Account::PLAN_WHITE_LABEL;
|
||||||
|
$account->save();
|
||||||
|
|
||||||
|
$error = [
|
||||||
|
'message' => trans('texts.bought_white_label'),
|
||||||
|
'errors' => new \stdClass,
|
||||||
|
];
|
||||||
|
|
||||||
|
return response()->json($error, 200);
|
||||||
|
}else {
|
||||||
|
|
||||||
|
$error = [
|
||||||
|
'message' => trans('texts.white_label_license_error'),
|
||||||
|
'errors' => new stdClass,
|
||||||
|
];
|
||||||
|
|
||||||
|
return response()->json($error, 400);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
$error = [
|
||||||
|
'message' => ctrans('texts.invoice_license_or_environment', ['environment' => config('ninja.environment')]),
|
||||||
|
'errors' => new stdClass,
|
||||||
|
];
|
||||||
|
|
||||||
|
return response()->json($error, 400);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private function checkLicense()
|
private function checkLicense()
|
||||||
{
|
{
|
||||||
$account = auth()->user()->account;
|
$account = auth()->user()->account;
|
||||||
@ -156,5 +209,6 @@ class LicenseController extends BaseController
|
|||||||
$account->plan_expires = null;
|
$account->plan_expires = null;
|
||||||
$account->save();
|
$account->save();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -28,6 +28,7 @@ use Illuminate\Support\Facades\Cache;
|
|||||||
use App\Mail\ContactPasswordlessLogin;
|
use App\Mail\ContactPasswordlessLogin;
|
||||||
use App\Repositories\ClientRepository;
|
use App\Repositories\ClientRepository;
|
||||||
use App\Repositories\ClientContactRepository;
|
use App\Repositories\ClientContactRepository;
|
||||||
|
use App\Services\Subscription\SubscriptionService;
|
||||||
|
|
||||||
class BillingPortalPurchase extends Component
|
class BillingPortalPurchase extends Component
|
||||||
{
|
{
|
||||||
@ -399,8 +400,8 @@ class BillingPortalPurchase extends Component
|
|||||||
|
|
||||||
$context = 'purchase';
|
$context = 'purchase';
|
||||||
|
|
||||||
// if(Ninja::isHosted() && $this->subscription->service()->recurring_products()->first()->product_key == 'whitelabel') {
|
// if(Ninja::isHosted() && $this->subscription->service()->recurring_products()->first()?->id == SubscriptionService::WHITE_LABEL) {
|
||||||
if($this->subscription->service()->recurring_products()->first()?->product_key == 'whitelabel') {
|
if(Ninja::isHosted() && $this->subscription->service()->recurring_products()->first()?->product_key == 'whitelabel') {
|
||||||
$context = 'whitelabel';
|
$context = 'whitelabel';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@ class SubscriptionService
|
|||||||
/** @var subscription */
|
/** @var subscription */
|
||||||
private $subscription;
|
private $subscription;
|
||||||
|
|
||||||
private const WHITE_LABEL = 4316;
|
public const WHITE_LABEL = 4316;
|
||||||
|
|
||||||
private float $credit_payments = 0;
|
private float $credit_payments = 0;
|
||||||
|
|
||||||
@ -203,7 +203,7 @@ class SubscriptionService
|
|||||||
$license->save();
|
$license->save();
|
||||||
|
|
||||||
$invitation = $invoice->invitations()->first();
|
$invitation = $invoice->invitations()->first();
|
||||||
|
|
||||||
$email_object = new EmailObject;
|
$email_object = new EmailObject;
|
||||||
$email_object->to = [$contact->email];
|
$email_object->to = [$contact->email];
|
||||||
$email_object->subject = ctrans('texts.white_label_link') . " " .ctrans('texts.payment_subject');
|
$email_object->subject = ctrans('texts.white_label_link') . " " .ctrans('texts.payment_subject');
|
||||||
|
@ -11,16 +11,18 @@
|
|||||||
|
|
||||||
namespace Tests\Feature\Ninja;
|
namespace Tests\Feature\Ninja;
|
||||||
|
|
||||||
use App\Factory\SubscriptionFactory;
|
|
||||||
use App\Models\Account;
|
|
||||||
use App\Models\RecurringInvoice;
|
|
||||||
use App\Utils\Traits\MakesHash;
|
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
|
||||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
|
||||||
use Illuminate\Support\Facades\Session;
|
|
||||||
use Tests\MockAccountData;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
use App\Models\Account;
|
||||||
|
use App\Models\License;
|
||||||
|
use Tests\MockAccountData;
|
||||||
|
use App\Utils\Traits\MakesHash;
|
||||||
|
use App\Models\RecurringInvoice;
|
||||||
|
use App\Factory\SubscriptionFactory;
|
||||||
|
use Illuminate\Support\Facades\Http;
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use Illuminate\Support\Facades\Session;
|
||||||
|
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @test
|
* @test
|
||||||
@ -87,4 +89,23 @@ class PlanTest extends TestCase
|
|||||||
|
|
||||||
$this->assertEquals($date->addMonthNoOverflow()->startOfDay(), $next_date->startOfDay());
|
$this->assertEquals($date->addMonthNoOverflow()->startOfDay(), $next_date->startOfDay());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testLicense()
|
||||||
|
{
|
||||||
|
$license = new License;
|
||||||
|
$license->license_key = "1234";
|
||||||
|
$license->product_id = "3";
|
||||||
|
$license->email = 'test@gmail.com';
|
||||||
|
$license->is_claimed = 1;
|
||||||
|
$license->save();
|
||||||
|
|
||||||
|
$license->fresh();
|
||||||
|
|
||||||
|
$response = $this->get("/claim_license?license_key=1234&product_id=3")
|
||||||
|
->assertStatus(200);
|
||||||
|
|
||||||
|
$response = $this->get("/claim_license?license_key=12345&product_id=3")
|
||||||
|
->assertStatus(400);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user