From a2e0fd08490f2b90f997a18990cc88111899c79b Mon Sep 17 00:00:00 2001 From: David Bomba Date: Thu, 1 Apr 2021 20:56:50 +1100 Subject: [PATCH] Unique subscription nameS --- .../Requests/Subscription/StoreSubscriptionRequest.php | 2 +- app/Transformers/SubscriptionTransformer.php | 3 +-- tests/Feature/SubscriptionApiTest.php | 9 ++++++--- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/app/Http/Requests/Subscription/StoreSubscriptionRequest.php b/app/Http/Requests/Subscription/StoreSubscriptionRequest.php index 496f2747d740..2ce2d635d519 100644 --- a/app/Http/Requests/Subscription/StoreSubscriptionRequest.php +++ b/app/Http/Requests/Subscription/StoreSubscriptionRequest.php @@ -54,7 +54,7 @@ class StoreSubscriptionRequest extends Request 'plan_map' => ['sometimes'], 'refund_period' => ['sometimes'], 'webhook_configuration' => ['array'], - 'name' => Rule::unique('subscriptions')->where('company_id', auth()->user()->company()->id) + 'name' => ['required', Rule::unique('subscriptions')->where('company_id', auth()->user()->company()->id)] ]; } diff --git a/app/Transformers/SubscriptionTransformer.php b/app/Transformers/SubscriptionTransformer.php index ea496f3291b6..559cea012b29 100644 --- a/app/Transformers/SubscriptionTransformer.php +++ b/app/Transformers/SubscriptionTransformer.php @@ -33,7 +33,6 @@ class SubscriptionTransformer extends EntityTransformer public function transform(Subscription $subscription): array { - $std = new \stdClass; return [ 'id' => $this->encodePrimaryKey($subscription->id), @@ -61,7 +60,7 @@ class SubscriptionTransformer extends EntityTransformer 'allow_plan_changes' => (bool)$subscription->allow_plan_changes, 'plan_map' => (string)$subscription->plan_map, 'refund_period' => (int)$subscription->refund_period, - 'webhook_configuration' => $subscription->webhook_configuration ?: $std, + 'webhook_configuration' => $subscription->webhook_configuration ?: [], 'purchase_page' => (string)route('client.subscription.purchase', $subscription->hashed_id), 'is_deleted' => (bool)$subscription->is_deleted, 'created_at' => (int)$subscription->created_at, diff --git a/tests/Feature/SubscriptionApiTest.php b/tests/Feature/SubscriptionApiTest.php index 8c4ec16f2f00..4c5148c410a6 100644 --- a/tests/Feature/SubscriptionApiTest.php +++ b/tests/Feature/SubscriptionApiTest.php @@ -11,14 +11,15 @@ namespace Tests\Feature; -use App\Models\Subscription; use App\Models\Product; +use App\Models\Subscription; use App\Utils\Traits\MakesHash; use Illuminate\Database\Eloquent\Model; use Illuminate\Foundation\Testing\DatabaseTransactions; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\WithFaker; use Illuminate\Support\Facades\Session; +use Illuminate\Support\Str; use Tests\MockAccountData; use Tests\TestCase; @@ -55,6 +56,7 @@ class SubscriptionApiTest extends TestCase $billing_subscription = Subscription::factory()->create([ 'product_ids' => $product->id, 'company_id' => $this->company->id, + 'name' => Str::random(5) ]); @@ -78,7 +80,7 @@ class SubscriptionApiTest extends TestCase $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token, - ])->post('/api/v1/subscriptions', ['product_ids' => $product->id, 'allow_cancellation' => true]); + ])->post('/api/v1/subscriptions', ['product_ids' => $product->id, 'allow_cancellation' => true, 'name' => Str::random(5)]); // nlog($response); $response->assertStatus(200); @@ -93,7 +95,7 @@ class SubscriptionApiTest extends TestCase $response1 = $this ->withHeaders(['X-API-SECRET' => config('ninja.api_secret'),'X-API-TOKEN' => $this->token]) - ->post('/api/v1/subscriptions', ['product_ids' => $product->id]) + ->post('/api/v1/subscriptions', ['product_ids' => $product->id, 'name' => Str::random(5)]) ->assertStatus(200) ->json(); @@ -126,6 +128,7 @@ class SubscriptionApiTest extends TestCase $billing_subscription = Subscription::factory()->create([ 'product_ids' => $product->id, 'company_id' => $this->company->id, + 'name' => Str::random(5) ]); $response = $this