Form analytics now paid feature (#547)

Co-authored-by: Julien Nahum <julien@nahum.net>
This commit is contained in:
Chirag Chhatrala 2024-08-29 14:44:49 +05:30 committed by GitHub
parent 8e777ecca6
commit 89513e3b4a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 19 additions and 11 deletions

View File

@ -3,8 +3,8 @@
namespace App\Http\Controllers\Forms;
use App\Http\Controllers\Controller;
use App\Models\Forms\Form;
use Carbon\CarbonPeriod;
use Illuminate\Http\Request;
class FormStatsController extends Controller
{
@ -13,10 +13,9 @@ class FormStatsController extends Controller
$this->middleware('auth');
}
public function getFormStats(string $workspaceId, string $formId)
public function getFormStats(Request $request)
{
$form = Form::findOrFail($formId);
$form = $request->form; // Added by ProForm middleware
$this->authorize('view', $form);
$formStats = $form->statistics()->where('date', '>', now()->subDays(29)->startOfDay())->get();

View File

@ -144,7 +144,9 @@ Route::group(['middleware' => 'auth:api'], function () {
Route::put('/custom-domains', [WorkspaceController::class, 'saveCustomDomain'])->name('save-custom-domains');
Route::delete('/', [WorkspaceController::class, 'delete'])->name('delete');
Route::get('form-stats/{formId}', [FormStatsController::class, 'getFormStats'])->name('form.stats');
Route::middleware('pro-form')->group(function () {
Route::get('form-stats/{formId}', [FormStatsController::class, 'getFormStats'])->name('form.stats');
});
});
});

View File

@ -3,7 +3,7 @@
use Illuminate\Support\Facades\Artisan;
it('check formstat chart data', function () {
$user = $this->actingAsUser();
$user = $this->actingAsProUser();
$workspace = $this->createUserWorkspace($user);
$form = $this->createForm($user, $workspace, []);

View File

@ -3,7 +3,7 @@
class="border border-nt-blue-light bg-blue-50 dark:bg-notion-dark-light rounded-md p-4 mb-5 w-full mx-auto mt-4 select-all"
>
<div
v-if="false"
v-if="!form.is_pro"
class="relative"
>
<div class="absolute inset-0 z-10">
@ -16,7 +16,10 @@
analytics.
</p>
<p class="mt-5 text-center">
<v-button :to="{ name: 'pricing' }">
<v-button
class="w-full"
@click.prevent="subscriptionModalStore.openModal()"
>
Subscribe
</v-button>
</p>
@ -76,6 +79,12 @@ export default {
required: true,
},
},
setup() {
const subscriptionModalStore = useSubscriptionModalStore()
return {
subscriptionModalStore
}
},
data() {
return {
isLoading: true,
@ -115,9 +124,7 @@ export default {
},
methods: {
getChartData() {
if (!this.form) {
return null
}
if (!this.form || !this.form.is_pro) { return null }
this.isLoading = true
opnFetch(
"/open/workspaces/" +