Untitled

 avatar
Anis
plain_text
a month ago
2.3 kB
3
Indexable
Never
public function store(Request $request)
{
    try{
        $user = $request->user();

        $validator = Validator::make($request->all(), [

            'title' => 'required|string|max:255',
            'text' => 'required|string',
            'record' => 'mimes:mp3,wav',

        ]);

        if ($validator->fails()) {
            return response()->json(['status' => false, 'message' => $validator->errors()->first()]);
        }

        $voice_text = new VoiceText();
        $voice_text->title = $request->title;
        $voice_text->text = $request->text;
        $voice_text->user_id = $user->id;
        $voice_text->description = $request->description;
        $voice_text->tags = $request->tags;
        $voice_text->location = $request->location;
        $voice_text->language = $request->language;
        $voice_text->speaker_name = $request->speaker_name;
        $voice_text->year = $request->year;
        $voice_text->unix_timestamp = $request->date ? strtotime($request->date) : strtotime(now());

        if ($request->hasFile('record')) {

            $receiver = new FileReceiver("record", $request, HandlerFactory::classFromRequest($request));

            if ($receiver->isUploaded() === false) {
                throw new UploadMissingFileException();
            }

            $save = $receiver->receive();

            if ($save->isFinished()) {  

                $file = $save->getFile();

                $path = 'public/uploads/files/users/';
                $extension = $file->getClientOriginalExtension();
                $fileName =  rand() . time() . "." . $extension;

                $file->move($path, $fileName);

                // $user->image = $path . $fileName;
                $voice_text->record = $path . $fileName;
                $voice_text->save();

                $voice_text->record = $voice_text->record ? asset($voice_text->record) : null;

                return response()->json([
                    'status' => true, 'data' => $voice_text
                ]);
            }
            $handler = $save->handler();
        }
    }
    catch(Exception $e){
        return response()->json(['status' => false, 'message' => 'Something went wrong!']);
    }
}