diff --git a/app/Http/Controllers/FileController.php b/app/Http/Controllers/FileController.php new file mode 100644 index 0000000..49b37ce --- /dev/null +++ b/app/Http/Controllers/FileController.php @@ -0,0 +1,39 @@ +all()); + //$filename = 'new_file.'.$request->filename->extension(); + //$request->filename->move(public_path('uploads'), $filename); + + //dd($request->all()); + //$request->validate([ + // 'filename'=>'required' + //]); + + $filename = 'new_file.'.$request->file("filetoinsert")->getClientOriginalExtension(); + $request->file("filetoinsert")->storeAs('file_temp', $filename); + + //$request->filename->storeAs('file_temp', $filename); + return redirect('/words'); + } + + public function delete(): RedirectResponse + { + Storage::delete('file_temp/new_file.txt'); + return redirect('/words'); + } +} diff --git a/app/Http/Controllers/WordsController.php b/app/Http/Controllers/WordsController.php index 1472a46..f788020 100644 --- a/app/Http/Controllers/WordsController.php +++ b/app/Http/Controllers/WordsController.php @@ -2,11 +2,11 @@ namespace App\Http\Controllers; +use App\Http\Requests\WordRequest; use App\Models\Word; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; - class WordsController extends Controller { public function __construct() @@ -25,20 +25,49 @@ class WordsController extends Controller /** * Store a new Word in the database. */ - public function store(Request $request): RedirectResponse + public function store(WordRequest $request): RedirectResponse { - // Validate the request... - $word = new Word; - $word->name = $request->name; $word->translation = $request->translation; - - //$word->name = $request->input('name'); - //$word->translation = $request->input('translation'); - $word->save(); return redirect('/words'); } + + /** + * Update an existing Word in the database. + */ + public function edit($id) + { + $data = Word::find($id); + $id = $data->id; + $name = $data->name; + $translation = $data->translation; + //return $translation; + return view("words.modify-word-form", compact('id', "name", "translation")); + } + + /** + * Update an existing Word in the database. + */ + public function update(WordRequest $request, $id): RedirectResponse + { + $data = Word::find($id); + + $data->name = $request->name; + $data->translation = $request->translation; + $data->save(); + + return redirect('/words'); + } + + /** + * Delete an existing Word in the database. + */ + public function delete($id): RedirectResponse + { + Word::destroy($id); + return redirect('/words'); + } } diff --git a/app/Http/Requests/FileRequest.php b/app/Http/Requests/FileRequest.php new file mode 100644 index 0000000..8fec1d9 --- /dev/null +++ b/app/Http/Requests/FileRequest.php @@ -0,0 +1,42 @@ +|string> + */ + public function rules(): array + { + return [ + 'filetoinsert' => ['required', 'mimes:txt']//, File::types(['csv'])] + ]; + } + + public function messages(): array + { + return [ + 'filetoinsert.required' => 'ERROR: csv file not selected!', + 'filetoinsert.mimes'=> "ERRORE: select only csv format" + ]; + } + + /** + * Determine if the user is authorized to make this request. + */ + public function authorize(): bool + { + return true; + } +} + + diff --git a/app/Http/Requests/StorefileRequest.php b/app/Http/Requests/StorefileRequest.php new file mode 100644 index 0000000..3120665 --- /dev/null +++ b/app/Http/Requests/StorefileRequest.php @@ -0,0 +1,28 @@ +|string> + */ + public function rules(): array + { + return [ + // + ]; + } +} diff --git a/app/Http/Requests/UpdatefileRequest.php b/app/Http/Requests/UpdatefileRequest.php new file mode 100644 index 0000000..6f63084 --- /dev/null +++ b/app/Http/Requests/UpdatefileRequest.php @@ -0,0 +1,28 @@ +|string> + */ + public function rules(): array + { + return [ + // + ]; + } +} diff --git a/app/Http/Requests/WordRequest.php b/app/Http/Requests/WordRequest.php index 53751cd..de4c6c0 100644 --- a/app/Http/Requests/WordRequest.php +++ b/app/Http/Requests/WordRequest.php @@ -10,10 +10,19 @@ class WordRequest extends FormRequest { return [ 'name' => ['required'], - 'translation' => ['required'], + 'translation' => ['required', 'unique:words,translation'], ]; } + public function messages(): array + { + return [ + 'name.required' => 'Insert italian Word', + 'translation.required' => 'Insert dialect Word', + ]; + } + + public function authorize(): bool { return true; diff --git a/app/Models/Word.php b/app/Models/Word.php index 74ab916..43589b6 100644 --- a/app/Models/Word.php +++ b/app/Models/Word.php @@ -5,6 +5,9 @@ namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; +/** + * @method static find($id) + */ class Word extends Model { use HasFactory; diff --git a/app/Models/file.php b/app/Models/file.php new file mode 100644 index 0000000..29cb9d6 --- /dev/null +++ b/app/Models/file.php @@ -0,0 +1,11 @@ + + */ +class FileFactory extends Factory +{ + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + // + ]; + } +} diff --git a/database/migrations/2024_02_10_195359_create_files_table.php b/database/migrations/2024_02_10_195359_create_files_table.php new file mode 100644 index 0000000..7c26401 --- /dev/null +++ b/database/migrations/2024_02_10_195359_create_files_table.php @@ -0,0 +1,27 @@ +id(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('files'); + } +}; diff --git a/database/seeders/FileSeeder.php b/database/seeders/FileSeeder.php new file mode 100644 index 0000000..67df964 --- /dev/null +++ b/database/seeders/FileSeeder.php @@ -0,0 +1,17 @@ +merge(['class' => 'text-danger text-sm text-red-600 dark:text-red-400 space-y-1']) }}> +