Add Template Creation Functionality in Admin Panel (#729)

* Add create template functionality in Admin Panel

- Implemented a new endpoint for creating templates in AdminController, utilizing the GenerateTemplate command.
- Added a form in the admin settings Vue component to allow users to input a template description and submit it.
- Enhanced the user experience with loading states and success/error alerts during template creation.

These changes facilitate the generation of new form templates directly from the admin interface, improving usability and functionality.

* Update template prompt validation length in AdminController

- Increased the maximum length of the 'template_prompt' field from 1000 to 4000 characters in the createTemplate method.

This change allows for more extensive template descriptions, enhancing the flexibility of template creation in the admin panel.

* Refactor template generation to use job-based approach

- Migrate template generation logic from the GenerateTemplate command to a new GenerateTemplateJob class for improved separation of concerns and better handling of asynchronous processing.
- Update AdminController to utilize the new job for generating templates, enhancing maintainability and clarity in the codebase.
- Remove unused dependencies and streamline the command's handle method for better performance and readability.

* fix lint

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
This commit is contained in:
Chirag Chhatrala
2025-03-25 16:44:09 +05:30
committed by GitHub
parent fba2207e0f
commit 61e9493e1e
5 changed files with 226 additions and 114 deletions

View File

@@ -225,6 +225,10 @@ Route::group(['middleware' => 'auth:api'], function () {
});
Route::group(['middleware' => 'moderator', 'prefix' => 'moderator'], function () {
Route::post(
'create-template',
[\App\Http\Controllers\Admin\AdminController::class, 'createTemplate']
);
Route::get(
'fetch-user/{identifier}',
[\App\Http\Controllers\Admin\AdminController::class, 'fetchUser']