22
33namespace App \Http \Controllers ;
44
5+ use App \Http \Requests \BatchStoreDocumentRequest ;
6+ use App \Http \Requests \BulkDestroyDocumentRequest ;
7+ use App \Http \Requests \BulkUploadRequest ;
8+ use App \Http \Requests \MoveDocumentRequest ;
9+ use App \Http \Requests \StoreDocumentRequest ;
10+ use App \Http \Requests \UpdateDocumentRequest ;
511use App \Models \Document ;
612use App \Services \FileProcessingService ;
713use App \Http \Controllers \DataFeedController ;
@@ -18,16 +24,9 @@ public function __construct(
1824 /**
1925 * Feed data into the system (single document)
2026 */
21- public function store (Request $ request ): JsonResponse
27+ public function store (StoreDocumentRequest $ request ): JsonResponse
2228 {
23- $ validated = $ request ->validate ([
24- 'title ' => 'required|string|max:255 ' ,
25- 'path ' => 'nullable|string|max:1000 ' ,
26- 'body ' => 'required|string ' ,
27- 'tags ' => 'array ' ,
28- 'tags.* ' => 'string ' ,
29- 'metadata ' => 'array '
30- ]);
29+ $ validated = $ request ->validated ();
3130
3231 // If no path provided, use title as filename in root
3332 if (empty ($ validated ['path ' ])) {
@@ -53,17 +52,8 @@ public function store(Request $request): JsonResponse
5352 /**
5453 * Batch feed data (multiple documents)
5554 */
56- public function batchStore (Request $ request ): JsonResponse
55+ public function batchStore (BatchStoreDocumentRequest $ request ): JsonResponse
5756 {
58- $ request ->validate ([
59- 'documents ' => 'required|array ' ,
60- 'documents.*.title ' => 'required|string|max:255 ' ,
61- 'documents.*.path ' => 'nullable|string|max:1000 ' ,
62- 'documents.*.body ' => 'required|string ' ,
63- 'documents.*.tags ' => 'array ' ,
64- 'documents.*.metadata ' => 'array '
65- ]);
66-
6757 try {
6858 $ documents = [];
6959
@@ -150,7 +140,7 @@ private function showDataSourceItem(int $pseudoId): JsonResponse
150140 /**
151141 * Update a document
152142 */
153- public function update (Request $ request , int $ id ): JsonResponse
143+ public function update (UpdateDocumentRequest $ request , int $ id ): JsonResponse
154144 {
155145 $ document = Document::find ($ id );
156146
@@ -161,17 +151,8 @@ public function update(Request $request, int $id): JsonResponse
161151 ], 404 );
162152 }
163153
164- $ validated = $ request ->validate ([
165- 'title ' => 'string|max:255 ' ,
166- 'path ' => 'string|max:1000 ' ,
167- 'body ' => 'string ' ,
168- 'tags ' => 'array ' ,
169- 'tags.* ' => 'string ' ,
170- 'metadata ' => 'array '
171- ]);
172-
173154 try {
174- $ document ->update ($ validated );
155+ $ document ->update ($ request -> validated () );
175156
176157 return response ()->json ([
177158 'success ' => true ,
@@ -218,15 +199,10 @@ public function destroy(int $id): JsonResponse
218199 /**
219200 * Bulk delete documents
220201 */
221- public function bulkDestroy (Request $ request ): JsonResponse
202+ public function bulkDestroy (BulkDestroyDocumentRequest $ request ): JsonResponse
222203 {
223- $ validated = $ request ->validate ([
224- 'ids ' => 'required|array ' ,
225- 'ids.* ' => 'integer|exists:documents,id '
226- ]);
227-
228204 try {
229- $ count = Document::whereIn ('id ' , $ validated ['ids ' ])->delete ();
205+ $ count = Document::whereIn ('id ' , $ request -> validated () ['ids ' ])->delete ();
230206
231207 return response ()->json ([
232208 'success ' => true ,
@@ -245,14 +221,8 @@ public function bulkDestroy(Request $request): JsonResponse
245221 * Bulk upload documents from file(s) (CSV, TXT, Excel, PDF, JSON, TSV)
246222 * Supports both single and multiple file uploads
247223 */
248- public function bulkUpload (Request $ request ): JsonResponse
224+ public function bulkUpload (BulkUploadRequest $ request ): JsonResponse
249225 {
250- $ request ->validate ([
251- 'file ' => 'required_without:files|file|mimes:csv,txt,xlsx,xls,pdf,json,tsv|max:10240 ' , // 10MB max per file
252- 'files ' => 'required_without:file|array ' ,
253- 'files.* ' => 'file|mimes:csv,txt,xlsx,xls,pdf,json,tsv|max:10240 ' // 10MB max per file
254- ]);
255-
256226 try {
257227 $ files = [];
258228
@@ -460,7 +430,7 @@ private function addChildrenToFolders($nodes, $allFolders): array
460430 /**
461431 * Move document to a new path
462432 */
463- public function moveDocument (Request $ request , int $ id ): JsonResponse
433+ public function moveDocument (MoveDocumentRequest $ request , int $ id ): JsonResponse
464434 {
465435 $ document = Document::find ($ id );
466436
@@ -471,12 +441,8 @@ public function moveDocument(Request $request, int $id): JsonResponse
471441 ], 404 );
472442 }
473443
474- $ validated = $ request ->validate ([
475- 'new_path ' => 'required|string|max:1000 '
476- ]);
477-
478444 try {
479- $ document ->update (['path ' => $ validated ['new_path ' ]]);
445+ $ document ->update (['path ' => $ request -> validated () ['new_path ' ]]);
480446
481447 return response ()->json ([
482448 'success ' => true ,
0 commit comments