Allow users to create private form templates (#210)

* Allow users to create private form templates

* Improve back-end efficiency

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
This commit is contained in:
formsdev
2023-10-13 15:41:03 +05:30
committed by GitHub
parent f0939f3992
commit 82d7be3235
15 changed files with 307 additions and 145 deletions

View File

@@ -7,6 +7,7 @@ use App\Http\Requests\Templates\FormTemplateRequest;
use App\Http\Resources\FormTemplateResource;
use App\Models\Template;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class TemplateController extends Controller
{
@@ -16,12 +17,16 @@ class TemplateController extends Controller
if ($request->offsetExists('limit') && $request->get('limit') > 0) {
$limit = (int) $request->get('limit');
}
return FormTemplateResource::collection(
Template::where('publicly_listed', true)
->orderByDesc('created_at')
->limit($limit)
->get()
);
$templates = Template::where('publicly_listed', true)
->when(Auth::check(), function ($query) {
$query->orWhere('creator_id', Auth::id());
})
->orderByDesc('created_at')
->limit($limit)
->get();
return FormTemplateResource::collection($templates);
}
public function create(FormTemplateRequest $request)
@@ -34,7 +39,8 @@ class TemplateController extends Controller
return $this->success([
'message' => 'Template was created.',
'template_id' => $template->id
'template_id' => $template->id,
'data' => new FormTemplateResource($template)
]);
}