Separated laravel app to its own folder (#540)
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Integrations\Zapier;
|
||||
|
||||
use App\Http\Requests\Integration\Zapier\PollSubmissionRequest;
|
||||
use App\Http\Requests\Zapier\CreateIntegrationRequest;
|
||||
use App\Http\Requests\Zapier\DeleteIntegrationRequest;
|
||||
use App\Integrations\Handlers\ZapierIntegration;
|
||||
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
||||
use Tests\Helpers\FormSubmissionDataFactory;
|
||||
|
||||
class IntegrationController
|
||||
{
|
||||
use AuthorizesRequests;
|
||||
|
||||
public function store(CreateIntegrationRequest $request)
|
||||
{
|
||||
$form = $request->form();
|
||||
|
||||
$this->authorize('view', $form);
|
||||
|
||||
$form->integrations()
|
||||
->create([
|
||||
'integration_id' => 'zapier',
|
||||
'status' => 'active',
|
||||
'data' => [
|
||||
'hook_url' => $request->input('hookUrl'),
|
||||
],
|
||||
]);
|
||||
|
||||
return response()->json();
|
||||
}
|
||||
|
||||
public function destroy(DeleteIntegrationRequest $request)
|
||||
{
|
||||
$form = $request->form();
|
||||
|
||||
$this->authorize('view', $form);
|
||||
|
||||
$form
|
||||
->integrations()
|
||||
->where('data->hook_url', $request->input('hookUrl'))
|
||||
->delete();
|
||||
|
||||
return response()->json();
|
||||
}
|
||||
|
||||
public function poll(PollSubmissionRequest $request)
|
||||
{
|
||||
$form = $request->form();
|
||||
|
||||
$this->authorize('view', $form);
|
||||
|
||||
$lastSubmission = $form->submissions()->latest()->first();
|
||||
if (!$lastSubmission) {
|
||||
// Generate fake data when no previous submissions
|
||||
$submissionData = (new FormSubmissionDataFactory($form))->asFormSubmissionData()->createSubmissionData();
|
||||
}
|
||||
|
||||
return [ZapierIntegration::formatWebhookData($form, $submissionData ?? $lastSubmission->data)];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Integrations\Zapier;
|
||||
|
||||
use App\Http\Requests\Zapier\ListFormsRequest;
|
||||
use App\Http\Resources\Zapier\FormResource;
|
||||
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
||||
|
||||
class ListFormsController
|
||||
{
|
||||
use AuthorizesRequests;
|
||||
|
||||
public function __invoke(ListFormsRequest $request)
|
||||
{
|
||||
$workspace = $request->workspace();
|
||||
|
||||
$this->authorize('view', $workspace);
|
||||
|
||||
return FormResource::collection(
|
||||
$workspace->forms()->get()
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Integrations\Zapier;
|
||||
|
||||
use App\Http\Resources\Zapier\WorkspaceResource;
|
||||
use App\Models\Workspace;
|
||||
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class ListWorkspacesController
|
||||
{
|
||||
use AuthorizesRequests;
|
||||
|
||||
public function __invoke()
|
||||
{
|
||||
$this->authorize('viewAny', Workspace::class);
|
||||
|
||||
return WorkspaceResource::collection(
|
||||
Auth::user()->workspaces()->get()
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Integrations\Zapier;
|
||||
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class ValidateAuthController
|
||||
{
|
||||
public function __invoke()
|
||||
{
|
||||
$user = Auth::user();
|
||||
|
||||
return [
|
||||
'name' => $user->name,
|
||||
'email' => $user->email,
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user