Olá, percebi que estava copiando codigo repetido para fazer upload, me lembro que em alguma aula foi comentado que não seria prudente sair dando ctrl+c>ctrl+v nos metodos, como anteriormente no curso de laravel o Vinicius usou repositorios, pensei em criar um para o tratamento de uploads e criei a função de guardar a imagem:
namespace App\Repositories\Uploads;
use Illuminate\Http\Request;
class ImagesRepository
{
public function uploadPublicImage(Request $request)
{
$coverPath = $request->hasFile('cover')
? $request->file('cover')->store('series_cover', 'public')
: null;
return $coverPath;
}
}
Ai no controller da api fiz apenas a chamada da função uploadPublicImage que já retorna o caminho da imagem.
public function uploadImage(Request $request)
{
$coverPath = new ImagesRepository();
$filePath = $coverPath->uploadPublicImage($request);
return response()->json(['file_path' => $filePath]);
}
E claro, adicionando o uploadImage nas rotas da API.
Route::post('/series/uploadImage', [\App\Http\Controllers\Api\SerieApiControler::class, 'uploadImage']);
Bem, funcionar funcionou, usando POST e no body utilizando form-data passando a key 'cover' com file em: http://localhost:8000/api/series/uploadImage
Mas gostaria de saber se eu implementei corretamente o conceito de repositorios, se não cometi algum engano, bem, aceito sugestões. :)